1. ホーム
  2. xcode

[解決済み] Xcode 6、Mac OS X YosemiteまたはMavericksで「code object is not signed at all In subcomponent:」を修正するにはどうすればよいですか?

2022-03-04 02:47:39

質問

アプリケーションをコンパイルする際に、以下のエラーが発生します。

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

PaddleとSparkleの2つのフレームワークを使用していますが、サインオン・コピーに設定されています。

この問題の解決策を探したところ,--deep記号を使うことを推奨するものが多くありましたが,これはAppleが公式に推奨していないものです( codesignツールの--deepオプションの正しい使い方 ).

また、以下の記事も見つけました。 コードサイニングとMavericks また、--deepを使うのは間違っていると説明し、代替案として、各フレームワークの署名を生成するスクリプトを使用することを提案している。これは、Xcodeがコピーで署名するオプションを持つ前に必要だったものだと思いますが、とにかく試してみました。しかし、それは何の違いもなく、私はまだ同じエラーを受け取っています。ログを見ると、バンドルは "Sign on copy" オプションで署名されているので、そのスクリプトを追加すると、2回署名されることになりました。

私のコードサイニングIDは、プロジェクト全体で以下のように設定されており、各ターゲットはそれを継承しているだけです。

これがReleaseに適した署名でないことは理解していますが、今はこれをローカルにビルドして実行させることだけを考えています。

何が問題なのか、心当たりはありますか?どうすれば直りますか? 私は、次のことを理解しています。

どのように解決するのですか?

問題は、FrameworkであるPaddle.frameworkが破損してしまったことです。シンボリックリンクは指定されたファイルに解決されたので、コンパイルはうまくいきましたが、署名がうまくいきませんでした。

フレームワークを再ダウンロードし、プロジェクトにコピーすると問題が解決しました。