Xcode8でBundle IDを設定する

Xcode8でBundle Identifier(以降Bundle ID)を設定する方法。
たしかXcode7あたりから設定箇所が変わりましたよね。

プロジェクトを作る

Bundle IDはプロジェクトを作るときに設定する項目から自動的に作成されます。

<Bundle ID> = <Organization Identifier>.<Product Name>

Bundle IDを変更する

ただ単にBundle IDを変更する場合の手順

  1. Project Navigator(左ペインの一番左のアイコン)
  2. プロジェクトの設定を開く
  3. Bundle IDを変更したいTARGETを開く
  4. Bundle Identifierを書き換える

Bundle IDをConfigurationで分ける

DebugビルドとReleaseビルドでBundle IDを分けたい場合。

  1. Project Navigator(左ペインの一番左のアイコン)
  2. プロジェクトの設定を開く
  3. Bundle IDを変更したいTARGETを開く
  4. 検索窓でフィルタリング、product bundle identifierと入力(identifierでも問題ない
  5. Product Bundle Identifierは最初折りたたまれているので展開すると、プロジェクトに設定されたConfigurationが表示される(デフォルトはDebugRelease)
  6. ConfigurationのBundle IDの欄をダブルクリックなどで編集

※ スクショと見た目が違う場合は緑の枠の設定を見比べてください

Bundle IDを変えるメリットとデメリット

Bundle IDはアプリの住所のようなものなので、DebugReleaseで同じBundle IDだと上書きインストールされて、別のBundle IDだと共存させることができます。
別のBundle IDだとプッシュ通知やアプリ内課金などBundle IDにひもづいたそれぞれの証明書が必要になるので面倒が増えることも多いです。

Bundle IDの設定箇所

Bundle IDはMyProj.xcodeproj/project.pbxprojというパスのファイルの中でPRODUCT_BUNDLE_IDENTIFIERというキーで指定されているので、ここを直接編集することも可能です。

project.pbxprojPRODUCT_BUNDLE_IDENTIFIERが参照するためには、該当ターゲットのInfo.plist Fileで指定されているplistファイルのBundle Identifierの項で$(PRODUCT_BUNDLE_IDENTIFIER)が指定されている必要があります。