iOS自动化之打包-xcodebuild命令行打包.app并安装到ios模拟器

1.目的
做ios ui自动化测试过程中,想通过试验命令行自动打包到特定的ios模拟器,以便后期集成到shell脚本
2.思路
先了解下整个手动安装包的流程,开发用xcode写完代码,并编译就可以打出安装包,测试把包安装到手机上测试
自动化就是想办法可以让他自动完成xcode的一些操作,自动安装到手机,但跑自动化测试的话一般会放到模拟器上
这个时候自动化就分为了两步,一自动打包,二自动安装
3.涉及到的知识
自动打包的命令涉及到xcodebuild
自动安装的命令涉及到xcrun
iOS安装包的类型有两种,一种是.ipa安装到真机上的,一种是.app安装到ios模拟器上的,之所以不同是因为ios真机(i386/x64)和模拟器(armv7/arm64…)的架构不一样,这些设置可以在xcdoe build setting里的Excluded Architectures进行修改,但用命令行打包可以不用管这里

请添加图片描述
4.实践
1.有一个可以打包的xcode账号,一般问开发要就可以
2.git clone对应项目到本地
3.进到项目文件夹下
4.打开模拟器
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

5.打包
-scheme 一般是你们在xcode里运行项目时product-scheme里选中的那个选项,我这个直接是app的名称
-workspace 这个看你们项目一般用.workspace还是.proj运行,如果有.workspace的话就用👇的,如果是.proj就把-workspace xxx.xcworkspace换成-project xxx.proj
-destination后面加打包到的机型,如果不填,默认是打iphone的包而不是iphonesimulator
xcodebuild -scheme xxx -workspace xxx.xcworkspace -destination 'platform=iOS Simulator,name=iPhone 13,OS=15.0' -derivedDataPath build
6.运行完后,会在项目文件夹的build里生成.app包,进行安装
xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/xxx.app
就大功告成啦
5.踩的坑
1.最开始的想法是先打开模拟器,再进行打包,,只不过打包的命令里没有标明-destination,觉得他一定会把包安装到那个打开的模拟器上,但是打出来的包安装到模拟器上会报:
This app needs to be updated by the developer to work on this version of iOS.
Failed to find matching arch for input file: /Users/user/Library/Developer/CoreSimulator/Devices/CCE1509C-91B3-47A9-A61E-E8B02627B454/data/Library/Caches/com.apple.mobile.installd.staging/temp.aOBiJl/extracted/xxx.app/App
2.看到This app needs to be updated by the developer to work on this version of iOS.,我以为是因为iOS15的系统有签名的问题,网上查了我的签名是好的
3.看到Failed to find matching arch搜了下,可能和架构有关,那就可能和打的包有关,再看下打包命令没有带-destination, Products下打出的包默认是其实是iphone真机包,所以没有办法安装到ios模拟器上的,加了destination后就可以正常打成模拟器包啦,所以要安装到模拟器的包,xcodebuild打包命令里一定要带-destination这个参数!!!!!!!!!!!!!
请添加图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在iOS上使用Xcode进离线打包,需要遵循以下步骤: 1. 确保你已经安装了Xcode并拥有一个有效的开发者账号。 2. 打开Xcode并选择 "File" -> "New" -> "Project"。 3. 选择 "iOS" -> "Application" -> "Single View App",并点击 "Next"。 4. 输入项目名称和其他信息,然后点击 "Next"。 5. 选择一个位置来保存你的项目文件,然后点击 "Create"。 6. 在左侧导航栏中选择你的项目,并在 "General" 选项卡下找到 "Identity" 部分。 7. 点击 "Team" 下拉菜单并选择你的开发者账号。 8. 关闭Xcode并在终端中打开你的项目文件夹。 9. 运以下命令来创建一个离线打包的IPA文件: ``` xcodebuild clean archive -scheme <YourSchemeName> -archivePath <YourArchivePath.xcarchive> CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ``` 其中,`<YourSchemeName>` 是你项目中的 scheme 名称,`<YourArchivePath.xcarchive>` 是你想要保存的归档文件的路径。 10. 运以下命令来导出IPA文件: ``` xcodebuild -exportArchive -archivePath <YourArchivePath.xcarchive> -exportOptionsPlist <YourExportOptions.plist> -exportPath <YourIPAPath.ipa> ``` 其中,`<YourArchivePath.xcarchive>` 是你刚才创建的归档文件的路径,`<YourExportOptions.plist>` 是一个导出选项的配置文件,`<YourIPAPath.ipa>` 是你想要保存的IPA文件的路径。 11. 完成后,你应该可以在 `<YourIPAPath.ipa>` 路径下找到你的IPA文件。 请注意,此方法需要你已经有一个有效的开发者账号,并且你需要使用终端来执命令。此外,此方法可能存在不稳定性和错误,因此请谨慎使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值