# iOS アプリのビルド

{% hint style="info" %}
2025年4月以降、App Store に送信されるiOS アプリは、iOS 18 SDK 以降をサポートする必要があります。詳細は、[アプリの提出](https://developer.apple.com/jp/app-store/submitting/)を参照していください。

Monacaで開発するアプリを AppStore に公開するには、Cordova 12 以降のプロジェクトを使用する必要があります。
{% endhint %}

## 事前準備

事前準備として、次の内容を行います。

* [Apple Developer Program](https://developer.apple.com/programs/ios/) への登録
* [ビルドの種類](#ビルドの種類) と要件の確認

### ビルドの種類

Monaca では、次のビルド種類をサポートしています。

<table data-header-hidden><thead><tr><th width="162">ビルドの種類　　　　　　</th><th>説明</th><th>要件 ( 準備するアイテム )</th><th>インストール方法</th></tr></thead><tbody><tr><td>ビルドの種類　　　　　　</td><td>説明</td><td><p>要件 </p><p>( 準備するアイテム )</p></td><td>インストール方法</td></tr><tr><td><strong>デバッグ</strong></td><td>開発用の端末にインストールするためのアプリをビルドします。</td><td><ul><li>開発用証明書</li><li>開発用 プロビジョニング プロファイル</li></ul></td><td><ul><li>Apple Configurator 2 ( Mac のみ )</li><li><a href="../../../../debugger/features#purojekutoopushon">ネットワーク インストール</a></li></ul></td></tr><tr><td><strong>Ad Hoc</strong></td><td>限られたグループにインストールするためのアプリをビルドします。</td><td><ul><li>配布用証明書</li><li>配布用 ( Ad Hoc ) <br>プロビジョニング プロファイル</li></ul></td><td><ul><li>Apple Configurator 2 ( Mac のみ )</li><li>QR コード</li></ul></td></tr><tr><td><strong>In-house</strong></td><td>App Store 経由以外で配布するためのアプリをビルドします。</td><td><ul><li>配布用証明書</li><li>配布用 ( In-house ) プロビジョニング プロファイル</li></ul></td><td><ul><li>Apple Configurator 2 ( Mac のみ )</li><li>QR コード</li></ul></td></tr><tr><td><strong>リリース</strong></td><td>App Store 経由で配布するためのアプリをビルドします。</td><td><ul><li>配布用証明書</li><li>配布用 ( App Store ) プロビジョニング プロファイル</li></ul></td><td><ul><li>App Store で入手</li></ul></td></tr><tr><td><strong>シミュレーター</strong></td><td>シミュレータで動作確認するためのビルドです。(ターゲットはiPhoneとなります)</td><td><ul><li>特になし</li></ul></td><td><ul><li>Xcodeでシュミュレーション</li><li><a href="../../monaca_ci/appetizeio">ブラウザ上でシュミュレーション</a></li></ul></td></tr></tbody></table>

{% hint style="info" %}
Ad Hoc 配布とは、App Store を経由せずに、アプリを配布するための仕組みです ( 評価配布用 )。Ad Hoc プロビジョニング プロファイルを使ってビルドする、評価用アプリは、現在、最大 **100 台** まで、Ad Hoc 形式で配布できます。ただし、アプリの配布先は、開発関係者に限定されます。
{% endhint %}

## ステップ 1 : Monaca 上での iOS アプリ設定

### iOS アプリの設定

1. Monaca クラウド IDE のメニューから、`設定 → iOS アプリ設定` を選択します。
2. アプリに関する次の情報を入力します。

   <table data-header-hidden><thead><tr><th width="201">アプリケーション名　　　　　　　</th><th>アプリの名前を入力します。マーケット上などで表示されます。</th></tr></thead><tbody><tr><td>アプリケーション名　　　　　　　</td><td>アプリの名前を入力します。マーケット上などで表示されます。</td></tr><tr><td>App ID</td><td>アプリを識別する一意の ID です。逆ドメイン形式を推奨します ( mobi.monaca.appname など )。英数字とピリオドのみ使用できます ( ピリオドは最低限 1 つ使用 )。各節 ( 各レベルのドメイン ) はピリオドで区切り、各節の先頭には英字を使用します。</td></tr><tr><td>バージョン</td><td>アプリのバージョン番号です。App Store Connect 経由で、アプリをアップロードするとき ( 配布する場合 ) に必要となります。3 つの節を、それぞれドットで区切ります ( 例 : 1.10.2 )。各節の数字には、<code>[0-99]</code> を使用します。</td></tr></tbody></table>

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdExqnNiVQrjN4R9rE%2Fimage.png?alt=media\&token=a0dcc5be-4094-4afc-bde9-a5c7bcc28cac)

{% hint style="danger" %}
Monaca のアプリ設定では、App ID にアスタリスク (\*) を使用することはできません。使用した場合、ビルドは失敗します。また、この App ID には Apple Developer Program に登録した App ID と同じ ID を使用します。詳細は、[ App ID の登録 ](#app-id-no)をご確認ください。
{% endhint %}

&#x20;   3\. 設定後、`保存する` をクリックします。

{% hint style="info" %}
現在、iOS の \[ App ID ] または Android の \[ パッケージ名 ] のいずれかを変更すると、両方とも同じ名前に更新されます。それぞれに別の名を設定する場合には、[ App ID ( iOS 側 ) と パッケージ名 ( Android 側 ) にそれぞれ異なる値を設定するには？ ](https://ja.docs.monaca.io/faq/application#app-id-ios-to-pakkji-android-nisorezorenaruwosuruniha)をご確認ください。
{% endhint %}

### iOS のビルド設定

1. Monaca クラウド IDE のメニューから、`設定 → iOS ビルド設定` を選択します。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdFQ97p1MvtpbjKoZB%2Fimage.png?alt=media\&token=b4add94a-6a30-4477-8d53-676c1a68aca4)

&#x20;   2\. 秘密鍵を作成します。または、既存の秘密鍵がある場合には、インポートもできます。ここでは、新規に秘密鍵を作成します。`秘密鍵と CSR の生成` ボタンをクリックして、ユーザー名 ( 秘密鍵に付ける名前 ) ・ メールアドレス ( Apple ID ) ・ 国コードを入力します。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdFkmyeqSGq9fDfRYS%2Fimage.png?alt=media\&token=a7b35f7c-788d-4e26-8cd4-d87ebb4ca35e)

{% hint style="info" %}
既存の秘密鍵をインポートする場合には、その秘密鍵に関連付けされた証明書も Monaca へアップロードする必要があります。詳細は、 [ステップ 2 : 秘密鍵と証明書の Monaca へのインポート ](https://ja.docs.monaca.io/products_guide/monaca_ide/build/import_export#suteppu-2-tono-monaca-henoinpto)をご確認ください。
{% endhint %}

&#x20;   3\. 秘密鍵の作成後、その秘密鍵に関連付けされた CSR ファイルも同時に作成されます。次に、`エクスポート` ボタンをクリックして、この CSR ファイルをダウンロードします。このファイルは、後ほど、Apple Developer Program で証明書を発行するときに使用します。

&#x20;   4\. [「 証明書の作成 」](#証明書の作成) の内容に従い、Apple Developer Program で証明書を作成して、ダウンロードします。

&#x20;   5\. [「 プロビジョニング プロファイルの作成 」](#プロビジョニング-プロファイルの作成)の内容に従い、Apple Developer Program でプロビジョニングプロファイルを作成して、ダウンロードします。

&#x20;   6\. 証明書とそれに対応するプロビジョニング プロファイルを、Monaca クラウドへアップロードします。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdG8yKqy5t7wpmre1X%2Fimage.png?alt=media\&token=76f9a1b0-0134-4c4a-ade2-2ab640d925cf)

{% hint style="info" %}
Monoaca のビルド設定上では、証明書とそれに対応するプロビジョニングプロファイルを、複数個、アップロード・保管しておくことができます。
{% endhint %}

## ステップ 2 : Apple Developer Program 上での iOS アプリ設定

1. [Apple Developer ページ](https://developer.apple.com/) へ行き、`Account` をクリックします。
2. Apple Developer Program に登録した、Apple IDとパスワードを使用して、サインインします。このプログラムに未登録の場合には、[こちら](https://developer.apple.com/programs/)で登録します。
3. `Certificates, Identifiers/IDs & Profiles` へ行き、次のページを表示します。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdGLT0FTz26sazEW6C%2Fimage.png?alt=media\&token=10f7e95b-81d3-41fc-9a0d-6fb581adc1da)

&#x20;   4\. このページ上で行う処理は、次のとおりです。

* [証明書の作成](#証明書の作成)
* [App ID の登録](#app-id-の登録)
* [開発用端末の登録](#開発用端末の登録)
* [プロビジョニング-プロファイルの作成](#プロビジョニング-プロファイルの作成)

### 証明書の作成

Apple Developer Program では、2 種類の証明書を発行できます。

* 開発用証明書 : デバッグビルドを行うときに、必要となります。
* 配布用証明書 : リリースビルドまたは Ad Hoc

  ビルドを行うときに、必要となります。

CSR ファイルのダウンロード後 ( [iOS のビルド設定](#ios-のビルド設定) を参照のこと )、Apple Developer Program で証明書を発行して、ダウンロードします。

開発用証明書の発行とダウンロードを、次の手順で行います。

1. `Certificates` 項目を選択します。
2. 追加ボタン 「`+`」 をクリックします ( 下のスクリーンショットを参照のこと )。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdGVqon_WVwQWChIDz%2Fimage.png?alt=media\&token=1771b2ed-0d97-4878-b33c-a9f0da1e57ff)

&#x20;  3\. `iOS App Development` を選択し、`Continue`  ボタンをクリックします。

{% hint style="info" %}
配布用の証明書を発行する場合には、 `App Store and Ad Hoc` を選択します。
{% endhint %}

&#x20;   4\. `Continue` ボタンをクリックし、Monaca クラウド IDE からダウンロードした CSR ファイル をアップロードします。次に、`Generate`  ボタンをクリックします。

&#x20;   5\. 開発用証明書の発行が、これで完了しました。発行された証明書をダウンロードします ( 後から、Monaca クラウド IDE にアップロードします )。

{% hint style="info" %}
配布用証明書をインポートする場合も、ほぼ同様の手順です。
{% endhint %}

### App ID の登録

App ID は、開発用と配布用のプロビジョニング プロファイルの作成時に、主に、使用します。Wildcard App ID ( 複数の アプリで共通 ) または Explicit App ID ( アプリを識別する、一意の Bundle ID と一致 ) を作成できます。

App ID の登録を、次の手順で行います。

1. `Identifiers` 項目を選択します。
2. 追加ボタン 「`+`」 をクリックします ( 下のスクリーンショットを参照のこと )。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdGwnyCGOcP-k2IniO%2Fimage.png?alt=media\&token=c154e9de-0718-4a0a-8be1-64815508a1b5)

&#x20;   3\. App ID は、「`.`」 で区切られた、2 つの文字列 ( Prefix と Suffix ) で構成されています。次の内容を参考にして、App ID の情報を入力します。

* App ID Description : App ID の説明を入力します。「 `@、&、*、'、"` 」 などの特殊文字は使用できません。
* App ID Prefix : Team ID となります ( デフォルト )。
* App ID Suffix : アプリを識別するための Bundle ID となります。App ID Suffix には、次の 2 種類があります。

  | データ　　　　　　       | 説明                                                                                                                                                                                                                                                                                      |
  | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Explicit App ID | Game Center、In-App Purchase、Data Protection、iCloud などのサービスを、アプリで利用する場合、または、あるアプリ専用のプロビジョニング プロファイルが必要な場合、Explicit App ID を登録します。この場合、アプリの Bundle ID と一致する文字列を、Explicit App ID の Bundle ID 欄に入力します。指定する ID は、Monaca クラウド IDE 上で設定した App ID と同じものである必要があります ( [iOS アプリの設定](#ios-アプリの設定) ) |
  | Wildcard App ID | 複数のアプリのビルドとインストールに、1 つの App ID を使用したい場合、Wildcard App ID を登録します。この場合、最後の文字がアスタリスク ( `*` ) になるように、Bundle ID を入力します。                                                                                                                                                                       |
* App Services : アプリ上で使用したいサービスを選択します。

&#x20;   4\. `Continue`をクリックします。App ID の登録内容を確認して、`Submit` をクリックします。ここまでの手順で、Apple Developer Program への App ID の登録が完了しました。

### 開発用端末の登録

開発用と配布用のプロビジョニング プロファイルを作成する前に、開発用の端末を登録する必要があります。

アプリ開発時に使用する端末を、次の手順で登録します。

1. `Devices` 項目を選択します。
2. 追加ボタン 「`+`」 をクリックします ( 下のスクリーンショットを参照のこと )。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdHI-q752GGr8p7tEV%2Fimage.png?alt=media\&token=af7ea1ad-71ba-4928-a864-b653e27cbdbb)

&#x20;   3\. 端末の情報を入力します。

* `Name` : 端末を識別するための名前を入力します ( 例 : MyiPhone )
* `UDID` : 端末固有の識別コードです。UDID は、コンピューターに iOS 端末を接続して確認できます。macOS の場合は、システム情報の `シリアル番号` から、Windows の場合は、デバイスマネージャーの `デバイス インスタンス パス` から確認できます。( 下のスクリーンショットを参照のこと )。

![macOS](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdHS3XHOU6qJ_aJz6h%2Fimage.png?alt=media\&token=5a855c47-e76a-47c1-8c43-206248d36fc3)

![Windows](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdHVC4cZ8ENNGwYTcB%2Fimage.png?alt=media\&token=27d9d88c-afc4-4d93-8935-a5ea4bb4f134)

&#x20;   4\. 入力後、`Continue` をクリックします。次の画面で入力情報を確認して、`Register`  をクリックします。Apple Developer Program 上での開発用端末の登録は、これで完了です。

### プロビジョニング プロファイルの作成

アプリのビルドの最終工程として、プロビジョニング プロファイルを作成します。プロビジョニング プロファイルには、次の2種類があります。

* 開発用 プロビジョニング プロファイル : デバッグビルドを行うときに、開発用証明書と共に使用します。
* 配布用 プロビジョニング プロファイル : Ad Hoc または配布 ( 実稼働 ) 用ビルドを行うときに、配布用証明書と共に使用します。

開発用 プロビジョニング プロファイルを、次の手順で作成します。

1. `Profiles` 項目を選択します。
2. 追加ボタン 「`+`」 をクリックします。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdHji-_04rRhJv7zZY%2Fimage.png?alt=media\&token=26323c79-290d-489f-a02c-cea1152b1eab)

&#x20;   3\. `iOS App Development` を選択し、`Continue` ボタンをクリックします。

{% hint style="info" %}

* Ad Hoc ビルド用に、配布用 プロビジョニング プロファイルを作成する場合には、`Ad Hoc` を選択します。
* リリースビルド用に、配布用 プロビジョニング プロファイルを作成する場合には、`App Store` を選択します。
  {% endhint %}

&#x20;   4\. 対象の App ID を選択して、`Continue` ボタンをクリックします。

&#x20;   5\. このプロファイルに紐付けする証明書を選択して、`Continue` ボタンをクリックします。

&#x20;   6\. 先ほど登録した開発用の端末を選択して、`Continue` ボタンをクリックします。

&#x20;   7\. プロビジョニング プロファイルの名前を入力して、`Generate` ボタンをクリックします。

&#x20;   8\. 開発用 プロビジョニングプロファイルの準備が完了しました。プロファイルをダウンロードします。後ほど、Monaca上で、iOS アプリをビルドするときに、このファイルを使用します。

{% hint style="info" %}
配布用 プロビジョニング プロファイルの作成も、ほぼ同様の手順で行えます。
{% endhint %}

## ステップ 3 : アプリのビルド

1. Monaca クラウド IDE のメニューから、`ビルド → iOS アプリのビルド`を選択します。
2. 目的に応じたビルドの種類を選択して、`ビルドを開始する` ボタンをクリックします。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdIRD12GE3-AfmksLG%2Fimage.png?alt=media\&token=f59bb48b-4c62-4e5e-8c4f-b0722dae29c0)

&#x20;   3\. ビルドが完了するまで、しばらく待ちます。ビルドが成功した場合には、次のような画面が表示されます。ビルドの完了後、ビルド済みアプリをインストールまたはダウンロードできます。

![](https://3046938759-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MfWrOnV1iKerkfShm9O%2F-MgdETsTGgforLTYFc9f%2F-MgdIVgXFoSPaXG4IZ75%2Fimage.png?alt=media\&token=2d04d6ac-92c3-4e9f-9df6-c7ea13a9eb08)

{% hint style="info" %}
macOS Catalina 10.15 以降でシミュレーターを使用している場合は、アプリ実行前にターミナルで下記のコマンドを実行する必要があります。

* すべてのアプリケーションを許可を有効

sudo spctl --master-disable\
\
設定を戻す場合は、下記のコマンドを実行します。

* すべてのアプリケーションを許可を無効

sudo spctl --master-enable
{% endhint %}
