シミュレーターでは動くのに、先生や友人へ渡せるファイルを作れず止まっています。

最短解決は、先にプロジェクトを確認し、Product > Archive でアーカイブを作成し、提出目的に合う形式で書き出すことです。Macが手元にない場合は、コードを別の端末で準備してから、互換性のある実機またはリモートMacで最終ビルドを行います。

このページは、初めてSwiftUIの課題を完成させた学生向けです。シミュレーターで動かせるものの、Debug、Archive、書き出しファイル、TestFlightの違いが分からない人や、Windows・ChromebookからXcode作業を続けたい人を対象にしています。

交付先を先に決める

「パッケージ化」と言っても、必要な結果は同じではありません。授業で画面を見せるだけならRun、先生へ成果物を渡すならArchiveと書き出し、友人の端末で試してもらうなら署名や配布方法の確認が必要です。

<
目的まず行う操作受け取るもの初心者が避けること
授業中に動作を見せるSchemeを選んでRunシミュレーターまたは接続端末上の実行結果いきなり配布設定を始める
ソースコードを提出するプロジェクトを保存・共有プロジェクト一式と説明実行結果だけを完成品と思う
先生へビルド成果物を渡すArchive後に書き出し配布用ファイルなど署名条件を確認せず渡す
友人に試してもらう配布方法と端末条件を確認登録端末向けのテスト版、またはTestFlight用の準備自分のシミュレーター結果をインストール可能と説明する
**XcodeのArchiveとRunは何が違いますか。**

Runは、いわば授業中の「黒板に書いた草稿」をその場で動かす操作です。Archiveは、プロジェクトを配布や保存に向けた「提出用のまとまった記録」として保存する操作で、Appleの分散準備でもアーカイブ作成後にArchives organizerから書き出しや配布を進めます。詳細はAppleのアプリ配布準備で確認してください。

Xcode 27でiOS Appをパッケージ化する方法:事前確認

最初に、プロジェクトを開いた直後に配布設定へ進まないでください。シミュレーターで正常に動くこと、必要な画像やSwift Packageが読み込まれること、保存したコードへ戻れることを順番に確かめます。

Schemeは「どのアプリを、どの設定で動かすか」をまとめた実行メニューです。複数のターゲットがある課題では、別のSchemeを選ぶと、意図しないアプリをArchiveすることがあります。Schemeの調整方法は[AppleのBuild Scheme説明](https://developer.apple.com/documentation/xcode/customizing-the-build-schemes-for-a-project)に従ってください。 Bundle Identifierはアプリを識別する住所のようなものです。署名は、誰が作ったアプリかを確認するための電子的な証明で、コードの文法エラーとは別の問題です。次の表で、止まった場所を分けてください。 <
画面に出る状態まず見る場所判断
赤いコンパイルエラー該当ファイルと最初のエラーコードを直してから再実行
画像や色が見つからないAssetsとファイル参照リソースをプロジェクトへ戻す
Identifierや署名の警告Signing設定とアカウント配布条件を確認し、推測で証明書を作らない
Archiveが作成されないReport navigatorとビルドログ最初の失敗原因を読む
シミュレーターだけ動く実機・配布向け設定「動いた」と「渡せる」を分ける
作業前に、Gitのコミットまたは別フォルダーへのコピーを作成します。排錯中に設定を変えても、動いていた状態へ戻せるようにするためです。アプリの署名や証明書の種類は、[Appleの証明書概要](https://developer.apple.com/help/account/create-certificates/certificates-overview)で確認し、Apple Account、証明書、秘密鍵を他人と共有しないでください。

学生が授業の課題を提出する場合、最初に必要な作業は何ですか。

コードを保存し、プロジェクトが開くことを確認し、選択したSchemeでシミュレーターを動かします。先生がソースコードだけを求めているなら、そこで止めても構いません。インストール可能な成果物を求められている場合だけ、次のArchiveへ進みます。

DebugからArchiveへ進む

プロジェクトが実行できたら、画面上部のScheme、対象デバイス、ビルド設定を見直します。課題用アプリのターゲットを選び、シミュレーター専用の選択になっていないか確認してください。

そのうえで、現在のXcode 27環境に表示されるメニューを確認し、通常の流れとしてProduct > Archiveを実行します。Appleのアーカイブ問題の公式トラブルシューティングでも、アーカイブ時の設定やログを確認する考え方が示されています。Xcode 27の画面名が手元の環境と異なる場合は、表示された公式ヘルプを優先してください。

完了するとArchives organizerに記録が現れます。ここで成功と判断する条件は、単に処理が終わったことではなく、該当するアプリ、正しいバージョン、現在のソースコードに対応するArchiveが表示されることです。

Archiveに失敗したときは、同じボタンを繰り返し押さないでください。最初の赤いエラーを読み、コード、リソース、Scheme、署名のどこで止まったかを分けます。Appleの公式説明でも、アーカイブ問題は設定や依存関係を切り分けて確認する流れになっています。

Archives organizerから書き出す

Archiveは、そのまま友人の端末へ渡す単一の完成ファイルとは限りません。Archives organizerでDistribute Appを選ぶと、登録端末向けの書き出し、App Store Connectへのアップロードなど、目的に応じた次の処理へ進めます。

<
学習目的選ぶ方向追加で確認する条件
先生へ記録を渡すArchiveとプロジェクトを保存バージョン番号、対象アプリ、説明文
登録済み端末で試す登録端末向けに書き出す端末登録、署名、インストール方法
TestFlightで配布するApp Store Connectへアップロードアプリ記録、アカウント権限、審査・テスト条件
まだ提出方法が不明Archiveを保管して先生へ確認先に不要な公開手続きを進めない
SwiftUIプロジェクトを先生へ渡す場合、ソースコードだけでよいのか、インストール可能なテスト版が必要なのかを確認します。登録端末向けの配布条件は[Appleの公式手順](https://developer.apple.com/documentation/xcode/distributing-your-app-to-registered-devices)にまとまっています。

TestFlightは、App Storeへ一般公開する操作ではなく、ベータ版をテスターへ配る仕組みです。利用にはApp Store Connect側のアプリ記録などが関係するため、課題提出だけなら必須とは限りません。TestFlightの公式概要と、アプリ記録の作成手順を確認してから進めてください。

SwiftUIプロジェクトを先生が試せる形にするにはどうすればよいですか。

先生がソースコードを確認するなら、プロジェクト一式とビルド手順を渡します。実際の端末で試すなら、Archive後に利用できる配布方法、署名、登録端末の条件を先に確認し、書き出したファイルの種類とインストール方法を説明書へ書きます。

Macがない場合の接続手順

MacがなくてもiOS Appのパッケージ化はできますか。

コード作成、Gitへの保存、説明書の作成はWindowsやChromebookでも進められます。ただし、Xcodeを使う最終的なiOSビルドとArchiveは、互換性のあるmacOS環境が必要です。XcodeとmacOSの対応条件は、作業前に公式システム要件で照合してください。

作業は次のように分けると、環境の役割を間違えません。

  • 手元の端末:コード編集、コミット、画像や説明書の整理
  • リモートMac:Xcodeでプロジェクトを開く、コンパイル、Archive、書き出し
  • 受け渡し場所:ソースコード、Archiveの記録、書き出しファイルを安全に保管
リモートデスクトップはXcodeの画面操作に向いています。SSHはファイル確認、Git操作、ログの確認など、画面を使わない作業に向いていますが、接続しただけでiOSビルドが実行されるわけではありません。

まずプロジェクトをリモートMacへコピーし、開けるか、依存関係が解決するか、シミュレーターで動くかを確認します。次にArchiveを一度だけ試し、成功したら書き出しへ進みます。接続が不安定な状態で何度も署名設定を変更するより、最小限の確認で環境の問題とプロジェクトの問題を分ける方が安全です。

必要なら、MACGPUのMacレンタル案内で、遠隔のMacを使う流れと安全確認を先に確認してください。利用地域や作業時間を比較したい場合は、MACGPUのMac利用プランを見て、短期の課題作業に合うかを自分の締切と照合します。

提出前の受け渡し確認

最後に、画面上で動いたことと、相手が使えることを分けて確認します。次のチェック項目は、先生へ提出する前に一つずつ実行してください。

  • [ ] 最新のコードを保存し、コミットまたはバックアップを作成した
  • [ ] 正しいSchemeとアプリのターゲットを選んだ
  • [ ] シミュレーターで主要画面を確認した
  • [ ] Product > Archiveで対象プロジェクトのArchiveを作成した
  • [ ] Archiveに表示されるアプリ名とバージョン番号を確認した
  • [ ] 提出目的に合う形式で書き出した
  • [ ] ソースコード、書き出しファイル、操作説明を別々に確認した
  • [ ] 先生や友人が必要とするインストール方法を記載した
  • [ ] 自分の端末だけで動いたのか、相手の端末でも試せるのかを明記した
<
確認できた結果何を意味するか提出時の書き方
自分のMacで実行できた開発中の動作確認ができた「ローカルで確認済み」
シミュレーターで実行できたシミュレーター上の動作確認ができた実機インストール済みとは書かない
Archiveが成功した配布準備に進める記録ができたArchiveの対象と日時を記載
友人の端末で使えたその条件で配布・インストールを確認できた端末条件と方法を記載
TestFlightでテストできたベータ配布の経路を確認できた一般公開とは区別する
今回のように、まず授業提出だけが目的なら、不要な公開手続きまで進める必要はありません。反対に、友人の端末で試してもらうなら、署名、登録端末、配布方法のどこまで必要かを先に確認してください。

自分のWindowsやChromebookでコードを準備し続ける方法は、編集費用を抑えられる一方、Xcodeの画面確認、macOS依存のビルド、Archive、署名エラーの調査をその端末だけでは完結できません。仮想環境は動作条件や速度、USB接続、ライセンス確認が別途必要になり、課題の締切前に新しい問題を増やすことがあります。

「プロジェクトを開く、コンパイルする、Archiveを作る」だけを短期間で済ませたいなら、リモートMacを使う方が手順を分離しやすい場合があります。常に重い開発を続ける人、物理iPhoneやUSB機器を頻繁に使う人には自分のMacが向きますが、授業の提出や一時的な検証なら、MACGPUの利用方法を確認してからレンタルする方が、購入前の判断を誤りにくいです。

まずはコードのバックアップを作り、手元のプロジェクトが開くことを確認してください。その後、互換性のあるMac環境でArchiveまで成功させ、必要な場合だけ書き出しやTestFlightへ進む、という順番なら、初めてでも作業の戻りを少なくできます。