一、安装配置
该工具是基于XCUITesting框架开发的app稳定性测试工具,因为用的swift语言编写所以命名为swiftmonkey。SwiftMonkey 把 XCTesting 的私有 API 拿出来用了,直接通过 XCEventGenerator 来模拟事件。
下载地址:https://github.com/zalando/SwiftMonkey(这里是直接下载的源码)
下载好解压后放在一个合适的环境使用Xcode直接打开即可
双击.xcodeproj文件
1、配置个人信息
打开后第一步,先配置账户,入口在下图的位置
点击Add an Account会弹出一个弹窗
点击+号添加账号(这里输入你的apple id即可),注册个人开发者是免费的。
配置好了之后就可以在上面选择用户
到这一步个人信息就配置好了
二、运行
使用步骤:简单配置好xcode的环境之后需要对改框架做一些限制,只在我们需要测试app上运行,需要改一下几处地方,将这些地方的包名全部改成我们需要测试的包名
第一处:
第二处:
修改完了之后需要在界面的左上方选定要运行的机型,上部分是真机(线连的都会出现在这个列表,但需要手机信任该xcode),下部分是该Xcode所拥有的模拟器。
然后点击product>test即可开始运行
三、跨坑
1、test时提示“This iPhone 7 (Model 1660, 1778, 1779, 1780) is running iOS 12.3.1 (16F203), which may not be supported by this version of Xcode.”
解决:Xcode>显示包内容>contents>developer>platforms>iPhoneOS.platform>DeviceSupport-加上需要调试的iOS版本即可【iOS支持版本下载地址:https://github.com/iGhibli/iOS-DeviceSupport/blob/master/DeviceSupport/12.3.zip】
2、在更换个人开发者账号后提示“***不是唯一标识符,请更换后重试”
解决:到相应的target下搜索bundle,更改中间的数字
3、Carthage和cocoapod都是管理第三方库的工具
四、还有在预研fastmonkey时碰到的坑
Xcode中有oc、swift混编的才要添加桥接文件路径,没有混编的需要删除路径
问题:缺少swift组件解决方法,编辑Carfile文件,在后面指定版本号后更新
更新命令:carthage update
update时有个组件报错,报错内容:这通常表明项目本身无法编译,错误代码65
解决1:在cartfile中重定向该组件的指向版本然后重新编译
解决2:错误代码65时查看log文件,命令:tail 路径/路径/路径,更新到xcode11。在偏好设置-locations-命令行工具指向xcode11,重新Carthage update。
问题:无法构建Objective-C模块“ libxml2”
解决:桥接文件创建好后,还需要在target(objective-c bridging header)中配置文件路径,然后清缓存【删除/Users/Rinpe/Library/Developer/Xcode/DerivedData下对应的文件夹即可.】
1、Xcode-target-build phases-link binary with libraries-这个下显示的是该target中拥有的框架
2、和carfile同级的文件中在Carthage update时会生成一个Carthage文件夹,该文件下有build和checkouts文件夹,这两个文件夹的关系是:Carthage会把checkouts中的组件编译成二进制的框架文件放在build文件夹中,以.framework结尾的文件都是可以用的
所以直接去看看有没有swifter这个组件
手动添加缺少的框架到targets的方法,直接拖到Xcode-target-build phases-link binary with libraries中即可
问题:Module compiled with Swift 5.1.3 cannot be imported by the Swift 4.2.1 compiler
解决:去swift官网,下载相应版本的swift包(点击下载就是一个.pkg文件)。装好之后重启xcode,然后有两种方式切换。第一种:xcode>toolchains;第二种:xcode>偏好设置>components>toolchains
问题:error: Swift does not support the SDK 'iPhoneSimulator12.1.sdk'
解决:到/Applications/Xcode10.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk路径下删除iPhoneSimulator12.1.sdk文件夹
问题:UIKit/UIKiu.h file not found
解决:到相应的targets的build phases中添加该框架
问题:***不是唯一标识符,请更换后重试
解决:到相应的target下搜索bundle,更改中间的数字