iOS开发专题iOS之性能优化

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

2018-02-09  本文已影响147人  wg689

1) 没有tests 文件夹

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


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) 单元测试的真机证书配置的正确姿势

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


单元测试工程,和主工程配置一样
image.png

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

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

3) 开启单元测试

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

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

image.png
步骤2,按照步骤点击
image.png
上一篇 下一篇

猜你喜欢

热点阅读