神气的 iOS 打包

2018 年 3 月 29 日 CocoaChina CoderHG

看文章的标题就很霸气,这个标题也是花了好几秒钟才想出来。


这就是全自动的打包到上传的脚本


看完之后会发现其实一点都不神气、反而弱爆了,毕竟很久之前很多大神都在使用这么牛气的方式了。但是对于我来说,还是有点神气的。毕竟之前打包20分钟、并且还忙得不亦乐乎。现在不一样了,一个脚本运行起来,只需两秒钟,并且打包与上传全搞定,那就是一站式服务。用来学习,也是很不错的。[偷笑5分钟、犯困一小时]


项目代码在这里,顺便点个赞,同时给个star。


0、来点废话提提神


这是花了半个下午的成果,初次使用难免有很多看似高大上的东西,实际上是很 low的。

今天在网上看了不少大神的实现方式,以及脚本编写,都是行不通的,口误口误,不是行不通而是已经过时了而已。

比如他们用到的 PackageApplication,现在无法使用了,至少我没有成功过。

其次就是那个 -exportFormat 参数,早已经过期了。然后一直没有找到替代品,直接报这样的错:xcodebuild: error: invalid option '-exportFormat'

为了找到正确的,确实是费了不小的劲。然后通过命令 xcodebuild -h 无意间看到了这个 -exportOptionsPlist,联想到每次打包的时候在那个包文件夹中有类似的文件,所以报着试一试的心理。没想到还成功了。

建议看一下这个:https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW936


一、具体流程


  • 准备

  • 打包

  • 上传


1. 准备


  • 创建一个项目,比如HGPGY。

  • 生成一个 ExportOptions.plist 文件,这个是打包的配置文件。如果不想手动创建,可以先第一次打一个包,然后在导出 ipa 的时候自动生成,以后使用这个文件即可。并将这个文件放到与项目目录同一级(非必须,可以自己规定)。 特别提醒:这个文件很重要,里面都是开发者账号与项目关联相关的配置。


ExportOptions.plist文件


2. 打包


打包步骤为:构建 .xcarchive 再导出 .ipa 。


2.1 构建 .xcarchive 文件


在终端输入:


xcodebuild archive -project HGPGY.xcodeproj -scheme HGPGY -configuration Release -archivePath HGPGY.xcarchive


2.2 导出 .ipa 包


在终端输入:


xcodebuild -exportArchive -archivePath HGPGY.xcarchive -exportPath HGPGY.ipa -exportOptionsPlist ExportOptions.plist


3. 上传(以蒲公英为例)


这里不做介绍,具体详情可以查阅蒲公英官方文档:https://www.pgyer.com/doc/view/upload_one_command


二、脚本实现


具体的脚本在这里,顺便点个赞,同时给个star。


直接在终端输入:


sh UploadPackage2PGY.sh  


比如:


sh UploadPackage2PGY.sh HGPGY 在使用高大上的脚本做打包上传.


打包之前的样子:



打完包是这样子的:


红框框中的两个文件是打包哦过程中生成的


脚本写得很low,但是还算可以了,至少是正确的。更多高质量的脚本代码,敬请期待!


如果还感兴趣,可以再欣赏一下这个代码,这里面暴露了很多OC中的秘密(与本打包话题无关)。


参考文章:


作者:CoderHG

链接:https://www.jianshu.com/p/7fe1c8b44023


相关推荐:


登录查看更多
1

相关内容

iOS 是苹果公司为其移动产品开发的操作系统。它主要给 iPhone、iPod touch、iPad 以及 Apple TV 使用。原本这个系统名为 iPhone OS,直到2010年6月7日 WWDC 大会上宣布改名为 iOS。
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【2020新书】C++20 特性 第二版,A Problem-Solution Approach
专知会员服务
57+阅读 · 2020年4月26日
【Manning2020新书】Elm 实战,344页pdf,Elm in Action
专知会员服务
49+阅读 · 2020年4月14日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
【课程】伯克利2019全栈深度学习课程(附下载)
专知会员服务
54+阅读 · 2019年10月29日
MIT新书《强化学习与最优控制》
专知会员服务
270+阅读 · 2019年10月9日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
PHP使用Redis实现订阅发布与批量发送短信
安全优佳
7+阅读 · 2019年5月5日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
C# 10分钟完成百度人脸识别
DotNet
3+阅读 · 2019年2月17日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
R工程化—Rest API 之plumber包
R语言中文社区
11+阅读 · 2018年12月25日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
已删除
生物探索
3+阅读 · 2018年2月10日
Arxiv
3+阅读 · 2018年6月14日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
11+阅读 · 2018年4月25日
VIP会员
相关VIP内容
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
PHP使用Redis实现订阅发布与批量发送短信
安全优佳
7+阅读 · 2019年5月5日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
C# 10分钟完成百度人脸识别
DotNet
3+阅读 · 2019年2月17日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
R工程化—Rest API 之plumber包
R语言中文社区
11+阅读 · 2018年12月25日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
已删除
生物探索
3+阅读 · 2018年2月10日
Top
微信扫码咨询专知VIP会员