如何在特定应用程序中重新定义框架常量?
How to redefine framework constant in specific app?
我正在开发一个 Objective-C SDK,它分为两部分,一个包含视图的包和一个静态编译的库。此 SDK 与 REST API 通信,后者有两个部署、开发和生产。
注意: 当我说 "pointing to develop" 我的意思是 SDK 正在与开发 REST API 通信,当我说 "pointing to 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),并让测试应用程序始终指向开发,演示应用程序始终指向生产(尽管我在开发时指向开发).
问题
当我将项目归档并提交到 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
。
我正在开发一个 Objective-C SDK,它分为两部分,一个包含视图的包和一个静态编译的库。此 SDK 与 REST API 通信,后者有两个部署、开发和生产。
注意: 当我说 "pointing to develop" 我的意思是 SDK 正在与开发 REST API 通信,当我说 "pointing to 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),并让测试应用程序始终指向开发,演示应用程序始终指向生产(尽管我在开发时指向开发).
问题
当我将项目归档并提交到 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
。