web-dev-qa-db-ja.com

Xcode8コード署名が見つかりません

Xcode 8にアップグレードした後、次のエラーのためにデバイスでデバッグできません。

App installation failed. No code signature found.

私のセットアップ、観察、そしてこれまでに試したこと:

  • デバイスにiOS10がインストールされている
  • Xcode 7のデバイスでのコード署名とデバッグは機能します(コード署名は変更されません)
  • アプリには時計アプリがあります(時計アプリなしでビルド/実行しても何も変更されませんでした)
  • プロビジョニングプロファイルを更新し、すべてを削除して再ダウンロードしても、何も変更されませんでした
  • ビルド設定からすべてのコード署名セットアップを削除し、「署名の自動管理」を有効にしましたが、これも役に立ちませんでした
  • 私はいつもビルドフォルダを掃除しています
  • デバイス、xcode、macを再起動してみました
  • 私の同僚が同じプロジェクトで同じ問題を報告しています
  • Xcode 8が提案した変更(ビルド設定、警告修正など)を元に戻してみました。
11
Martin Polak

古い答えは間違っています

ここでも同じ問題が発生しました。5つのプロジェクトがあり、そのうち4つはデバイスでデバッグできず、1つだけがデバイスでデバッグできます。 Xcodeプロジェクトファイルを比較しましたが、わかりませんでした。プロビジョニングプロファイルの問題だと思います。 XcodeはXcodeで開発プロビジョニングプロファイルを生成し、それをApple開発者アカウントにアップロードしなかったようです。


更新:

私はついに私の問題を解決しました。3番目のフレームワークマニュアルがビルド設定の署名セクションでコードサインIDまたは特権プロファイルを設定したようです。次に、この3番目のフレームワークをインストールします。コード署名フェーズで、Xcodeはこのフレームワークの存在しないコード署名IDまたは特権プロファイルを検索しますが、失敗しました。

3
user2031805

私はついにそれを次のように解決することができました:

  • carthageを更新します(現在、0.18が最新バージョンです)。何らかの理由で、コード署名が正しく適用されませんでした。
  • ビルド設定で、PROVISIONING_PROFILEおよびPROVISIONING_PROFILE_SPECIFIERを同じ正しいプロファイルに設定します
  • automatically manage signingを無効にする必要がありました

結論として、私のプロビジョニングプロファイルはすべて正しく、問題はフレームワークに署名するコードにのみ関連しており、アプリ自体には関連していませんでした。エラーメッセージに、具体的にNo code signatureが見つかった可能性がある場所が示されていれば、デバッグ時間を大幅に節約できたはずです...

2
Martin Polak

おそらくあなたはココアポッドを使用していますか? 「自動管理署名」とそれぞれのチームを手動で設定する必要がありましたが、最終的には機能しました。他のコメント投稿者からのポインタをありがとう。私にとっては、同じプロジェクトに取り組んでいる2つの開発チームがいるので、このソリューションが最適になるかどうかはわかりません。 Podfileレベルでこれを行う方法を見つける必要があります。

enter image description here

N.B.私はココアポッドを使用しています-1.2.0

更新-これを試して/ Podfileを編集し、下部に追加します。ポッドインストールを実行します

installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
        config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
        config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
        config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
    end
end

上記が機能しない場合-これのみを試してください(iPhoneOS10.2.sdk n.b. P.S.などの最新のSDKに調整する必要がある場合があります。一部の団体は、PlistBuddyをSudo/usr/libexec/PlistBuddyとして実行する必要があると述べています)

killall Xcode

/usr/libexec/PlistBuddy -c "Set :DefaultProperties:CODE_SIGNING_REQUIRED NO" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist\n
/usr/libexec/PlistBuddy -c "Set :DefaultProperties:AD_HOC_CODE_SIGNING_ALLOWED YES" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist\n

/usr/libexec/PlistBuddy -c "Set :DefaultProperties:CODE_SIGNING_REQUIRED NO" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/SDKSettings.plist\n
/usr/libexec/PlistBuddy -c "Set :DefaultProperties:AD_HOC_CODE_SIGNING_ALLOWED YES" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/SDKSettings.plist\n

 xcodebuild clean build
0
johndpope