【ITニュース解説】Make Your iPhone Into a Mac to Create Apps for the App Store
2026年10月22日に「Dev.to」が公開したITニュース「Make Your iPhone Into a Mac to Create Apps for the App Store」について初心者にもわかりやすく解説しています。
ITニュース概要
Macを持たなくてもiPhoneアプリを開発・App Storeに公開する方法が解説された。通常必須なMacでのXcode作業を、iPhoneからクラウド上のMacサービス(CodemagicやXcode Cloud)を利用して代替。API連携でビルド・署名・アップロードを自動化し、Mac購入不要でアプリ開発を実現した事例だ。
ITニュース解説
iPhoneアプリを開発してApp Storeに公開したいが、Macを持っていない、あるいは購入する余裕がないというシステムエンジニアを目指す初心者にとって、本記事は非常に興味深い解決策を提示している。筆者はMacを一度も所有したことがなく、iPhoneとAIパートナーを活用したノーコード開発者でありながら、実際にTestFlightでアプリをテストし、App Storeに提出できる段階まで達している。しかし、iPhoneアプリをApp Storeに公開するには、AppleがMacを「必須」としているという大きな壁に直面した。
この「Mac必須」の背景には、Xcodeという開発ツールがある。XcodeはiOSアプリのコードをコンパイルし、アイコンや画像などのアセットをパッケージ化し、アプリに開発者の署名を施し、最終的な配布形式である.ipaファイルにアーカイブし、そしてAppleのApp Store Connectへのアップロードを検証するといった、一連の重要な作業を行う。これらの機能はすべてmacOS上でしか動作しないため、MacなしではアプリをApp Storeに提出できないのだ。筆者はこれまでGitHub Actionsというサービスが提供するMac環境(ランナー)を借りてビルドを行っていたが、無料利用枠の時間が限られている上、Mac環境での利用は通常の10倍の速度で時間が消費されるため、すぐに枯渇してしまうという問題に直面していた。また、ビルドの順番待ちが発生することも課題であった。そこで筆者は「Macなしで、順番待ちもなくアプリをビルドする」という目標を掲げ、解決策の模索を始めたのである。
Macが具体的に何をしているのかを深く掘り下げた結果、Xcode内部で実行される主要な五つの作業が明らかになった。一つ目は、iOS SDK(ソフトウェア開発キット)を使ってiPhoneで動作するコードをコンパイルすること。iOS SDKはXcodeにのみ含まれており、これがないとiPhone用のアプリは作成できない。二つ目は、アイコン、画像、そしてアプリの画面レイアウトを定義するストーリーボードといったアセットをMac専用のツールでパッケージ化すること。三つ目は、アプリにコード署名を行うこと。これはアプリが信頼できる開発者によって作成され、改ざんされていないことをAppleが確認するための重要なプロセスである。四つ目は、作成されたアプリをAppleがApp Storeで受け付けるための標準フォーマットである.ipaファイルにアーカイブすること。五つ目は、アップロード検証であり、特に最新のXcodeおよびiOS SDKバージョンを使用しないと、アプリがApp Store Connectへのアップロード時に拒否されるという厳格な要件がある。これらの五つの作業は、iPhone単体では実行できない。iPhone向けXcodeは存在しないからだ。そこで筆者が考案したのが、iPhoneを「フロントドア」として使い、実際のMacでの作業はどこか別の場所に「隠されたMac」、つまり「クラウド上のMac」に任せるというアイデアであった。
このアイデアを実現するため、筆者は無料で利用できる二つのクラウドMacサービスを見つけた。一つはCodemagicというサービスで、個人開発者向けにM2 MacでのmacOSビルド時間を月に500分まで無料で提供している。このサービスにはAPI(アプリケーション・プログラミング・インターフェース)があり、自分のアプリからビルド処理をトリガーできる点が重要だった。もう一つはXcode Cloudである。これはApple自身が提供するクラウドビルドサービスで、筆者がすでに年間99ドルを支払って加入しているApple Developer Programに、月に25コンピュート時間(ビルドに必要な処理時間)が含まれている。これら二つのサービスを組み合わせることで、GitHub Actionsよりもはるかに多くのビルド時間を確保でき、かつビルドの順番待ちに悩まされることもなくなるという大きな利点があった。
筆者はさっそくこの仕組みのプロトタイプをiPhone上でテストした。アプリのボタンをタップすると、先述の五つのビルドステップが次々と実行され、最終的に「TestFlightにあります」という表示が出た。これはシミュレーションではあったが、きちんと動作することを確認できたため、Codemagicを実際に連携させ、実ビルドを行うことにした。しかし、ここからが苦難の始まりであった。最初の3回のビルドはすべて失敗し、エラーはApp Store Connect APIキーの書き込みステップで発生した。APIキー自体はCodemagicに正しく保存され、他の場所では問題なく動作していたにもかかわらず、ビルド内部ではキーファイルが空として扱われ、署名プロセスが拒否されてしまうのだ。診断機能を追加して調査した結果、Codemagicのポータル連携では、実際のAPIキーがビルドスクリプトに直接渡されるのではなく、キーを参照するための72文字のトークンが渡されていることが判明した。ビルドスクリプトがこのトークンを実際のキーとして処理しようとすると、結果として空のファイルが生成され、エラーが発生していたのだ。この問題の解決策は、キーをCodemagicのポータルではなく、暗号化された環境変数グループとして設定し、ビルドスクリプトがその環境変数を優先的に参照するように変更することだった。この修正を施した結果、4回目のビルドはわずか3分で成功し、無事に署名され、アプリはApp Store Connectに正常にアップロードされた。筆者の自宅にはMacがなくても、そしてGitHub Actionsのような順番待ちもなく、iPhoneのボタン一つでクラウド上のMacが動き、Appleに承認されるアプリがビルドされたのである。
筆者は、より根本的な解決策として、Linux上でオープンソースのXcode代替ツールを使って完全にMacなしでビルドする方法も検討した。このようなプロジェクトは実際に存在するが、Appleのライセンス規約ではiOS SDKの使用がApple製のハードウェアに限定されているため、この方法では開発者アカウントが停止されるリスクがあった。筆者は自分のアプリが存在するアカウントを実験のためにリスクにさらすことはできなかったため、この道は選ばなかった。本記事で紹介されている方法は、iPhoneをフロントエンド、Apple Developer Programを通じて利用できる合法的なクラウドMacをバックエンドとする、安全で再現性の高いアプローチであると強調している。
最終的に、筆者のiPhoneアプリのフロントドアは完成した。セキュリティを強化し、トリガーキーをバックエンドで安全に管理するよう再構築した後、筆者自身がボタンを押した。アプリはすべてのプロセスを実行し、最終的に「TestFlightにあります」と表示された。このボタンはもはやプロトタイプではなく、筆者がアプリを公開するための実際のツールとなっている。この体験を通じて得られた結論は明確である。iPhoneアプリを開発するためにMacを最初に購入する必要はない。重要なのは、Macが具体的にどのような作業を行っているのかを正確に理解し、その作業を合法的に実行できる場所(クラウド上のMac)を見つけ、そしてそこへアクセスするための最もシンプルな入り口を構築することなのである。筆者にとって、その入り口は、自分のアプリをカード形式で表示し、一つの大きなビルドボタンが備わった、iPhone上のアプリである。Macは不要、順番待ちも不要、という理想的な環境が実現した。