我有三个带有不同API Key
和一些不同设置的API
用于开发或内部测试构建 - iOS应用商店之外的开发分发
Host
- devapi.project-name.comAPI Key
- development_keyFLEX
[1] - 启用
用于客户端测试构建 - iOS应用商店之外的企业级分发
Host
- stgapi.project-name.comAPI Key
- enterprise_keyFLEX
- 启用
用于生产构建 - 在iOS应用商店中分发
Host
- API.project-name.comAPI key
- app_store_keyFLEX
- 禁用
我可以通过使用DEBUG
来管理两个设置
#if DEBUG
#define API_BASE_URL @"http://devapi.project-name.com/api/v1"
#define API_KEY @"development_key"
#else
#define API_BASE_URL @"http://stgapi.project-name.com/api/v1"
#define API_KEY @"enterprise_key"
#endif
// In AppDelegate.m
#if DEBUG
[[FLEXManager sharedManager] showExplorer];
#endif
但首要问题是企业分发(用于客户测试)和 iOS 应用商店分发(生产)版本,每次需要更改代码才能进行企业或应用商店的分发。
对于企业分发:
#if DEBUG //debug setting #else //enterprise setting #define API_BASE_URL @"http://stgapi.project-name.com/api/v1" #define API_KEY @"enterprise_key" #endif
用于App Store发布
#if DEBUG
//debug setting
#else
//app store setting
#define API_BASE_URL @"http://api.project-name.com/api/v1"
#define API_KEY @"app_store_key"
#endif
我正在寻找类似这样的东西
#ifdef DEVELOPMENT
#define API_BASE_URL @"http://devapi.project-name.com/api/v1"
#define API_KEY @"development_key"
#elif ENTERPRISE
#define API_BASE_URL @"http://stgapi.project-name.com/api/v1"
#define API_KEY @"enterprise_key"
#elif APP_STORE
#define API_BASE_URL @"http://api.project-name.com/api/v1"
#define API_KEY @"app_store_key"
#endif
还是其他什么?
第二个问题
是否有一种方法可以创建三个不同名称的构建,而不需要创建不同的目标?
ProductName
- 用于App StoreProductName-Dev
- 用于内部开发构建ProductName-Stg
- 用于客户测试(企业)构建
我刚刚创建了演示项目和完整的可视化指南,基于 iamnichols 给出的解决方案