多个目标使用相同的Bundle ID,是否可以设置Urban Airship?

4
我们正在推出一个国际项目,涉及复杂的服务器逻辑和两个移动客户端(iOS和Android)。对于iOS,我们计划在同一个Xcode项目中为每个国家设立不同的目标,以便能够定制每个国家的应用程序,同时优化代码重用。
对于服务器,我们决定为所有国家提供一个实例,以允许用户在国家之间切换。然而,服务器上的一个应用实例只能容纳一个Urban Airship实例。
那么,假设Urban Airship应用密钥必须具有唯一的包ID,我们可以为在各个国家推出的各种目标使用相同的包ID吗?
如果不行,你会如何解决这个问题?

你最好向Urban Airship支持团队咨询此事。 - krossovochkin
为了能够定制每个国家的应用程序并优化代码重用,iOS计划在同一Xcode项目中拥有不同的目标。您要定制什么样的内容?除了文本、布局和资源之外还有其他内容吗?如果没有其他内容,那么您可能只需要一个目标。 - Campbell_Souped
嗨@Campbell_Souped,好问题。我们有一个大型公司的法律要求,规定某些法律文件不得包含在部署到某些国家的应用程序中。 - Mundi
据我所知,如果文本被本地化,它将不包含在捆绑包中。这应该相对容易测试。 - Campbell_Souped
@Campbell_Souped 对不起,我认为那是不正确的。所有本地化都包含在捆绑包中,并根据设备上设置的语言环境进行选择。 - Mundi
2个回答

4
在项目内部,每个目标使用相同的包 ID 是完全可行的。但是,在应用商店或在实际设备上安装不同目标的构建时,这种做法是行不通的。这是因为 iTunesConnect 和 iOS 将包 ID 视为应用程序的唯一标识符。如果您使用相同的包 ID,每个目标的构建实际上将覆盖先前目标的构建,当上传到 iTunesConnect 或在实际设备上安装时会出现问题。
这意味着:
每个目标都需要有不同的包 ID。如果 Urban Airship 每个实例只允许一个包 ID,则无法在不拥有多个 Urban Airship 实例的情况下解决此问题。我建议您创建多个实例并向 Urban Airship 提交请求,以支持单个实例中的多个应用程序。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接