apkとipaの違いとは?AndroidとiOSのアプリ形式・AABとの関係を解説
apkとipaは、スマホアプリを1つのファイルにまとめた形式です。apkがAndroid、ipaがiOSに対応します。どちらも「インストールする前のアプリ本体」にあたります。
ただし、2つは配布のされ方がまったく違います。apkは端末に直接入れられますが、ipaは原則としてAppleの仕組みを通さないと入りません。この差が、開発や検証のやり方を分けています。
この記事では、それぞれの中身と作り方、AABという新しい形式との関係、そして実機で動かすまでの手順を整理します。
apkとipaの違い
| apk | ipa | |
|---|---|---|
| 対象OS | Android | iOS / iPadOS |
| 正式名称 | Android Package | iOS App Store Package |
| 作る道具 | Android Studio | Xcode(Macが必要) |
| 主な言語 | Kotlin / Java | Swift / Objective-C |
| ストア外での配布 | 可能(提供元不明のアプリを許可すれば入る) | 原則不可(TestFlightなどの仕組みが必要) |
| 署名 | 必須 | 必須(証明書とプロビジョニングプロファイル) |
最大の違いはストア外での配布です。Androidはapkを直接渡してインストールできますが、iOSは端末に入れる時点でAppleの署名の仕組みを通ります。
apk:いまはAABが標準になっている
混乱しやすいのがここです。Google Playには、2021年8月以降に新規公開するアプリはAAB(Android App Bundle)で提出することが求められています。apkをそのまま出すことはできません。
ではapkが不要になったかというと、そうではありません。
| 形式 | 役割 |
|---|---|
| AAB(.aab) | 開発者がGoogle Playに提出する形式 |
| apk(.apk) | Google Playが端末ごとに生成し、実際に端末へ配信される形式 |
つまりAABは提出用、apkは配信用です。AABをアップロードすると、Google Playが端末の画面サイズやCPUに合わせたapkを作って配ります。利用者のダウンロード量が減るのが利点です。
そのため、apkは今も使われています。ストアを通さずに社内へ配る、テスト端末に入れる、といった場面では直接apkを作ります。
apkを作って端末に入れる
Android Studioでビルドすると、apkまたはAABが出力されます。端末に入れる方法は2つです。
- ファイルを端末に転送して開く:「提供元不明のアプリ」の許可が必要
- adbコマンドを使う:
adb install app.apk
提供元不明のアプリを許可する設定は、必要なときだけ有効にしてください。この設定は、出所の分からないファイルも同じように入れられる状態にします。配布元が信頼できるかどうかが唯一の防御になります。
ipa:Appleの仕組みを通す前提
ipaはXcodeで書き出します。ただしファイルを渡せば動く、というものではありません。端末にインストールするには、その端末が対象に含まれた署名が必要です。
配布の方法は主に次の4つです。
| 方法 | 用途 | 条件 |
|---|---|---|
| App Store | 一般公開 | 審査を通る必要がある |
| TestFlight | テスターへの配布 | Apple Developer Programへの登録が必要 |
| Ad Hoc | 特定端末での検証 | 端末のIDを事前に登録する |
| 自分の端末で実行 | 開発中の動作確認 | Xcodeから直接インストールする |
自分のiPhoneで自作アプリを動かすだけなら、有料の登録は不要です。Xcodeから直接インストールできます。手順はXcodeで実機テストを行う方法にまとめています。
他人に配る段階になると、Apple Developer Programへの登録(年間99米ドル)が必要になります。
Macがないと作れない
ipaを書き出すXcodeはmacOS専用です。Windowsだけでは、iOSアプリの開発から配布までを完結できません。
ここはiOS開発を始めるときの最初の分岐点になります。詳しくはSwift入門ガイド|Macは必要かで扱っています。
両方に対応したい場合
AndroidとiOSの両方に出すなら、選択肢は2つあります。
| 方針 | 内容 | 留意点 |
|---|---|---|
| それぞれネイティブで作る | Kotlinでapk、Swiftでipa | 性能と対応の速さで有利。作る量は2倍 |
| クロスプラットフォーム | Flutter・React Nativeなどで1つのコードから両方を出力 | 作る量は減るが、ビルドと署名は結局OSごとに必要 |
クロスプラットフォームでも、ipaを作るにはMacが要ります。コードを1つにできても、署名と書き出しの工程は各OSの仕組みに従います。ここを見落とすと、開発の終盤で環境が足りないことに気づくことになります。
開発環境の選び方はスマホアプリの開発環境。主要5つまとめで比較しています。
よくある質問
apkファイルをネットからダウンロードして入れても大丈夫ですか
配布元が信頼できる場合に限ります。apkは端末に直接インストールできるため、改変されたアプリが配られていても利用者側では判別しにくいという性質があります。公式ストアを使えるなら、そちらが安全です。
ipaファイルをもらいましたが、iPhoneに入れられません
その端末が署名の対象に含まれていないためです。ファイルを受け取るだけでは入りません。配布側にTestFlightでの招待を依頼するか、Ad Hoc配布のために端末IDを登録してもらう必要があります。
AABとapk、どちらを作ればいいですか
Google Playに出すならAAB、ストアを通さず配るならapkです。Android Studioではどちらも出力できます。
apkの中身は何ですか
圧縮されたファイルの集まりで、コンパイル済みのコード、画像などのリソース、設定ファイル、署名情報が含まれます。拡張子を変えれば中を開けますが、他人のアプリを解析して再配布することは規約上も法律上も問題になります。
WindowsでiOSアプリを開発できませんか
署名と書き出しにmacOSが必要なため、Windowsだけで完結させることはできません。実務では、Macを用意するか、Macのビルド環境を借りる形になります。
まとめ
apkはAndroid、ipaはiOSのアプリファイルです。apkは端末に直接入れられ、ipaはAppleの署名の仕組みを通らないと入りません。この違いが、テストのやり方も配布のやり方も分けています。
Google Playに出すなら、提出するのはAABです。apkはGoogle Playが端末ごとに生成して配信します。ストア外に配るときは、いまもapkを直接作ります。
そしてipaを作るにはMacが必要です。クロスプラットフォームで開発しても、この条件は変わりません。
開発環境の選び方はスマホアプリの開発環境まとめ、iOS側の入口はSwift入門ガイドにまとめています。




