ios - Xcode 构建环境

标签 ios xcode environment-variables

目前正在开发一个连接到多个不同网络服务的 iPhone 应用程序。这些网络服务有几个不同的地址,具体取决于我们连接到的环境:

我想知道定义这些 url 并根据我们要构建的环境在它们之间切换的最佳约定是什么。这是我可以在我的build设置中定义的东西,还是我可以使用定义来设置各种构建来指定环境?

注意:不确定这是否重要,但目前我们使用的是纯 Objective-c,尽管我们可能会在项目生命周期后期的某个时候集成 Swift。

最佳答案

这对我有用:

#ifdef TARGET_PROD
    #define BASE_URL @" http://www.example.com/api/"
#endif
#ifdef TARGET_VAL
    #define BASE_URL @"http://staging.example.com/api/"
#endif

#ifdef TARGET_TEST
    #define BASE_URL @"http://staging.example.com/api/testing/"
#endif

例如,将其放入 Commons.h 或公共(public)项目文件中。

对于任何目标,请转到build设置并设置处理器宏,在“调试”和“发布”中添加 TARGET_PROD、用于目标测试的 TARGET_TEST 和用于目标暂存的 TARGET_VAL。 当您发出请求时,只需在您的 BASE_URL 中附加 SERVICENAME,如下所示:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@,%@", BASE_URL,yourService]]];

关于ios - Xcode 构建环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048951/

相关文章:

ios - 按字母顺序对 UITableView 内容(地址簿)进行排序

java - Eclipse RCP : InternalPlatform. getDefault().getUserLocation() 不返回 C:\Users\用户名\AppData\Roaming

java - 如何将 `java` 添加到 Vista 上的命令路径?

ios - 如何将 UIActivityIndi​​catorView 置于 UICollectionViewCell 的中心?

iphone - CMSampleBufferRef 上的 CFRelease - 为什么我需要调用它?

xcode - 有没有办法在 Swift 上隐藏 UIDatePicker?

ios - Xcode 工作区 - 如何正确保存新版本/备份?

ios - 升级到 Xcode 8 后 UIButton 的圆角半径不起作用

windows - Powershell 无法使用 $ cd 到路径名

iOS:JSON 上传进度