APKとOBBファイルからXAPKファイルを作成する方法

#Android#HowTo
投稿日:

はじめに

この記事では、XAPKファイルの作り方について説明します。

XAPKファイルは、Androidアプリのパッケージファイルの一種です。一般的に使われているAPKファイルにはファイルサイズの制限があるため、ゲームなどではAPKファイルとは別にOBBファイルを用意して、アプリのデータを格納することがあります。XAPKファイルは、APKファイルとOBBファイルを1つにまとめたものです。

XAPKファイルを作成することで、Androidアプリを自由に配布・インストールできます。

XAPKファイルを作成するには、AndroidアプリのソースコードをAndroid Studioなどの開発環境でビルドする必要はありません。必要なファイルをそろえて、いくつかの手順を実行するだけでXAPKファイルが完成します。

必要なもの

XAPKファイルを作るには、アプリのAPKファイルとOBBファイルが必要です。APKファイルは、Androidアプリのパッケージファイルです。OBBファイルは、APKファイルとは別に用意されている、アプリのデータを格納するファイルです。

APKファイルの入手方法

APKファイルは、Androidの実機からファイルマネージャーなどで取りだせます。ここでは、Google製のファイルマネージャーの「Files by Google」を使ってAPKファイルを取りだす方法を説明します。

すでにAPKファイルを用意してある場合は、この手順は飛ばしてください。

まず、Androidの実機に「Files by Google」をインストールします。

次に、Filesのホーム画面から[アプリ]をタップします。

Files by Googleのホーム画面のスクリーンショット

インストールされているアプリの一覧が表示されるので、APKファイルを取りだしたいアプリの右の3点ドットをタップし、[共有]を選択します。

Files by Googleのスクリーンショット。端末にインストールされているアプリの一覧が表示されている

あとは、共有先を選択する画面が表示されるので、ニアバイシェアやGoogle Drive、Dropboxなど任意の手段でPCに送信します。

OBBファイルの入手方法

OBBファイルはAPKファイルと同じく、Androidの実機から取りだせます。

Filesを使う場合は、ホーム画面から[内部ストレージ]をタップします。

Files by Googleのホーム画面のスクリーンショット

次に、[Android]>[obb]と進んでいくと、アプリのパッケージ名のフォルダーが表示されます。該当するフォルダーを開くと.obbファイルが格納されているので、これをPCに送信します。

XAPKファイルの作り方

ファイルの準備

PCにAPKファイルとOBBファイルがあることを確認したら、それらを1つのフォルダーにまとめます。このフォルダーには、他のファイルは含めないでください。ここでは、xapkという名前のフォルダーを作成し、その中にAPKファイルとOBBファイルを格納します。

APKファイルは[パッケージ名].apkという名前にしてください。たとえば、com.example.app.apkのようにします。

xapkフォルダーの中にAndroidフォルダーを作り、さらにその中にobbフォルダーを作ります。obbフォルダーの中には、[パッケージ名]という名前のフォルダーを作ります。たとえば、com.example.appのようにします。このフォルダーの中に、OBBファイルを格納します。

OBBファイルの名前は、main.[バージョンコード].[パッケージ名].obbという形式になっていることを確認してください。たとえば、main.12345.com.example.app.obbのようにします。mainの部分はpatchでも(おそらくは)大丈夫だと思われます。

ここまで終わると、xapkフォルダーの中身は次のようになります。

xapkフォルダー
📁xapk
└── 📁Android
├── 📁obb
│ └── 📁com.com.example.app
│ └── main.12345.com.example.app.obb
└── com.example.app.apk

ここまでできたら、次の手順に進みます。

manifest.jsonの作成

次は、xapkフォルダーにmanifest.jsonという名前のファイルを作成します。このファイルには、XAPKファイルの情報を記述します。

任意のテキストエディターを開き、manifest.jsonに次の内容を記入します。

manifest.json
1
{
2
"xapk_version": 1,
3
"package_name": "[パッケージ名]",
4
"name": "[アプリ名]",
5
"version_code": "[バージョンコード]",
6
"version_name": "[バージョン番号]",
7
"min_sdk_version": "18",
8
"target_sdk_version": "27",
9
"total_size": 158572944,
10
"expansions": [
11
{
12
"file": "Android/obb/[パッケージ名]/main.[バージョンコード].[パッケージ名].obb",
13
"install_location": "EXTERNAL_STORAGE",
14
"install_path": "Android/obb/[パッケージ名]/main.[バージョンコード].[パッケージ名].obb"
15
}
16
]
17
}

[パッケージ名][アプリ名][バージョンコード][バージョン番号]はそれぞれ、実際の値に置き換えてください。min_sdk_versiontarget_sdk_versiontotal_sizeは、分かる場合はその値を設定してください。分からない場合は適当な値で大丈夫です。

たとえば、[パッケージ名]com.example.app[アプリ名]Example App[バージョンコード]12345[バージョン番号]1.0.0の場合は、次のようになります。

manifest.json
1
{
2
"xapk_version": 1,
3
"package_name": "com.example.app",
4
"name": "Example App",
5
"version_code": "12345",
6
"version_name": "1.0.0",
7
"min_sdk_version": "18",
8
"target_sdk_version": "27",
9
"total_size": 158572944,
10
"expansions": [
11
{
12
"file": "Android/obb/com.example.app/main.12345.com.example.app.obb",
13
"install_location": "EXTERNAL_STORAGE",
14
"install_path": "Android/obb/com.example.app/main.12345.com.example.app.obb"
15
}
16
]
17
}

OBBファイルが複数個ある場合は、expansionsの中に複数のオブジェクトを記述します。

manifest.json
1
{
2
"xapk_version": 1,
3
"package_name": "com.example.app",
4
"name": "Example App",
5
"version_code": "12345",
6
"version_name": "1.0.0",
7
"min_sdk_version": "18",
8
"target_sdk_version": "27",
9
"total_size": 158572944,
10
"expansions": [
11
{
12
"file": "Android/obb/com.example.app/main.12345.com.example.app.obb",
13
"install_location": "EXTERNAL_STORAGE",
14
"install_path": "Android/obb/com.example.app/main.12345.com.example.app.obb"
15
},
16
{
17
"file": "Android/obb/com.example.app/patch.12345.com.example.app.obb",
18
"install_location": "EXTERNAL_STORAGE",
19
"install_path": "Android/obb/com.example.app/patch.12345.com.example.app.obb"
20
}
21
]
22
}

manifest.jsonに必要な内容を入力したら、保存します。

ZIP化

ここまでできたら、xapkフォルダーの中身をZIP圧縮します。xapkフォルダー自体を圧縮するわけではありません。xapkフォルダーを開き、中身をすべて選択した状態でZIP圧縮します。

ZIPファイルの名前は、[パッケージ名].xapkという形式にしてください。たとえば、com.example.app.xapkのようにします。

これで、XAPKファイルの完成です。任意のXAPKインストーラーでアプリをインストールできるようになります。

まとめ

今回はXAPKファイルの作り方について説明しました。XAPKファイルを作成するためにビルドは不要で、必要なファイルを揃えてZIP圧縮するだけで完成します。

おまけ

自動でXAPKファイルを作成するツールもありましたが、Pythonのライブラリーのバージョン関連のエラーで動きませんでした。

参考

Twitterのアイコン LINEのアイコン Threadsのアイコン Misskeyのアイコン Misskeyのアイコン
著者のアイコン画像