我有一个 iOS 应用程序项目,由 Swift 3.0 编写
该工作区包含我们团队构建的动态框架,用于在整个项目中共享可重用的代码和资源。
We use Activate Compilation Conditions
用于切换生产服务器 url 和测试服务器 url,如下所示:
#if DEBUG
let url = "http://my-beta-server-url"
#else
let url = "http://my-production-server-url"
这样,当应用程序存档时,url 将切换到生产服务器 url。
并且在调试时,我们可以使用beta服务器进行开发。
我们有一个单元测试目标来测试这个框架。
最近我们想添加一个简单的完整性测试来检查发布模式下的 url 是否正确。
如果我们想测试这种行为,我们必须设置Build configuartion
标记为Release
为测试目标。
当设置为Release
,Xcode编译报错:
Module XXXXFramework was not compiled for testing
为了解决这个问题,我们只需简单设置Enable Testability
for Release
to Yes
对于我们的框架。
然而,问题是苹果不建议设置Enable Testability
根据此将发布模式设置为“是”note https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326
可测试性:编写 Swift 2.0 框架和应用程序的测试
无需公开内部例程。使用@testable导入
测试源代码中的 {ModuleName} 以将所有内容设为公共和内部
可用的例程。应用程序或框架目标需要编译
将“启用可测试性”构建设置设置为“是”。启用
可测试性构建设置应仅在调试中使用
配置,因为它禁止依赖于不的优化
从应用程序或框架导出内部符号。 (17732115)
有人对解决我的问题有建议,或者有任何替代解决方案来实现我的目标吗?
用于使用发布模式测试框架