Ich glaube, ich habe das herausgefunden. Ich habe Xcode 4.6.3 unter OS X Mavericks ausgeführt, unter dem Eindruck, dass alle Build-spezifischen Tools in der Xcode-Anwendung gebündelt waren.
Aber es scheint codesign
in /usr/bin
. Ich bin mir nicht sicher, ob es von einem der Xcode-Installer bereitgestellt wird oder mit einer Vanilla-Systeminstallation geliefert wird. Aber als ich die man
Seite codesign
durchgelesen habe, habe ich diese raffinierte Option gefunden:
in turn. Beware that all signing options you specify will apply, in turn, to such nested content.
When verifying a bundle, specifies that any nested code content will be recursively verified as to its full content. By default,
verification of nested content is limited to a shallow investigation that may not detect changes to the nested code.
When displaying a signature, specifies that a list of directly nested code should be written to the display output. This lists only
code directly nested within the subject; anything nested indirectly will require recursive application of the codesign command.
Und dann habe ich diesen Beitrag ( https://alpha.app.net/isaiah/post/6774960 ) von vor zwei Wochen (~ Juni 2013) gefunden, in dem erwähnt wird (wenn auch aus zweiter Hand):
@isaiah Ich habe einen Mann in den Labors danach gefragt. Er sagte, dass Codesign nun erfordert, dass eingebettete Frameworks separat signiert werden, bevor das App-Bundle als Ganzes codiert wird.
Durch manuelles erneutes Ausführen des codesign
Befehls, den Xcode normalerweise ausführt, während das --deep
Flag am Ende hinzugefügt wird , wird die Anwendung ordnungsgemäß signiert.
Ich bin mir noch nicht sicher, welche Auswirkungen diese manuelle Signatur hat oder ob ich den Xcode-Build optimieren kann, um das --deep
Flag automatisch hinzuzufügen , aber dies scheint das zugrunde liegende Problem zu sein. ( codesign
Signiert Ihr App-Bundle nicht mehr automatisch tief.)