it-swarm.com.de

Wie können Sie beheben, dass das Code-Objekt in Xcode 6, Mac OS X Yosemite oder Mavericks überhaupt nicht in Unterkomponente:

Beim Kompilieren meiner Anwendung erhalte ich folgende Fehlermeldung:

CodeSign /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project\ X.app
    cd /Users/pupeno/Projects/ProjectX
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate

Signing Identity:     "Mac Developer: José Fernández (G4PM7K38JH)"

    /usr/bin/codesign --force --sign A21FB31766DDCBB28FBB4E4DD86E3743024A45F3 --entitlements /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Intermediates/ProjectX.build/Debug/App.build/Project\ X.app.xcent --requirements =designated\ =>\ anchor\ Apple\ generic\ \ and\ identifier\ \"$self.identifier\"\ and\ ((cert\ leaf[field.1.2.840.113635.100.6.1.9]\ exists)\ or\ (\ certificate\ 1[field.1.2.840.113635.100.6.2.6]\ exists\ and\ certificate\ leaf[field.1.2.840.113635.100.6.1.13]\ exists\ \ and\ certificate\ leaf[subject.OU]\ =\ \"XHT4M2DATL\"\ )) /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project\ X.app

/Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project X.app: code object is not signed at all
In subcomponent: /Users/pupeno/Library/Developer/Xcode/DerivedData/ProjectX-cynmgyozflnwbpamwnpsnhgshuyq/Build/Products/Debug/Project X.app/Contents/Frameworks/Paddle.framework
Command /usr/bin/codesign failed with exit code 1

Ich verwende zwei Frameworks, Paddle und Sparkle, und sie sind so konfiguriert, dass sie sich beim Kopieren anmelden:

enter image description here

Auf der Suche nach einer Lösung für dieses Problem fand ich viele Empfehlungen zum Ausführen eines --deep-Zeichens, das offiziell von Apple abgelehnt wird ( Mit dem -Codesign-Tool --deep Option Correctly ).

Ich habe auch den Artikel Code Signing and Mavericks gefunden, der auch erklärt, dass die Verwendung von --deep falsch ist und eine Alternative bietet: Verwenden eines Skripts zum Generieren von Signaturen für jedes Framework. Ich denke, das war etwas, was nötig war, bevor Xcode die Möglichkeit hatte, eine Kopie zu unterschreiben, aber ich habe es trotzdem versucht. Es machte keinen Unterschied, ich bekomme immer noch den gleichen Fehler. Wenn Sie sich die Protokolle ansehen, werden die Bundles mit der Option "Beim Kopieren anmelden" signiert. Durch das Hinzufügen dieses Skripts wurden sie zweimal signiert.

Meine Codesignaturidentität ist für das gesamte Projekt wie folgt konfiguriert und jedes Ziel erbt es nur:

enter image description here

Ich verstehe, dass dies nicht die geeignete Signatur für Release ist, aber im Moment versuchen wir nur, dass dies lokal erstellt und ausgeführt wird.

Irgendwelche Ideen, was ist los? Irgendwelche Ideen, wie man das beheben kann? Ich verstehe das

13
pupeno

Das Problem war, dass das Framework, Paddle.framework, beschädigt wurde. Die Symlinks wurden zu den Dateien aufgelöst, auf die sie gezeigt wurden. Die Kompilierung funktionierte gut, das Signieren jedoch nicht.

Das Framework wurde erneut heruntergeladen und in das Projekt kopiert. Das Problem wurde behoben.

9
pupeno

Für mich bestand die Lösung darin, einen Ressourcenordner erneut hinzuzufügen (Aktivieren Sie "Gruppen erstellen", anstatt Ordnerreferenzen zu erstellen).

8
Bisca

Ich gebe zu, dass Codesigning für mich immer noch eine schwarze Kunst ist, aber in Xcode 6 habe ich festgestellt, dass alle meiner Signaturskripte (die in Xcode 5 zusammen mit --deep-Flags benötigt wurden) und zusätzliche Signaturflaggen entfernt wurden Die Option "codesign on copy" in der Copy Files-Phase des Frameworks des Builds funktionierte einwandfrei für mich.

1
Brett Terpstra

Für mich stellte sich heraus, dass ich versehentlich ein Bash-Build-Skript zum Ziel hinzugefügt hatte. Das Problem wurde dadurch behoben, dass sichergestellt wurde, dass ich keine versehentlich in das Ziel kopierten hinterlistigen Skripts hatte. 

1
johnboiles