我正在开发一个Objective-C SDK,它分为两部分,一个包含视图的包和一个静态编译的库。此SDK与REST API进行通信,该API具有两个部署,即开发和生产。
注意:当我说"指向开发"我的意思是SDK正在与开发REST API进行通信,当我说"指向prod"我的意思是SDK正在与生产REST API进行通信。
我目前有一个名为NetworkConstants.h
的常量文件,其中包含:
#ifdef DEBUG
// development REST API
#define API_BASE_URL @"http://xxx.xxx.xxx.xxx:port"
#else
// production REST API
#define API_BASE_URL @"http://api.company.com"
#endif
#define ROUTE_A API_BASE_URL @"/route_a"
#define ROUTE_B API_BASE_URL @"/route_b"
...
然后我根据需要使用ROUTE_...
。
此SDK目前位于包含SDK项目的工作区,一个非常简单的测试应用程序,以及一家同意测试我们产品的公司开发的演示应用程序(我说是演示应用程序,因为我们用它来演示产品。)
我希望能够将应用程序推送到团队成员(通过iTune Connect)并让测试应用程序始终指向开发和演示应用程序指向prod(虽然指向我开发时开发)。
当我将项目存档并提交给iTune Connect时,项目将在Release中编译,因此DEBUG
未设置,SDK指向prod。我创建了一个自定义构建目标和构建脚本,用于在Debug中编译SDK(因此应设置DEBUG
)。然后,我在测试应用的Target Dependancy
中将此构建目标添加为Build Phases
,并将构建目标生成的框架添加到测试应用Linked Frameworks and Libraries
。
这^不起作用。即使我引用自定义构建脚本生成的框架并且此脚本使用DEBUG
构建,但似乎SDK项目正在编译时未设置-configuration Debug
:(
任何和所有帮助都表示赞赏,并提前感谢。
答案 0 :(得分:0)
解决方案是进入测试应用的Edit Scheme
菜单,并将项目设置为Debug
而不是Release
。