#ifdef TESTING #import "DummyBeaconLocationManager.h" #else #import "BeaconLocationManager.h" #endif
然后:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... #ifdef TESTING [[DummyBeaconLocationManager sharedInstance] startRanging]; #else self.beaconLocationManager = [BeaconLocationManager sharedInstance]; [self.beaconLocationManager startRanging]; #endif return YES; }
但问题是我必须将此包含在我的目标成员中,而不是我的测试目标.有没有办法不在我的主目标中包含这些文件,但仅限于测试目标?
编辑:
需要做的是在发布后测试我的应用程序.我想在模拟器上测试它,但是使用信标的app.所以我创建了代表信标的虚拟对象并模拟了位置管理器.当应用程序以TESTING选项启动时,它不会启动测距信标,而是将虚拟对象作为信标.
解决方法
Xcode项目配置(使用Xcode 7.0.1)
要允许条件导入和功能有效进行测试,您需要以下成分:
>测试配置
>测试目标
>测试方案
方案,目标和构建配置的简短说明
>方案指向目标和配置.
>可以使用不同的构建设置配置目标.
>可以添加配置,以分支出目标构建设置.
以下是步骤:
1.复制配置以进行测试
在Project Navigator中选择项目文件后,请按照下列步骤操作:
>选择项目目标
>选择信息
>选择添加配置
>选择复制“调试”配置
>重命名新配置,然后将其拖动到重新排序
2.复制目标进行测试
现在您已拥有测试配置,请添加测试目标.在项目导航器中选择项目文件,请按照下列步骤操作:
>右键单击或按住Option键单击现有目标,然后选择“复制”.
>点击新目标以重命名,然后拖动它以重新排序目标.
3.管理计划
现在您已拥有测试目标和配置,您可以添加指向新目标和配置的方案.
>点击方案(停止按钮旁边),然后选择管理方案…
>在Schemes管理器弹出窗口中,如果您已选择自动创建方案,则已列出新方案.否则,您可以点击弹出窗口添加方案.每个方案都可以共享,如下所示:
>点击新方案重命名,然后拖动它重新排序:
>要编辑新方案,请确保选中该方案,然后点击编辑…
>在编辑面板中,选择测试构建配置
>通过点击“可执行文件”下拉列表,确保该方案指向“测试目标”:
>确保方案指向正确的构建配置,以用于其他操作,例如自动化测试:
4.配置目标的构建设置
现在您已将测试方案设置为指向测试配置,它将与Debug配置完全相同,直到您修改构建设置.请按照以下步骤更改测试配置的构建设置:
>对于大多数构建设置,每个配置都有一个选项.选择要在设置中使用的配置时,请确保选择了主目标:
>预处理器宏位于标题为“Apple LLVM 7.0 – 预处理”的部分下:
>点击一行,选择它,点击回车键编辑并提交更改,使用箭头键向上或向下移动.为所有配置定义所有预处理器宏是一个好习惯,如下所示:
5.向测试目标添加一个类
现在,测试方案指向一种与Debug配置不同的配置.您现在应该可以从方案下拉菜单中选择测试方案,并运行您的测试配置.
>当您创建新文件时,您可以选择位置的第三个面板,底部有选项,用于每个目标:
>在Project Navigator中选择文件时,File Inspector具有Target Membership面板,您可以在其中进行修改:
计划
通常将方案配对以构建配置.一个好的做法是为每个需要不同版本的构建的受众设置方案/配置.以下是一些通常需要单独配置的基本受众群体:
>开发人员> DEBUG
>开发人员>测试
>内部测试>发展
> Beta测试人员/生产>应用商店
子类