2013年4月19日金曜日

iOS Developer Program 更新後の作業

iOS Developer Program 更新後の作業
  1. Apple Developer Program Activation Codeが届く
  2. メールのアクティベーションコードをクリックし、Activation手続きを実行
  3. Provisioning Portalへ
    >Member Center
    >Certificates, Identifiers & Profiles
    >iOS Provisioning Profiles
  4. Certificate追加
    ダウンロードし、ダブルクリックでキーチェーンに追加
    更新前の同名のCertificateをキーチェーンから削除する。
  5. Provisioning Profile追加
    ダウンロードし、XCodeにドラッグ&ドロップ
関連エラー
  1. Certificate identity 'iPhone Developer: MyName (XXXXXXXXXX)' appears more than once in the keychain. The code sign tool requires there only be one.

    更新前の同名Certificateがキーチェーンに残っていると発生。

  2. Provisioning Profile 'MyApp Development' specifies the Application Identifier 'MyApp' which doesn't match the current setting 'MyApp'Provisioning Profiles

    Certificate、Provisioning Profileの一方だけが更新されている場合に発生。

  3. No unexpired provisioning profiles found that contain any of the keychain's signing certificates

    build対象のdeviceのprovisioning profilesに有効なものがない。
    • simulatorが対象の場合はOKだが、iPhoneなどの外部deviceの場合にエラーが発生する場合
      Organizerで当該deviceのprovisioning profilesをチェックする
      不要なものを削除、必要なものを追加する
    • buildできるアプリとできないアプリがある場合
      ProjectのBuildSettingでCode Settingをチェック
      選択されているprofileのApp IDをProvisioning Portalでチェック
      それに当該アプリのApp IDがマッチしているかチェック
      当該アプリのApp IDにマッチするprovisioning profileを更新、または追加する
      ProjectのCode Settingの設定が自動の場合、それまで選択されていたprofileが削除または無効になった場合に有効なものに置き換えられ、そのApp IDが当該アプリにマッチしなくなることがある。
  4. The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).

    何らかの理由でアプリに適用されたProvisioningでは対象Deviceにアプリを転送することが許されていない場合、といえるようです。

    私の場合は追加したProvisioningにエラーが発生するdeviceを含めてなかったため発生しました。
    特定のDeviceでだけ発生するような場合は、Provisioningの設定にそのDeviceが含まれているかチェックしてみてください。

    様々な理由があるようで、いくつかの対処策が書き込まれています。
    http://stackoverflow.com/questions/5240801/the-entitlements-specified-profile-0xe8008016-error-ios-4-2

    よくわからない場合はアプリに適用されているProvisioningをいったん削除し、再度作り直してみるのが手っ取り早そうです。