Имах отхвърлено изпращане на приложение от Mac App Store с неясна обратна връзка, че е неправилно поставено в пясъчна среда. Приложението включва няколко помощни инструмента за команден ред, включени в него. Въпреки че помолих Apple за повече подробности, срещнах и по-строгите изисквания за подписване на код (целият изпълним код в пакета приложения трябва да бъде подписан с код).
Разбрах, че използването на codesign --deep
ще обходи рекурсивно моя пакет приложения и ще подпише всички изпълними файлове на Mach-O със същия набор от права, така че реших, че това ще се погрижи за CLI инструментите.
Въпреки това, когато се опитам да проверя подписа на един от CLI инструментите, получавам този резултат:
MyApp.app/Contents/lib/helper/helpertool: кодовият обект изобщо не е подписан.
Така че съм малко объркан, особено когато самият пакет с приложения преминава проверка:
codesign --deep --verify --verbose=4 MyApp.app: валиден на диск, отговаря на определеното си изискване.
Може ли някой да ми подскаже какво може да правя грешно тук - защо CLI инструментите не изглеждат подписани/тестова среда? Има ли нещо друго, което пропускам тук? (Изграждам приложението си, използвайки shell скрипт, а не Xcode, но това не би трябвало да има значение, доколкото мога да преценя.)