iOS 自动打包发布到Fir和AppStore

特别说明:如果项目没有采用Cocoapods管理,没有.xcworkspace,只有xcodeproj;只需要将脚本中这句

xcodebuild archive -workspace ${project_path}/${project_name}.xcworkspace \ 

这句替换成下面这样就ok了

xcodebuild archive -project ${project_path}/${project_name}.xcodeproj 

日常编译打包工作主要是以下两个目的:

  • 提交测试版本ipa给测试人员
    配置好测试描述文件,然后Product -> Archive编译打包,选择Organizer,导出ad hoc 的 ipa包。再上传到Fir等第三方平台上,然后通知测试同事进行测试。整个流程下来需要人工监守操作比较耗费时间。
  • 提交ipa包到App Store已供审核
    配置好正式的描述文件,然后同样的方式打包导出app store 的 ipa包。通过Application Loader 等方式提交到App store等待苹果处理二进制包,处理完后选择构建版本,最后提交等待苹果审核。

无论打测试包提供测试人员测试还是打正式包上传到App strore,整个过程都是重复耗费人工的操作,需要人工等待,然后各种点击选择...我们可以通过编写脚本语言来实现整个过程。

配置自动打包发布的流程

通过下面几步的设置好之后,以后再进行打包发布到第三方平台或者App Store 只需要一步就能搞定了(一个回车搞定)

笔者通过shell脚本实现从archive->生成ipa->上传到第三方平台(Fir.im 、蒲公英)或 App store。通过下面几步即可实现自动打包上传功能。

  • 下载Shell脚本
  • 将archiveScript中的几文件拖入工程的根目录
  • 根据自己需求选择好描述文件
  • 根据自己的项目修改一下shell.sh (修改哪里下面会指出)
  • cd到工程根目录,通过./shell.sh 执行脚本即可

下面通过实例详细演示整个过程

第一种:打包上传到第三方平台Fir (上传蒲公英原理一样)
第二种:打包上传到App store

将通过这几步来讲解整个过程

  • 准备工作
  • 准备工作做完后,正式开启自动化之路
  • 自动化脚本执行过程中可能遇到的错误

准备工作

  • 因为要上传到Fir平台,需要先安装fir-cli

    命令:gem install fir-cli
     
  • 如果没有安装过rvm,需要安装rvm,在终端输入rvm -v命令查看,如果打印出rvm:command not found说明没有安装过rvm,如果能打印出rvm版本等信息说明安装过。如果没有安装过rvm可以通过下面的命安装,如果已经安装过可以忽略。

    • 在终端输入 curl -L get.rvm.io | bash -s stable,然后稍等一会rvm就安装好了
    • 在终端输入 source ~/.bashrc
    • 在终端输入 source ~/.bash_profile
    • 再输入rvm -v查看安装成功

准备工作做完后,正式开启自动化之路

一、将archiveScript中的3个文件拖入工程的根目录

 

二、修改一下shell.sh 文件

 
iOS 自动打包发布到Fir和AppStore
 iOS 自动打包发布到Fir和AppStore

iOS 自动打包发布到Fir和AppStore

 

iOS 自动打包发布到Fir和AppStore

Product ->Scheme -> Edit Scheme 查看自己的scheme_name

 iOS 自动打包发布到Fir和AppStore

 

iOS 自动打包发布到Fir和AppStore

获取Fir平台的token


 iOS 自动打包发布到Fir和AppStore

 

iOS 自动打包发布到Fir和AppStore

三、 cd到工程根目录,./shell.sh 回车就会执行脚本

 
iOS 自动打包发布到Fir和AppStore
 

四、 根据自己的需求选择即可

如果开始选择的1:app-store 会发布到app store

 
iOS 自动打包发布到Fir和AppStore

如果开始选择的2:ad-hoc 发布到fir平台

 
iOS 自动打包发布到Fir和AppStore

 

到这里就已经实现了通过脚本打包并发布到第三方平台Fir 和 Appstore的整个流程。

 

参考链接:https://www.jianshu.com/p/05dc9f925467

iOS 自动打包发布到Fir和AppStore

上一篇:解决Activiti5.22流程图部署在Windows上正常,但在linux上部署后出现中文变方块的问题


下一篇:c#中返回Task与T的大概用法