国际化 iOS 应用程序 - 不同版本的通用代码库

International iOS App - common code base with different versions

我们有一个 iOS 应用程序,它在美国拥有数百万用户,需要国际化并在 11 个不同的国家/地区(许多使用不同的语言)提供。已经制定出适用于特定国家的隐藏功能的所有技术细节,以及不同的货币等。我​​们还为应用程序实现了一种获取位置的方法(如果它打开,否则请求用户提供)和在此基础上,为 country/language.

进行自我配置

我们希望通过一个代码库完成这项工作。假设这是当前版本 1。假设我们从添加 5 个国家开始——即美国,加上韩国、日本、法国、加拿大和墨西哥。假设现在是版本 2。

然后我们会将此(具有一个捆绑包 ID 的单个应用)部署到应用商店,并将此版本 (2) 的可用性设置为美国、韩国、日本、法国、加拿大和墨西哥的应用商店。

假设我们在下个月添加了一个新功能并成为版本 3。我们针对美国对此进行了全面测试,但我们的 QA 团队没有时间针对其他 5 个国家/地区进行测试。因此,我们只想为美国发布此 V3,并为美国设置新版本的可用性。

据我了解,应用商店设置的工作方式,因为我们有相同的 bundle id,我们不能将新的 V3 仅限于美国。它将自动发布到韩国、日本、法国、加拿大和墨西哥的应用商店。

有办法解决这个问题吗?

(我知道的另一种方法是使用相同的代码库,但是为每个国家/地区构建具有单独捆绑 ID 的单独目标,我宁愿让所有内容都基于一个目标)

iTunes 不支持仅在特定地区启用新版本可用性,同时让旧版本在其他地区可用。他们这样做也是有充分理由的。

假设您支持英语和日语。你的意思是,由于你只能测试新版本的英文本地化版本,你决定在除日本以外的所有地区推出它。

但是,如果一位在美国工作并使用英语作为设备语言的用户在假期回到日本度假几天怎么办?他的儿子用这家伙的 phone 玩游戏,将设备语言更改为日语。现在,当您的 App 被执行时,最终用户是否会接触到未经测试的 App 版本? 即使您没有根据 OS 的设置进行本地化,并且在您的应用程序的设置面板中有一个单独的选项,用户也总是可以切换到可能未经测试的版本,从而导致糟糕的用户体验。

所以我认为你唯一的选择是:- 1. 在发布前测试所有语言的应用程序。 2. 如果 App 中的功能因地区而异,将相似的地区分组并创建 3-4 个不同的 App(XYZApp-US、XYZApp-Europe 等)。仅当您的特征在不同地区差异很大时,此选项才有意义(根据语言,很多特征需要 hidden/modified)。这种方法不仅有助于根据 QA 覆盖范围来安排发布时间,而且有助于隔离代码,因为只有相关的应用程序才会具有相关的功能代码。

选项 1 虽然看起来更简单。