証明書は規定の証明書に含まれていません
このエラー メッセージは通常、 .mobileprovisionプロファイルに、使用する暗号化 ID と一致する公開キーがない場合に生成されます。
.p12公開鍵を抽出し、 .mobileprovisonの xml 部分の配列の下で一致を検索することにより、 .mobileprovisonがこの特定の証明書にバインドされていることを検証できます。<key>DeveloperCertificates</key>
を使用して、.p12 暗号化 ID から公開鍵を抽出できますopenssl
。
openssl pkcs12 -in <path_to_.p12> -clcerts -nokeys -out <path_to_resulting_public_key.pem> && cat <path_to_resulting_public_key.pem>
公開鍵がわかったら、それが.mobileprovisonファイルの の下<key>DeveloperCertificates</key>
にリストされていることを確認します。これを行うには、以下のコマンドを実行するか、notepad++ などのテキスト エディターで .mobileprovisionを開きます。
security cms -D -i <path_to_.mobileprovision> | grep -f <path_to_resulting_public_key.pem>
また、appbuilder プロファイルからすべての .mobileprovision ファイルと証明書を削除してから、問題の項目を再インポートすることをお勧めします。これを行うには、次のコマンドを実行します。
appbuilder certificate // List certificates
appbuilder certificate remove <name or index> // Delete cerificates
appbuilder provision // List provisions
appbuilder provision remove <provision_id> // Delete provisions
appbuilder provision remove <provision_id> // Delete provisions
appbuilder provision import path/to/provision
appbuilder certificate import path/to/p12/cert
編集:
注: 次の {N} プラグインも興味深いかもしれません - https://github.com/NativeScript/push-plugin
APNS 証明書と mobileprovision ファイルを生成する手順。
- AppBuilder で、一致する証明書とプロビジョニング プロファイルのペアを作成して追加したことを確認します。証明書とプロビジョニング プロファイルの詳細については、 iOS アプリのコード署名の構成を参照してください。
- プロビジョニング プロファイルのアプリ ID でプッシュ通知が有効になっていることを確認します。iOS デベロッパー センター の [識別子] セクションで、リストから識別子を選択し、有効なサービスを確認します。必要に応じて、[編集] をクリックして不足している機能を有効にします。既存のアプリ ID を変更する場合は、一致するプロビジョニング プロファイルを再作成し、それを AppBuilder にインポートしてください。
- [プロジェクト プロパティ] ダイアログで、アプリケーションに適切なアプリ ID が設定されていることを確認します。
- iOS デベロッパー センターの [証明書] セクションでApple プッシュ通知サービスの SSL 証明書を作成し、それを AppBuilder に追加したことを確認します。
- Apple プッシュ通知サービスの SSL 証明書のタイプが、アプリのコード署名用の証明書およびプロビジョニング プロファイルのタイプと一致していることを確認します。たとえば、両方とも開発用または本番用である必要があります。
- Apple プッシュ通知サービス SSL 暗号化 ID の P12 ファイルをエクスポートしたことを確認します。AppBuilder から暗号化 ID をエクスポートする方法の詳細については、暗号化 ID のエクスポートを参照してください。