我正在开发一个分为两部分的Objective-C SDK,一个包含视图的捆绑包和一个静态编译的库。该SDK与具有两个部署(开发和生产)的REST API通信。
注意:当我说“指向开发”时,是指SDK正在与开发REST API通信,而当我说“指向产品”时,则是指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)将应用程序推送给团队成员,并使测试应用程序始终指向开发,而演示应用程序始终指向生产(尽管在开发时指向开发)。
当我将项目存档并提交到iTune Connect时,该项目在Release中进行编译,因此DEBUG
未设置并且SDK指向prod。我创建了一个自定义构建目标和构建脚本,用于在Debug中编译SDK(因此DEBUG
应进行设置)。然后,像Target Dependancy
在测试应用程序中一样添加此构建目标Build Phases
,并将由构建目标生成的框架添加到测试应用程序中Linked Frameworks and Libraries
。
这^没有用。似乎SDK项目正在编译DEBUG
且未设置,即使我引用的是自定义构建脚本生成的框架,并且此脚本使用-configuration Debug
:(
任何和所有帮助表示感谢,并在此先感谢。
解决方案是进入Edit Scheme
测试应用程序的菜单,然后将项目设置为Debug
而不是Release
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句