是否可以根据国家/地区提供多个 APK 支持?
Posted
技术标签:
【中文标题】是否可以根据国家/地区提供多个 APK 支持?【英文标题】:Is it possible to have multiple APK support based on country? 【发布时间】:2011-12-03 22:24:30 【问题描述】:我有一个包含免费和定价产品的应用程序,我需要为我的应用程序创建两个 APK,并在支持它的国家/地区显示支持应用内结算的应用程序,并显示同一应用程序的另一个不支持的 APK' t 在不支持的国家/地区支持 In-App Billing(它只有免费产品)。
我可以使用 android Market 多 APK 支持功能来实现这一点吗?如果没有,除了创建两个单独的应用程序之外,还有其他可行的建议吗?
【问题讨论】:
【参考方案1】:多 APK 功能 AFAIK 至少在当前版本中不支持过滤国家/地区。查看Supported filters 和Rules for multiple APKs 了解更多详情。
如果你还是要构建两个 apk。将它们发布为两个独立的应用程序(您可以在开发者控制台中为每个应用程序设置不同的可用国家/地区)要简单得多且易于维护,而不是使用多 APK 功能(甚至说它在未来版本中支持过滤国家/地区)。人们用来避免重复代码的正常方法是使用 Android 库项目。
如果您只想为所有情况构建和发布单个 apk。一个可行的解决方案是在项目资源中维护一个受支持的国家/地区列表,并添加一些条件分支以根据国家/地区列表启用/禁用应用内计费代码,并在运行时通过一些 UI 警告确认用户,例如:
if (isInSupportedCountryList())
setInAppBillingOn();
else
setInAppBillingOff();
如您所见,每次新的国家/地区支持或被 Google 删除时,都需要(甚至没有必要)更新/重新发布。
【讨论】:
很好的解释!但是,如果我们只是按照要求维护每次更新的国家/地区列表,是否有可能实现这一点?例如,如果在版本 x 中,我们为一个国家/地区上传一个 apk,例如 A(仅),然后为另一个国家/地区 B(仅)上传 x + 1 版本。这样做会不会在 A 国发布应用? 我认为基于国家/地区的条件条件行不通,因为即使您在代码中禁用了应用内计费支持,您也无法将应用发布到没有应用内结算支持的国家/地区。 问题是,如果我想添加一个新字符串,我必须将该字符串翻译成我已经翻译了我的应用程序的所有语言,或者我不翻译字符串并且有一个应用程序的一半翻译... isInSupportedCountryList() 函数是什么样的?如何确定用户所在的国家/地区?【参考方案2】:我认为最简单的方法是只上传两个单独的应用程序,然后使用“发布选项”来选择您希望拥有每个版本的国家/地区。然后,您可以按“每个国家/地区”添加和删除任一应用程序。
【讨论】:
【参考方案3】:您可以通过本地化您的应用程序来实现这一点。检查this。
【讨论】:
恐怕你没有得到我的要求。这与本地化无关。我需要的是在不同国家为同一个应用程序显示不同的 APK以上是关于是否可以根据国家/地区提供多个 APK 支持?的主要内容,如果未能解决你的问题,请参考以下文章