Xcode 8.0 署名動作を自動的に管理する 質問する

Xcode 8.0 署名動作を自動的に管理する 質問する

私はしばらくの間、署名の自動管理オプションを使用していました。しかし、最近の Xcode 8.0 バージョンでこれを実行すると、ビルド設定のリリースと配布でも開発者コード署名 ID を使用するように強制され、それ自体かなり奇妙です。また、関連するバイナリを送信すると、Apple から「プッシュ通知の権利が見つかりません」という恐ろしいメールが届きます。これを補うために、自動オプションを無効にして、プロファイルを手動で指定して戻りました。これにより、配布ビルド設定に配布プロファイルを保持し、Apple からの警告メールを受け取らずに済みました。

自動管理がこのように機能するのはなぜですか? また、その動作を調整するにはどうすればよいでしょうか?

ベストアンサー1

Xcode 8 のリリースに伴い、Apple は署名構成を管理する新しい方法を導入しました。現在、Manualと の2 つのオプションがありますAutomatic

この新機能は、Automatic Signing以前の Xcode バージョンと同じようには動作しません。以前は、Automaticプロビジョニング プロファイルを設定すると、Xcode は、使用しようとしていたエンタイトルメントとバンドル ID に一致するコンピューター内の最初のプロビジョニング プロファイルと証明書を使用していました。

Xcode 8 では、Automatic Signingがプロファイル、エンタイトルメント、証明書を管理しますが、 に対してのみです。自動を選択した場合は、および Xcode によって作成されたプロビジョニング プロファイルDevelopmentを使用するように強制されます。Development signing

上のWWDC 2016 (セッション 401 - Xcode アプリ署名の新機能)彼らは、この新しい署名方法について説明し、いくつかの「ベスト プラクティス」を紹介しています。配布用にビルドしてAutomatic Signingまたはを使用する場合は、 をアーカイブしてから (オーガナイザまたはコマンド ライン ツールから) としてManualエクスポートする必要があります。用にアーカイブされた場合でも、オーガナイザはアプリを 用に再署名します。Developmentxcodebuild -exportArchiveDistributionDistributionDevelopment

あなたが説明しているもう 1 つの問題、「プッシュ通知の権利が不足している」は、Xcode 8 で権利の適用方法が変更されたためです。以前のバージョンの Xcode では、権利を明示的に追加する必要はなく、プロビジョニング プロファイルにその権利があれば十分でした。タブで機能が有効になってAPS Environmentいることを確認し、そこにエラーがないことを確認してください。Push NotificationCapabilities

(編集: この新しい動作は意図的なものであり、Xcode 8 のリリース ノートに記載されています。https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_44

Xcode 8 は、ビルド時にプロビジョニング プロファイルから aps-environment エンタイトルメントを自動的にコピーしません。この動作は意図的です。このエンタイトルメントを使用するには、プロジェクト エディターの Capabilities ペインで Push Notifications を有効にするか、エンタイトルメント ファイルにエンタイトルメントを手動で追加します。(28076333)

おすすめ記事