Xcode9 单元测试 实践和踩坑记录

1) 没有tests 文件夹

如果出现问题(下图所示) 找不到.plsit 文件,需要删除单元测试的target 重新建造一个单元测试


Xcode9 单元测试 实践和踩坑记录_第1张图片
image.png

2) 单元测试多个target ,很容易出现provisioning 错误

真机运行提示A valid provisioning profile for this executable was not found错误

A valid provisioning profile for this executable was not found

或提示

The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.(0xE8008016).

如果项目在xcode7上真机运行无问题,那么这一切跟你的profile文件和签名文件无关,全部状态都是正确的。各位不用去重置签名文件、profile文件或者各种权限,因为这种情况下,就算重置也是没用的。

问题原因:

Xcode9 在切换Team的时候,并没有把project.pbxproj工程文件里的TeamID进行切换到新的TeamID。

解决办法

找到变换前后两个账号的TeamID,这个可以到ituneconnect里面找,或者直接到project.pbxproj查找,出问题的此刻,已经存在两个不同的teamID。

打开项目里的project.pbxproj工程文件中,把签名TeamID全部手动替换成目标TeamID。DEVELOPMENT_TEAM = XXXX ; XXXX填写新的TeamID.如下图

project.pbxproj工程文件根据Target数量的不同,可能有好几处TeamID,全部替换成目标TeamID再次运行即可。

如果上述方案还不行,可能有缓存,删除app,删除derived data 即可解决

2.1) 单元测试的真机证书配置的正确姿势

主工程配置,使用自己的账号

Xcode9 单元测试 实践和踩坑记录_第2张图片

单元测试工程,和主工程配置一样
Xcode9 单元测试 实践和踩坑记录_第3张图片
image.png

2.3) 知道公司证书账号密码的解决方案

如果知道 公司的账号和密码 主工程和单元测试都填写自己和公司的账号就可以搞定

3) 开启单元测试

第一个三角形,点击run 即可

Xcode9 单元测试 实践和踩坑记录_第4张图片
image.png

4) podfile中一定要增加单元测试的target ,否则找不到文件

platform :ios, '7.0'
target 'UnitTestDemoTests' do
pod 'AFNetworking', '~> 2.5.0'
pod 'STAlertView', '~> 1.0.0'
end
target 'UnitTestDemoTestsTests' do
pod 'AFNetworking', '~> 2.5.0'
pod 'STAlertView', '~> 1.0.0'
end

5) 查看代码覆盖率

步骤1

Xcode9 单元测试 实践和踩坑记录_第5张图片
image.png

步骤2,按照步骤点击
Xcode9 单元测试 实践和踩坑记录_第6张图片
image.png


作者开发经验总结的文章推荐,持续更新学习心得笔记

五星推荐 Runtime 10种用法(没有比这更全的了)
五星推荐 成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)
五星推荐 iOS逆向Reveal查看任意app 的界面
五星推荐手把手教你使用python自动打包上传应用分发
JSPatch (实时修复App Store bug)学习(一)
iOS 高级工程师是怎么进阶的(补充版20+点)
扩大按钮(UIButton)点击范围(随意方向扩展哦)
最简单的免证书真机调试(原创)
通过分析微信app,学学如何使用@2x,@3x图片
TableView之MVVM与MVC之对比
使用MVVM减少控制器代码实战(减少56%)
ReactiveCocoa添加cocoapods 配置图文教程及坑总结

你可能感兴趣的:(Xcode9 单元测试 实践和踩坑记录)