MAC使用命令行打包出ipa包-通过xcodeproj
参考 :
https://www.jianshu.com/p/32af2f71b4e5--老了,里面的一些命令现在都没有了,但可以借鉴思路
https://www.jianshu.com/p/004c9346f9b0
1.切换到工程所在目录
打开终端,输入 cd ,并将工程所在文件夹拖入cd 后面,回车。(即.xcodeproj工程所在的位置)
2.清除
在终端继续输入xcodebuild clean,回车等待,clean成功后截图如下。
xcodebuild clean
3.构建
xcodebuild archive -project /Users/chenpeisong/Desktop/test/HelloWorld/HelloWorld.xcodeproj -scheme HelloWorld -archivePath /Users/chenpeisong/Desktop/HelloWorld.xcarchive
说明:
-archive -project 后面跟工程路径
/Users/chenpeisong/Desktop/test/HelloWorld/HelloWorld.xcodeproj -scheme 需要打包的Sheme,一般与工程名相同
HelloWorld -archivePath 后面跟.xcarchive文件的目标路径可以自己自由设置
/Users/chenpeisong/Desktop/HelloWorld.xcarchive
archive成功后截图
4.打包
xcodebuild -exportArchive -exportOptionsPlist /Users/chenpeisong/Desktop/ExportOptions.plist -archivePath /Users/chenpeisong/Desktop/HelloWorld.xcarchive -exportPath HelloWorld
说明:
-exportArchive
-exportOptionsPlist plist文件路径,包含证书信息
-archivePath .xcarchive文件路径
-exportPath ipa文件目标路径
其中关键就是exportOptionsPlist 文件需要在之前通过xcode打包导出ipa时的文件夹中去copy一个出来放在当前工程目录中,然后将其拖入-exportOptionsPlist 后面即可。
打包成功后截图:
可以看到HelloWorld文件夹中已经生成了helloworld.ipa文件
附:
打开plist文件长这样
plist字段说明:
method:字符串,为打包的类型,分为app-store,ad-hoc,enterprise和development,根据自己实际打包情况填写。
provisioningProfiles:字典,Xcode9需要,键值对为{bundleid:描述文件名},描述文件名最好使用其对应的UUID。
signingCertificate:证书类型,开发环境为iPhone Developer,生产环境为iPhone Distribution。
signingStyle:自动还是手动(manual与automatic),填写manual即可。
stripSwiftSymbols:填写为YES。
teamID:为开团队ID,在钥匙串中点击证书详情可以查看到。
uploadBitcode:为YES即可。
uploadSymbols:为YES即可
现在有一个问题是:生成archive文件 和ipa文件的过程中都需要输入登录密码怎么办?
解决办法:
(这是临时的解决办法-在自动化打包时肯定不能这样的吧)又走了一遍流程,这次点击了【始终允许】,就不弹出了
或者参考这篇文章
https://blog.csdn.net/xiao_wu_xiao/article/details/50961661
最新文章
- 初次接触nodejs,请多指教。
- Swift实现截屏并保存相册
- iOS中NSLog的输出格式
- 能够提高开发效率的 Eclipse 实用操作
- oracle 语句优化
- [BZOJ 2049] [Sdoi2008] Cave 洞穴勘测 【LCT】
- JavaScript 高级程序设计(第3版)笔记——chapter3:基本概念(函数部分)
- this.button1.Click += new System.EventHandler(this.button1_Click);
- js内存泄露的原因
- sprintf()、fprintf()、fscanf()的用法
- Android开发之深入理解Android 7.0系统权限更改相关文档
- Lookup dict 并将属性更新于lookupdict object中
- ASM检查RAC是否成功
- linux 查看CPU、内存、磁盘信息命令
- 8 commands to check cpu information on Linux
- addEventListener在一个节点上添加多个相同的事件
- hive函数 parse_url的使用
- BZOJ 3357--[Usaco2004]等差数列(STL&;DP)
- js valueOf()函数用于返回指定对象的原始值
- php中array_map和array_walk的使用对比_php技巧
热门文章
- 1、Laravel 环境配置及安装
- 洛谷P1265 公路修建——prim
- Navicat 破解方法
- java的spi(Service Provider Interface)机制及源码(java8)
- Codeforces Round #460 (Div. 2) B Perfect Number(二分+数位dp)
- BUUCTF--xor
- PyInstaller库的使用
- 消费者与生产者---LinkedList方式模拟
- ubuntu root用户 phpstorm软件不能使用中文输入法
- AGC002[BCDEF]题解