アプリケーションをコンパイルすると、次のエラーが発生します。
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
私は2つのフレームワーク、PaddleとSparkleを使用しており、コピーにサインオンするように構成されています。
この問題の解決策を探したところ、Apple( codesign Toolの--deepオプションを正しく使用する )によって公式に推奨されていない--deepサインを実行するための多くの推奨事項を見つけました=)。
また、記事 Code Signing and Mavericks も見つけました。これは、-deepを使用するのは間違っており、代替手段としてスクリプトを使用して各フレームワークの署名を生成することも説明しています。これは、Xcodeにコピーをサインオンするオプションができる前に必要だったものだと思いますが、とにかく試してみました。違いはありませんでしたが、同じエラーが発生します。ログを見ると、「Sign on copy」オプションでバンドルが署名されているため、そのスクリプトを追加すると、バンドルが2回署名されました。
私のコード署名IDは、プロジェクト全体に対して次のように構成され、各ターゲットはそれを継承します。
これはリリースの適切なシグネチャではないことを理解していますが、現時点では、これをローカルでビルドおよび実行できるようにしようとしています。
どんなアイデアが間違っているのですか?それを修正する方法はありますか?という事は承知しています
問題は、フレームワークであるPaddle.frameworkが破損することでした。シンボリックリンクは指定されたファイルに解決されたので、コンパイルはうまくいきましたが、署名はうまくいきませんでした。
フレームワークを再ダウンロードしてプロジェクトにコピーすると、問題が修正されました。
私にとっての解決策は、リソースフォルダーを再度追加することでした(フォルダー参照を作成するのではなく、グループを作成するをオンにする)。
私はコード署名がまだ黒字であることを認めますが、Xcode 6では、署名スクリプト(Xcodeで必要でした)のallを削除することがわかりました5、--deep
フラグ)と追加の署名フラグ、およびビルドのフレームワークのファイルのコピー段階で "codesign on copy" オプションを使用するだけで、問題なく機能しました。
私にとっては、プロジェクトのビルド設定に移動し、その他のコード署名フラグを--deep
に設定する必要がありました。問題は、プロジェクトの私のフレームワークが署名されていないことでした。
私にとっては、bashビルドスクリプトを誤ってターゲットに追加したことがわかりました。卑劣なスクリプトが誤ってターゲットにコピーされていないことを確認して、問題を修正しました。