နားလည်ထားရမယ့် အချက်
APK, Android application package အတိုကောက် ဆိုတာ Android က install အမှန်တကယ်လုပ်တဲ့ format ဖြစ်ပါတယ် - compiled code, resources, manifest ပါဝင်တဲ့ file တစ်ခုတည်းပါ။ context အချို့မှာ device ပေါ် တိုက်ရိုက် install လုပ်နိုင်ပေမယ့် ဒါက Google Play upload အတွက် ပိုနှစ်သက်ဖွယ် artifact ဖြစ်တယ်လို့ မဆိုလိုပါဘူး။
AAB, Android App Bundle ကတော့ install လုပ်ဖို့ format မဟုတ်ဘဲ publishing format တစ်ခုပါ။ support လုပ်တဲ့ store ဆီ upload လုပ်ပြီး store ကိုယ်တိုင်ရဲ့ tooling က screen density, processor, language အလိုက် device တစ်ခုချင်းစီ တကယ်လိုအပ်တဲ့ APK အသေးများအဖြစ် ပြောင်းပေးပါတယ်။
- APK = install လုပ်နိုင်တဲ့ application package တစ်ခုပါ။
- AAB = store workflow တစ်ခုက install လုပ်နိုင်တဲ့ package အဖြစ် နောက်ကွယ်မှာ ပြောင်းပေးတဲ့ publishing bundle တစ်ခုပါ။
iOS ကတော့ လုံးဝကွဲပြားတဲ့ model တစ်ခုကို သုံးပါတယ် - Apple ကိုယ်တိုင်ရဲ့ tooling ကနေ build ပြီး sign လုပ်ထားတဲ့ signed build archive ကို distribution အတွက် တင်သွင်းပါတယ်။ APK sideload လုပ်သလို ယေဘူယျအသုံးပြုနိုင်တဲ့ direct-install နည်းလမ်းမျိုး ပုံမှန်အသုံးပြုမှုမှာ မရှိပါဘူး။
Apple ရဲ့ လက်ရှိစည်းမျဉ်းကို စစ်ဆေးပါ
iOS ပေါ်မှာ ဘာလုပ်လို့ရလဲ ဆိုတာက လက်ရှိ platform rule, developer program terms, device setting တွေအပေါ် မူတည်ပြီး အချိန်နဲ့အမျှ ပြောင်းလဲနေပါတယ် - claim တစ်ခုခုကို အားကိုးခင် Apple ရဲ့ လက်ရှိ documentation နဲ့ စစ်ဆေးပါ။
- APK
- Android application package - Android က install အမှန်တကယ်လုပ်တဲ့ file format ဖြစ်ပြီး compiled code, resources, manifest ပါဝင်ပါတယ်။
- AAB
- Android App Bundle - supporting store ဆီ upload လုပ်တဲ့ publishing format ဖြစ်ပြီး store က device-specific installable APK များအဖြစ် ပြောင်းပေးပါတယ်။
APK VS AAB BUILD OUTPUTS
------------------------
APK VS AAB BUILD OUTPUTS
-------------------------
Android source --> Compiled build
|
+-----------+-----------+
v v
APK AAB
(installable) (publishing bundle)
| |
v v
Install directly Store generates
on a device device-specific APKs
iOS (separate model)
Signed Build Archive --> Submitted via App Storeလက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
release တစ်ခု build လုပ်ဖို့ ထိုင်တဲ့အခါ ဦးဆုံးမေးရမယ့်မေးခွန်းက ကိုယ်ကြိုက်တဲ့ format ဘာလဲ မဟုတ်ဘဲ ဘယ်ကိုသွားမလဲဆိုတာပါ။
| ဘယ်ကိုပို့မလဲ | ပုံမှန်သုံးလေ့ရှိတဲ့ format |
|---|---|
| Google Play release | AAB ကို store console ကနေ upload လုပ်ပါ - တိကျတဲ့ command ကို build tool ရဲ့ release documentation မှာ စစ်ဆေးပါ။ |
| Direct tester/lab install | APK - store မပါဘဲ တိုက်ရိုက် install လုပ်နိုင်တဲ့ file တစ်ခုတည်းပါ။ |
| Ad-hoc test distribution | ပုံမှန်အားဖြင့် install လုပ်နိုင်တဲ့ APK ဖြစ်ပေမယ့် team အချို့က store ရဲ့ internal testing track ကနေ ရွှေ့ပို့ကြပါတယ်။ |
| iOS distribution | signed archive တစ်ခုတည်းအတွင်း build-and-sign path ကို official Apple channel တွေကနေ တင်သွင်းပါတယ်။ |
iOS sideloading ရနိုင်တယ်လို့ မယူဆပါနဲ့
App Store အပြင်ဘက်က install လုပ်တာနဲ့ ပတ်သက်တဲ့ platform rule တွေဟာ concept ကိုယ်တိုင်ထက် ပိုမကြာခဏ ပြောင်းလဲနေတတ်ပါတယ် - option တစ်ခုခု ရနိုင်တယ်လို့ ယူဆမနေဘဲ လက်ရှိ Apple documentation ကို စစ်ဆေးပါ။
အတူတူ စမ်းရေးကြည့်မယ်
function recommendPackageFormat(scenario) {
if (scenario.isGooglePlayUpload) {
return {
format: "AAB",
reason: "Google Play's publishing workflow is built around App Bundles; the store generates device-specific APKs from it."
};
}
if (scenario.isDirectInstallOutsideStore) {
return {
format: "APK",
reason: "A direct install outside a store needs a package that installs on its own, which is what an APK is for."
};
}
if (scenario.isTestDistribution) {
return {
format: "APK",
reason: "Ad-hoc test distribution to a handful of devices commonly uses a directly installable APK."
};
}
return { format: "depends", reason: "Specify the distribution channel to get a recommendation." };
}
const playUpload = { isGooglePlayUpload: true, isDirectInstallOutsideStore: false, isTestDistribution: false };
const sideloadTest = { isGooglePlayUpload: false, isDirectInstallOutsideStore: true, isTestDistribution: false };
console.log("Google Play upload:", recommendPackageFormat(playUpload));
console.log("Direct install:", recommendPackageFormat(sideloadTest));Google Play upload scenario က { format: 'AAB' } ကို reason အတူ ပြန်ပေးပြီး AAB ရဲ့ publishing workflow အကြောင်း ရှင်းပြပါတယ်။ direct-install scenario ကတော့ { format: 'APK' } ကို ပြန်ပေးပြီး store အပြင်ဘက် တိုက်ရိုက် install ဖို့ APK လိုအပ်ကြောင်း ရှင်းပြပါတယ်။၅ မိနစ် စမ်းကြည့်
သင့် app ကြုံနိုင်တဲ့ distribution scenario သုံးခု (store release၊ internal QA build၊ client demo) ကို list လုပ်ပါ။ တစ်ခုချင်းစီအတွက် recommendPackageFormat-စတိုင် function ကို run ပြီး အကြံပြုတဲ့ format က သင်အမှန်တကယ်ရွေးမယ့်အရာနဲ့ ကိုက်ညီမလား စစ်ဆေးပါ။
သတိလေးတစ်ချက်
Google Play အတွက် အမှန်တကယ် release upload မှာ APK ကသာ မှန်ကန်တဲ့ ဒါမှမဟုတ် ပိုကောင်းတဲ့ artifact ဖြစ်တယ်လို့ ယူဆလိုက်တာ။
Apple ရဲ့ လက်ရှိ documentation ကို မစစ်ဆေးဘဲ iOS sideloading ဒါမှမဟုတ် installation method အကြောင်း အတည်ပြုပြောလိုက်တာ။
Android App Bundle overview - developer.android.com — How Mobile Apps Work