web-dev-qa-db-ja.com

iOS8動的フレームワーク-> CodeSignエラー:SDK 'iOS 8.3'の製品タイプ 'Framework'にはコード署名が必要です

私は自分で構築し、iOSアプリ内でリンクするiOS8 Dynamic Frameworksを使用しています。シミュレータでもデバイスでも問題なく動作していましたが、リリースビルドをアーカイブしようとすると、次のエラーが発生します。

コード署名エラー:一致するプロビジョニングプロファイルが見つかりません:指定された資格を許可する有効なプロビジョニングプロファイルはありません:com.Apple.developer.ubiquity-kvstore-identifier、keychain-access-groups、com.Apple.developer.icloud-container-identifiers 、com.Apple.developer.icloud-services、com.Apple.security.application-groups、com.Apple.developer.ubiquity-container-identifiers。 CodeSignエラー:SDK 'iOS 8.3'の製品タイプ 'Framework'にはコード署名が必要です

アプリターゲット内->ビルドフェーズ->埋め込みフレームワーク->フレームワークがそこにリンクされており、[コードサインオンコピー]チェックボックスがオンになっています。

フレームワークターゲット内->ビルド設定->プロビジョニングプロファイルを「自動」に設定しました。コードサインIDの場合は、リリースの下で「iOSディストリビューション」を使用しています

このフレームワークを構築する必要がある3つの異なるアプリターゲットがあります。

よくわかりません:

  • フレームワークには、デベロッパーセンターに登録された独自のAppIDが必要ですか?

  • フレームワークは独自のプロビジョニングプロファイルを必要としますか?

  • フレームワークはiOSアプリターゲットから同じ資格ファイルを使用できますか?

ありがとう。

18
Z S

私は同じ問題を抱えていましたが、それを修正しました:

ターゲット設定の[全般]タブでチームを[なし]に設定します。

この値を変更すると、デバッグとリリースの両方で、ビルド設定のコード署名パラメーターも「iOS Developer」にリセットされるようです。そうでない場合は、これらのパラメータを自分で変更してください。

エラーなしでフレームワークを構築できます。

ターミナルにcodesign --display --verbose = 4 FRAMEWORK_PATHと入力すると、新しく構築されたフレームワークの署名を確認できます。

このツールは次を返します:コードオブジェクトはまったく署名されていません

12
Chris Birch

フレームワークは、デベロッパーセンター、プロビジョニングプロファイル、またはエンタイトルメントに登録された独自のアプリIDを必要としません。 appストアにappターゲット、today拡張ターゲット、watch拡張ターゲット、および共有コードのフレームワークターゲットを含むアプリがあります。

ビルドをセットアップしようとした2番目のアプリでこの問題が発生しました。「コード署名しない」の代わりに自動設定を使用するようにフレームワークの署名を変更することで解決できました(iOS開発者ID /自動プロファイル)。これによりエラーが発生しなくなり、アーカイブ中にフレームワークがまだ辞任されているように見えます。ただ辞任するつもりでも、いくつかのビルド設定が必要なようです。

編集:自動に設定したら、ビルドするターゲットのバンドルIDセットに適したプロビジョニングプロファイルをインストールする必要があることにも言及する価値があります(ワイルドカード開発プロファイルで十分です)。

7
Charles A.