Skip to content

DNET_iOSDeployment

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

iOSのデプロイ

概要

iOSのデプロイについてまとめる。

サマリ

項番 配布方法 用途 配布先 ライセンス App ID (Suffix) 証明書 Provisioning Profile デバイスID(UDID)登録
1 AppStore 公式 無制限 Apple Developer Program Explicit App ID App Store and Ad Hoc App Store 不要
2 Debug Debug Debug用実機 〃 Wildcard App ID
or Explicit App ID
iOS App Development iOS App Development 必要
※ 注意事項
3 AdHoc 限定目的 登録したデバイス
(最大100台まで)
Apple Developer Program
or Apple Developer Enterprise Program
〃 App Store and Ad Hoc Ad hoc 〃
4 In-House 社内利用 社内デバイス Apple Developer Enterprise Program 〃 In House and Ad Hoc In House 不要

注意事項

  • デバイス変更、追加・削除などがあった場合、Provisioning Profileの編集が必要になる。
  • Provisioning Profileの編集が発生すると、アプリケーションの再インストールが発生するので注意が必要。

区分

iOSのデプロイは複雑なため、
まず、iOSのデプロイの区分についてまとめる。

ここでは以下の2つの区分を定義した。

ライセンス

iOSのデプロイは、開発用途であっても、ライセンスを持っていないと証明書とプロファイルを発行できない。

Apple Developer Program

このライセンスは、以下のデプロイが可能。

Apple Developer Enterprise Program

このライセンスは、以下のデプロイが可能。

補足事項(Xcode7)

Xcode7以降を使うのであれば、無償で証明書とProvisioning Profileを発行可能。

ただし、デプロイ(アプリの書き出し)は不可能で、
あくまで開発用途での短期間(3日間)、Debug実行だけ許可。

(プッシュ通知などのApple提供MBaaSを使うならライセンスが必要)

用途

開発用

本番リリース用

AppStore (公式ストア)

  • 汎用的なアプリケーションを世界市場に対して配信するようなケース。

  • Appleの審査を受けてAppStoreに登録し、デバイスもしくはPCのApp Store(iTunes)経由でインストール。

  • 上記以外の、テストや試用、特定企業向けアプリ配信にも利用できる。

前提(AppStore)

未記載(元 Wiki も見出しのみ)。

アーカイブ(XXX形式)

未記載(元 Wiki も見出しのみ)。

デプロイ方法(AppStore)

AppStore (公式ストア) から配信。

汎用的なアプリケーションを世界市場に対して配信する。

App StoreのTest Flight機能

開発中のアプリをテストや一定のユーザのみで試用する目的で配信する。
(App Storeの基盤を使ってβテストのようなことが出来るようになる)

App StoreでCustom B2Bアプリ配信

App Store配信で特定企業(Custom B2Bアプリ)に配信する。

MDM(Mobile Device Management)

未記載(元 Wiki も見出しのみ)。

サイドローディング

  • Appleの審査を受けず、

    • 「ライセンス契約企業」向けのアプリケーションを「ライセンス契約企業」に対してデプロイする。
    • 注:**『「特定ドメイン」向けのアプリケーションを「特定ドメイン」に対して配信する。』**ではないので注意。

    などのケースで使用できる。

  • 方法としては、

    の3つの方法がある。

Debug

前提(Debug)

以下が必要。

デプロイ方法(Debug)

  • Xcode で
    • [Product]メニュー->[Build Settings]で[Code Signing にProvisioning Profile]を指定
    • 左上で、
      • 使用するデバイスを選択する。
      • Runボタンを押して実行する。

AdHoc(限定目的)

1つのDeveloper Programの登録ごとに100台のiOSデバイスを登録し、
そのデバイスに対して以下の3つのデプロイ方法でアプリをインストールできる。

事前のデバイス登録や、100台までというのがネック。

前提(AdHoc)

以下が必要。

アーカイブ(AdHoc形式)

  • Xcodeでアプリのプロジェクトを開く

  • [Target]メニュー

    • [Build Setting]->[Code Signing]セクションの[Code Signing Identity]を、
    • [iPhone Developer]ではなく、[iPhone Distribution]に変更し、
    • 作成した配布用 Provisioning Profileを選択する。
  • [Product]メニュー

    • [Build for Archive]->[Archive]を選択、アーカイブを作成。
  • [Organizer]が自動的に開き、[Archive]タブにアプリが表示される。

    • [Organizer]の[Archive]タブでアプリを選択、[Share]ボタン
    • [Contents]で[iOS App Store Package(.ipa)]を選択。
    • [Identity]でビルド時に選択した配布用 Provisioning Profileを選択。
    • [Next]をクリック(以降の手順はデプロイ方法によって異なる)。

デプロイ方法(AdHoc)

デプロイ方法としては以下の方法がある。

  • iTunesの使用

  • Webからのダウンロード

  • キッティング用

    • iPhone構成ユーティリティを使用(discon)
    • Apple Configurator

以下のサイトが参考になる。

In-House(社内利用)

事前のデバイス登録や、台数制限が無い。

  • ただし、In-House版アプリの
  • 利用者は、iDEP契約主体法人の従業員に限る。
  • 利用者以外にインストールされないよう厳重管理が必要。

前提(In-House)

以下が必要。

アーカイブ(OTA形式)

  • OTA形式とは

    • OTAとは、Over-The-Air の略。
    • Mac-Xcode、Mac-iTunesなどのケーブル経由でなく配布可能。
  • アーカイブの手順

    • 基本的に、AdHocと同じ。
    • OTA配布用のplistが必要になるが、自動生成される。

デプロイ方法(In-House)

セキュアなサーバにOTA形式のファイルをアップして、URLからインストールする。

従って、In-House(OTA形式)のデプロイでは、以下が必要になる。

  • HTTPSが使えるWWWサーバ
  • 画面表示用のhtmlファイル
  • DLするipaファイル
  • 対応するplistファイル

証明書

取得(証明書)

開発用(証明書の取得)

  • 証明書要求ファイルを生成する

    • MACのキーチェーンアクセスを使用して作成する。

      • 開発用MACのキーチェーンアクセスを起動
      • メニューの[キーチェーンアクセス]->[証明書アシスタント]->[認証局に証明書を要求…]
    • 証明書情報画面を入力する、

      • メールアドレス(開発者登録した開発者のメールアドレス)
      • 通称(空白)
      • CAのメールアドレス(空白)
      • 要求の処理
        ラジオボタン[ディスクに保存]を選択し、
        チェックボックス[鍵ペア情報を指定]をチェックする。
    • 鍵ペア情報画面を入力する。

      • 鍵のサイズ
      • アルゴリズム
    • 保存場所を指定して[保存]->[完了]。

  • 証明書を生成する
    以下に移動し、

    • Apple Developer Program のサイトにログイン

      • ---> MemberCenter
      • ---> Certificates, Identifiers & Profiles
      • ---> iOS Apps の Certificates
      • ---> iOS Certificates [+]
    • そこで、以下のように入力する。

      • [Development]->[iOS App Development]を選択し、[Continue]ボタン
      • [About Creating a Certificate Signing Request]画面で、[Continue]ボタン
      • [Choose File…]ボタン -> 証明書要求ファイルを選択 -> [選択]ボタン -> [Generate]ボタン
      • 証明書が生成されたら、[Download]ボタン -> [Done]ボタン
  • 次に、証明書をキーチェーンアクセスに登録する。

配布用(証明書の取得)

開発用(証明書の取得)との違いは、

PCに登録(証明書)

開発用(証明書のPC登録)

ダウンロードした証明書(ios_development.cer)をダブルクリックし、キーチェーンアクセスに登録。

配布用(証明書のPC登録)

ダウンロードした証明書(ios_distribution.cer)をダブルクリックし、キーチェーンアクセスに登録。

App ID(iOSアプリのID)登録

以下の画面に移動し、

  • Apple Developer Program のサイトにログイン
    • ---> MemberCenter
    • ---> Certificates, Identifiers & Profiles
    • ---> iOS Apps の Identifiers
    • ---> iOS App IDs [+]

そこで、以下の入力項目を入力する。

App ID Description

以下の何れかを入力する。

  • AppIDの説明
  • AppIDそのもの
  • 補足付きの短い文章

App ID Prefix

最近は、「App ID Prefix = Team ID」となっているらしい。

App ID Suffix

Explicit App ID or Wildcard App IDのどちらかを選び、
App ID Suffixとして、Bundle IDを入力する。

Bundle ID

この値(App ID Suffix)は、Xcodeで作成されたプロジェクトの
「Bundle Identifier」と一致している必要がある。

慣例的に自分のサイトのURLをひっくり返した名前が使われる。

Explicit App ID

  • Bundle IDを入力
  • アプリ固有のAppIDを作成する場合
    • アプリ内課金(アプリ内購入)するアプリ
    • iCloudなどのサービスを組み込むアプリ
    • 配布用Provisioning Profileに紐付けたい場合

Wildcard App ID

  • 最後「*」で終わるBundle IDを入力
  • 開発専用など、どのアプリでも使用できるAppIDを作成する場合。

App Services

使える機能(Resources、外部機器、MBaaSなどへのアクセスの可否)を選択する。

デバイスID(UDID)

取得(UDID)

iTunes

  • iTunesにデバイスを接続
  • 「概要」タブにある「シリアル番号」をクリックする。
  • 「識別子(UDID)」表示下で「編集」メニューの「コピー」クリックする。
  • クリップボードにデバイスIDがコピーされる。

XcodeのOrganizer

  • アプリケーション > Xcode
  • XcodeのWindowメニュー > Organizerを起動する。
  • 「Identifier」の欄に書かれている半角英数字の識別子をコピーする。

登録(UDID)

  • Apple Developer Program のサイトにログイン
    • ---> MemberCenter

    • ---> Certificates, Identifiers & Profiles

    • ---> iOS Apps の Devices

    • ---> iOS Apps Devices [+]

    • そこで、以下の入力項目を入力する。

      • 1台登録 Register Device
      • 複数台登録 Register Multiple Devices

Provisioning Profile

不正な経路でのアプリケーションのインストールを防止する役割を持つ。

以下が埋め込まれている。

  • App ID
  • 開発者ID
  • デバイスID

作成(Provisioning Profile)

開発用(Provisioning Profileの作成)

  • Apple Developer Program のサイトにログイン

    • ---> MemberCenter
    • ---> Certificates, Identifiers & Profiles
    • ---> iOS Apps の Provisioning Profiles
    • ---> iOS Provisioning Profiles [+]
  • そこで、以下のように入力する。

    • [Development]->[iOS App Development]を選択し、[Continue]ボタン
    • [Select AppID]画面で、AppIDを選択し、[Continue]ボタン
    • [Select certificates]画面で、開発用 証明書を選択し、[Continue]ボタン
    • [Select devices]画面で、アプリの転送/実行を許可する端末を選択し、[Continue]ボタン
    • [Name this profile and generate]画面で、Profile Nameを入力し、[Generate]ボタン
    • ProvisioningProfileが生成されたら、[Download]ボタン -> [Done]ボタン
  • 次に、ProvisioningProfileをインストールする。

配布用(Provisioning Profileの作成)

開発用(Provisioning Profileの作成)との違いは、

  • [Development]->[iOS App Development]を選択し、[Continue]ボタンではなく、

    • Apple Developer Programの場合、
      [Distribution]->[App Store] or [Ad hoc]を選択し、[Continue]ボタンを押下する。

    • Apple Developer Enterprise Programの場合、
      [Distribution]->[AdHoc] or [In House]を選択し、[Continue]ボタンを押下する。

  • [Select certificates]画面で、開発用 証明書を選択し、[Continue]ボタンではなく、
    [Select certificates]画面で、配布用 証明書を選択し、[Continue]ボタンを押下する。

  • 次に、ProvisioningProfileをインストールする。

登録(Provisioning Profile)

開発用(Provisioning Profileの登録)

  • ダウンロードしたProvisioningProfile(develop.mobileprovision)をダブルクリックし、インストール。

  • ProvisioningProfileの検証。

    • ProvisioningProfileを、Xcodeのアイコンに重ねて開き、Organizerを確認する。
    • 左メニューの接続されているデバイス横のランプが緑になっている事を確認する。
    • デバイス下の[Provisioning Profiles]を選択すると、登録されているプロファイルが表示される。
    • 「Valid profile」となっているか確認する。「Invalid」だと正しく登録されていない。

配布用(Provisioning Profileの登録)

ダウンロードしたProvisioningProfile(xxxxxxx.mobileprovision)をダブルクリックし、インストール。

参考

パターン毎

Debug(参考)

Ad-Hoc(限定目的)(参考)

In-House(社内利用)(参考)

実機・エミュレータ

開発ツール毎

補足:本ページの記述は Xcode 7〜9 前後(Member Center 時代)のもの。 現在は Apple Developer サイトの「Certificates, Identifiers & Profiles」に統合され、 配布方法も App Store Connect / TestFlight、Ad Hoc、Enterprise(In-House)、 Custom Apps(旧 Custom B2B)という整理になっている。 Apple Developer Enterprise Program は審査要件が厳格化されており、 一般の社内配布には Apple Business Manager の Custom Apps が案内されることが多い。

移行メモ

  • サイドローディングの方法として Debug / AdHoc / In-House の 3 つが 挙げられているにもかかわらず「の2つの方法がある。」となっていたため 「の3つの方法がある。」に修正した。
  • In-House の前提にあった「配布用 証明書()」は括弧内が空だったため、 サマリ表の記載に合わせて「配布用 証明書(In House and Ad Hoc)」とした。
  • 「外部機器m,MBaaS」→「外部機器、MBaaS」に修正した。
  • 配布用 Provisioning Profile の作成手順で、Apple Developer Enterprise Program の場合の選択が「[Development]->[Distribution]->[AdHoc] or [In House]」と なっていたが、直前の Apple Developer Program の記述と同様に 「[Distribution]->[AdHoc] or [In House]」の誤記と判断して修正した。
  • 元 Wiki の縦方向セル結合(|~|)は GitHub の表では表現できないため 「〃」に置き換え、&br; は <br> に置き換えた。
  • 同名の見出しが多数あり GitHub Wiki でアンカが衝突するため、 括弧で文脈を補って一意にした(「前提」「デプロイ方法」「アーカイブ」 「取得」「登録」「作成」「PCに登録」「開発用」「配布用」「Debug」 「Ad-Hoc(限定目的)」「In-House(社内利用)」)。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。

Tags: 移行, iOS, デプロイ, App Store, Ad Hoc, In-House, Provisioning Profile, 証明書, UDID, App ID

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONE / TODO

Clone this wiki locally