我在我的项目中使用testflightapp.com SDK来跟踪在testflightapp.com上进行的beta测试期间的崩溃.我的Xcode项目中有2个目标,分别是"ad-hoc"和"app store".
要启动testflight SDK,我需要在AppDelegate.m中放下一行代码,如:
[TestFlight takeOff:@"67bebb8d8e5396a...A4LjQwNjQ4NA"];
Run Code Online (Sandbox Code Playgroud)
现在,我希望编译器在为目标"app store"编译时排除这行代码,因为在它公开时触发testflight SDK是没有意义的.
我期待像#ifdef这样的东西,但我无法通过搜索论坛得到线索.
这是一篇旧文章,但想分享另一种实现这一目标的方法。
解决方案就像创建几个具有相同类/函数/变量但添加到不同目标的文件(取决于您有多少目标)。
就像我一样,我有主要目标和 UITest 目标,所以我有以下两个文件
BuildConfiguration_main.swift
添加到主要目标。
struct BuildConfiguration {
static let isMainTarget = true
static let isUITestTarget = false
}
Run Code Online (Sandbox Code Playgroud)
BuildConfiguration_UITest.swift
添加到 UITest 目标。
struct BuildConfiguration {
static let isMainTarget = false
static let isUITestTarget = true
}
Run Code Online (Sandbox Code Playgroud)
然后在您的代码中,如果您在两个目标之间共享一些代码,则可以使用BuildConfiguration.isMainTarget
或BuildConfiguration.isUITestTarget
来告诉目标代码在哪里运行。
归档时间: |
|
查看次数: |
3929 次 |
最近记录: |