【问题标题】:Switching environments iOS切换环境 iOS
【发布时间】:2018-03-29 23:46:42
【问题描述】:
我需要配置我的环境,以便在 TestFlight 上进行内部测试时将应用程序指向开发服务器,并在推送到实际应用商店时指向产品服务器。我有调试和发布变量设置。归档应用程序时,构建配置设置为发布。我想指向开发服务器,直到它通过 iTunes-Connect 推送到 App Store。或者在为测试人员推送到 TestFlight 时将构建配置更改为 Debug 并在推送到应用商店时更改回 RELEASE 是否正常?谢谢。
【问题讨论】:
标签:
ios
xcode
testflight
test-environments
【解决方案1】:
您可以使用方案实现此目的
1) 在Project -> Info -> Configurations 中创建一个新配置,方法是复制 Release
我将它命名为 Dev(Release)
2) 为 Build Settings 中的新配置设置适当的 Provisioning profile(在您的情况下为 adhoc 或分发)和代码签名身份
3) 为您的内部发布创建一个新方案,
4) 将新方案的存档编辑到您的新配置
5) 到目前为止,我们已经处理了您在内部测试/发布时指向开发服务器的用例。为此,我们必须创建一个新的编译器标志(Swift)/预处理器宏(Objective-C)。
Objective-c
Go to Build Settings -> Preprocessor Macros
Add a new macro "DEV_RELEASE=1" under the new configuration
注意:如果它尚未在发布配置下设置,也可以设置 RELEASE=1 标志。
斯威夫特
转到构建设置 - > Swift 编译器 - 自定义标志
在 Active Compilation Conditions 下,将标志 RELEASE 和 DEV_RELEASE 添加到相应的 Release 和 Dev(Release) 配置中。
6) 现在您可以在代码中访问这些宏/编译器标志
#ifdef DEBUG
NSString* serverURL = @"https://dev.com”;
#elif RELEASE
NSString* serverURL = @"https://prod.com”;
#elif DEV_RELEASE
NSString* serverURL = @"https://dev.com”;
#endif
7) 当你想发送一个内部构建(adhoc 或 Testflight)时,只需切换 Scheme 和 Archieve