コンテンツにスキップ

Top

自作アプリをネットワーク経由で他人のiPhoneにインストールする方法

MacのXCodeでiOSアプリ(iPhoneアプリ)を作ったので友達にも試してもらいたい!と思った場合、家のMacにUSBなりWiFiでつなげれば友達のiPhoneにインストールできるが、家に来るほどの仲じゃない場合困ってしまうので、どうしたものかと調べたところ、TestFlightなるものがあることを知り使ってみたのでまとめました。

Macで開発したiOS/iPadOSアプリを他人の端末へ暫定配布する(TestFlight版)手順まとめ

このページは、Xcodeで作ったアプリを TestFlight で他人のiPhone/iPadに配布するまでの流れを、実際に詰まったポイント込みでまとめたものである。


前提

  • Apple Developer Program 加入済み
  • Xcode が入っている(Mac)
  • 配布先の人は iPhone/iPad に TestFlightアプリ を入れられる

全体の流れ(ざっくり)

  1. Apple Developer(Identifiers)で App ID(Bundle ID) を作る
  2. App Store Connect で アプリ登録(箱を作る)
  3. Xcodeで 署名設定・アイコン を整える
  4. Xcodeで Archive → Upload(App Store Connectへ)
  5. App Store Connect(TestFlight)で コンプライアンス回答
  6. グループ作成 → 外部テスト提出(審査) → 承認
  7. 公開リンク(Public Link) をONにしてリンクを配布

1. Bundle ID がプルダウンに出ない場合(最初の詰まりポイント)

App Store Connectの「New App」で Bundle IDが選択肢に出ないときは、 そのBundle IDが Apple DeveloperのIdentifiersに未登録

対応

  1. Apple Developer → Certificates, Identifiers & Profiles
  2. Identifiers
  3. App IDs → App
  4. Bundle ID は Explicit で登録(例:jp.co.example.MyApp
  5. com.example.* みたいな Wildcardは不可
  6. 保存 → App Store Connect を更新するとプルダウンに出る

2. App Store Connectでアプリ登録(初回のみ)

  1. App Store Connect → My Apps → New App
  2. iOSを選択、アプリ名、言語、SKU
  3. さっき作った Bundle ID を選ぶ

3. Xcode側の設定(必須)

3-1. Bundle Identifier の確認場所

Xcode → 青いプロジェクト → TARGETS(アプリ本体)Signing & Capabilities
Bundle Identifier が App Store Connect のものと一致していること

3-2. Signing設定

  • Automatically manage signing:ON
  • Team:正しいTeam を選択

3-3. Version / Build(超重要)

TARGETS → General → Identity - Version:1.0 など - Build:1 など(アップロードするたびに 必ず増やす


4. アイコンエラーが出た場合(Validation failed)

典型エラー例: - Missing required icon file(120×120、152×152が無い) - CFBundleIconName が無い

対応(最短)

  1. Assets.xcassets を開く
  2. + → New App Icon(AppIconを作る)
  3. AppIcon の枠にPNGを入れる
  4. まずは 1024×1024のPNG を用意して入れるのがラク。ChatGPTに頼めばアイコン画像はすぐできる。
  5. TARGETS → GeneralApp Icons and Launch Screen
  6. App Icons Source が AppIcon になっていること

5. Archive → Upload(Xcode)

  1. 実行先を Any iOS Device (arm64) などにする(Simulatorだとダメ)
  2. Product → Archive
  3. Organizer → Distribute App → App Store Connect → Upload

※「Xcode Cloud用にリモートリポジトリが必要」みたいな案内が出ても、 TestFlight配布には関係ないのでスルーでOK。


6. App Store Connect(TestFlight)で「処理中」→ コンプライアンス対応

Upload直後はビルドが 処理中(Processing) になる。

「コンプライアンスがありません」と出たら

輸出コンプライアンス(暗号化)の回答が未提出。

例:暗号化アルゴリズムの種類の選択

多くの普通のアプリ(HTTPS / OS標準の暗号化APIなど)なら
「標準的な暗号化アルゴリズム」 を選ぶことが多い。

※独自暗号(自作方式)を入れてる場合は該当を選ぶ。


7. 外部テスト(External)が出ない問題

UIの出方で、最初は外部メニューが出ないことがある。

解決例(今回のケース)

  • 内部グループを1つ作ったら外部グループ作成メニューが出てきた

8. 外部配布:グループ作成 → 審査 → 承認

外部テストは基本 ベータ審査(TestFlight App Review) が入る。

  1. TestFlight → 外部(External)側で 外部グループ作成
  2. グループに ビルドを追加
  3. 必要なら Test Information を埋める
  4. 審査に提出承認済みになるのを待つ。半日ぐらい待った。

承認済みになったら、外部グループの画面で:

  1. Public Link(公開リンク)ON
  2. 表示されたURLをコピーして相手に送る

相手側は: - TestFlightアプリを入れる - 送られたリンクを開く - Install


10. 有効期限(90日)について

TestFlightのビルドは 90日で期限切れ

延長(同じビルドの延命)はできないので、 継続したい場合は 新しいビルドをアップロードする。

  • Build番号を上げる → Archive → Upload
  • 同じ外部グループに新ビルドを追加
  • テスターはアップデートするだけで継続可能