我经常发现我需要在我的iPhone上构建一个可以指向我的演示服务器的“演示就绪”版本。我还想要一个构建,这是我正在开发的最新和最好的调试构建,指向我的开发服务器。有没有人找到一个非常简单的方法让我安装两个可能是相同代码但指向不同服务器的应用程序?或者也许我会有一个应用程序,它是最新版本背后的几个版本?我最好使用相同的XCode项目来构建和安装到iPhone上。
答案 0 :(得分:9)
您可以为每个使用不同info.plist文件的特殊构建配置添加。所以,也许对于你的演示,你有一个名为MyApp-Info-DEMO.plist的info.plist和发布的MyApp-Info.plist。
然后你可以将你的服务器变量添加为info.plist变量,并在应用程序启动时查找它。或者甚至只是在新配置中创建一个DEFINE语句,类似于演示的SERVER = demo.myserver.com和实时的SERVER = production.myserver.com。
最重要的部分是更改新info.plist中的CFBundleIdentifier。因此,在您的演示中,您可以将其命名为com.mycompany.myapp.DEMO,真正的可能就是com.mycompany.myapp。
这将允许两个版本同时出现在手机上(不同的CFBundleIdentifiers)。请记住,如果您使用应用内购买或服务器推送通知,如果没有针对您的真实应用标识符和演示应用标识符的单独的特定配置文件,您将无法执行此操作。
答案 1 :(得分:2)
您可以使用2个不同的info.plists和2个不同的预处理器定义创建2个不同的目标(在2个目标中的每个目标的构建设置中)。然后预处理器上的ifdef定义选择编译器为每个目标使用的服务器常量。
然后在两个不同的目标设置中使产品名称和包ID不同(这样设备或模拟器都不会混淆两个应用程序包)。
答案 2 :(得分:1)
使用当前版本的Xcode,您可以通过更改应用程序的Info.plist文件以使用不同的包标识符(并且还可能在构建设置中更改应用程序的产品名称)来实现此目的。
Xcode的即将推出的版本,从我在预发布文档中读到的,有一个功能,可以简化你想要做的很多。但是,由于预发布软件受NDA保护,我无法向您提供任何详细信息。