iOS_UI自动化03篇:iOS真机环境调试.md

.ipa和.app

一开始我是打算先在模拟器中先跑下测试包,但是由于以下原因,想在iOS模拟器中运行应用,需使用.app文件

  • 不管是从Apple Store或iTunes上下载的应用,还是在Xcode中针对真机设备编译生成的.ipa文件,都是面向于ARM处理器的iOS设备,只能在真机设备中进行安装;
  • 而在Mac OSX系统中运行的iOS模拟器,运行环境是基于Intel处理器的;
  • 因此,若是针对真机设备编译生成的.ipa文件,是无法在iOS模拟器中正常运行的,毕竟处理器架构都不一样;
  • 要想在iOS模拟器中运行应用,则必须在Xcode中编译时选择模拟器类型;编译生成的文件后缀为.app。

然而我们jenkins打包只能生成.ipa文件,而我也没有git拉源码的权限,我就想着研究研究jenkins的执行shell脚本,这一看发现是ruby写的,本来想花点时间研究一下jenkins,最好是加句脚本可以编译生成.app文件,但是这个配置是公用的,想要修改脚本得申请一个自己的分支,更何况,我们当前的配置是安装了fastlane(fastlane就是专门将iOS项目打包成ipa文件的工具,且fastlane只支持ruby,which i don't know much about),再加上使用真机进行测试才是宗旨,就不了了之了。

不过后续在找bundleID的时候将.ipa文件改了后缀名之后解压了一下,发现解压之后就是.app文件!然后再一查发现:

  1. .app,iOS编译以后生成的原始文件,实际是一个文件夹,里面包含各种资源文件(图片,第三方bundle,plist等文件),程序的可执行文件(二进制格式)以及对所有文件的签名记录(_CodeSignature);不能上传AppStore

  2. .dSYM,生成.app时的附属产物。本质是一个文件夹,其中只有一个最大的文件,作用是对iOS程序闪退后产生的log文件进行符号化(desymbolicate);通俗的说,就是把无意义的内存地址变成可读的程序中的类和方法以及代码行数;不能上传AppStore

  3. .ipa,实际上就是把.app放到Payload文件夹后,对Payload就行了zip操作,最后改了下扩展名;可通过Application Loader上传AppStore

  4. .xcarchive,实际上也是一个文件夹,包含.ipa和.dSYM文件;可通过Xcode上传AppStore

appium配置Desired Capabilities

点击start server进入appium,点击右上角搜索icon(Start Inspector Session)进入Desired Capabilities配置页。真机配置需要配置以下参数(另,如果手机上没装被测应用,需要配置appName指定安装包路径,如果已安装可不配置):

{
  "deviceName": "iPhone XS Max",
  "platformName": "iOS",
  "platformVersion": "12.2",
  "automationName": "XCUITest",
  "udid": "XXX",
  "bundleID": "XXX",
  "xcodeOrgId": "XXX",
  "xcodeSigningID": "iPhone Developer"
}
复制代码
  • deviceName:设备名称,点击关于本机可查看
  • udid:可以在xcode的Window-》Devices and Simulators中查看,使用爱思助手也可以查看
  • bundleID:当时费了好大功夫各种查,最后是将.ipa文件后缀改成.zip后解压成.app文件,然后再把.app文件后缀改成.zip后解压,在info.plist中可以查看Bundle identifier就是bundleID了。当然最后发现我们测试包的小眼睛里面就可以查看bundleID。。对自己无语了。
  • xcodeOrgId:打包时选择的Development Team的teamID,teamID可以在 developer.apple.com/account/ 里左侧的 Member ship 中找到
  • xcodeSigningID:为打包时的证书名字,赋值"iPhone Developer"即可。

WebDriverAgentRunner

当然,我配置了Desired

最后

俺叫小枫,一个成天想着一夜暴富的测试员

1140267353)一起成长一起加油的伙伴群!软件测试,与你同行!
群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

点赞关注不迷路!!!【三连ღ】,有问题也可私聊哟~(*╹▽╹*)

你可能感兴趣的:(自动化测试,UI自动化,软件测试,软件测试,android,ios)