2011年11月4日金曜日

iOS開発におけるProvisioningのいろいろ

今までの開発経験から、Provisioningのいろいろまとめ。
  • ProvisioningにはDeveloperとDistributionの2種類がある
  • ともにiTunes Connectで作成する
  • ProvisioningはDeveloper/Distributionそれぞれで1つずつ作成すれば良い

    ここで重要なのは、Developerは開発機の特定が必要でDeviceの設定があるが、
    Distributionは公開用なのでDeviceの設定は不要である。
    Deviceの設定がグレーアウトされているのはそういう意味なので、無理にSelectAllを押す必要はない。
  • 証明書にもDeveloperとDistributionの2種類がある
  • 先にProvisioningを作成、後で「それを含んだ」証明書を作る。
    これが非常に重要。この順番を間違えると無意味な証明書が出来てしまう

    無効な証明書でビルドすると、「Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)」という警告が出る(この状態でもReleaseまでは実機で動作するが、Distributionはエラーが出て通らない)。
  • 出来上った証明書をキーチェーンユーティリティーでキーチェーンのルートとシステムに登録

    この際、キーチェーンユーティリティーにはバグがあり、同時に複数の操作を行えないので、
    「古い証明書の削除→一端終了→再起動→新しい証明書の登録→終了」の手順をDeveloperとDistributionで計4回(ルートとシステムの双方に登録が必要だから)も行う必要がある
  • XcodeのOrganaizerもしくはiPhone構成ユーティリティーでProvisioningを追加、さらに各デバイスを開いてそれをインストール
  • ここで非常に重要なのは、Developerは開発用デバイスの全てにインストールが必要であるが、
    Distributionはインストール不要だと言うことである。というかインストールできないのが正常。
  • Xcodeのコンパイル設定で、Debug/ReleaseはDeveloper、DistributionはDistributionをコード承認に設定する。
    Releaseでは相変わらず-19011の警告が出るが、無視すれば良い。
  • 追記;証明書をいじった後は、Xcodeのコード署名を再設定する(同じファイル名でも)
というややこしい手順が必要になる。

何回も訳がわからないまま証明書から作り直してしまったが、
通常はProvisioningの有効期限切れなら「renew」で更新さえすれば、こんなややこしい手間はしないで済む。

0 件のコメント:

コメントを投稿