Xcode脚本打包

2018-06-01  本文已影响52人  林三更

脚本打包,解放双手!!!
最近换了新MBP,没事在研究提高Mac工作效率,刚好跟这次打包撞出新的火花。
Mac系统下,shell + applescript真的很无敌😬
下图就是脚本打包的流程

脚本打包测试一条龙

Xcode脚本打包

打包方式

⚠️ Xcode9开始仅支持xcodebuild,xcodebuild + xcrun虽可以用,但是配置起来太麻烦了。接下来我说的都是xcodebuild。

xcodebuild用法

xcodebuild打包的很简单,只要归档,导出两步就可以了

// 归档 ( 二选一 ,一为普通项目,二为CocoaPods集成项目 )
xcodebuild archive -project 项目名.xcodeproj \ 
                   -scheme Target名 \
                   -configuration Dubug/Release \
                   -archivePath ./自定义.xcarchive 

xcodebuild archive -workspace 项目名.xcworkspace \
                   -scheme Target名 \
                   -configuration Dubug/Release \
                   -archivePath ./自定义.xcarchive

// 导出
xcodebuild -exportArchive -archivePath ./自定义.xcarchive \    (❗️必须跟归档出来的文件同名)
           -exportOptionsPlist ./ExportOptions.plist \
           -exportPath ./
xcodebuild参数

我新建了一个名为Demo的项目,同时有两个Target,Demo和DemoCopy,然后在项目目录下使用命令行 xcodebuild -list,下面就是打印出来的东西

Information about project "Demo":
    Targets:
        Demo
        DemoCopy

    Build Configurations:
        Debug
        Release

    If no build configuration is specified and -scheme is not passed then "Release" is used.

    Schemes:
        Demo      
        DemoCopy

刚好有Schemes,Configurations两个参数,大家对号入座吧。
archivePath,exportPath就是路径而已,下面重点说说ExportOptions.plist

ExportOptions.plist

在研究整个Xcode脚本打包的过程,ExportOptions.plist这个文件可算是最坑的,我查了资料之后,发现ExportOptions.plist得自己手动打包一份出来,然后在打包好的文件夹中,你就能看到这个ExportOptions.plist文件,拷贝一份出来,根据项目修改其中的一些键值就可以用了
下面就是需要修改的键值

compileBitcode                      // 待定,一般为NO
method                              // app-store、ad-hoc、enterprise 、development,四选一
provisioningProfiles                // provisioningProfiles整个dict都得重写
  项目bundle Identifier    ---    配置证书名称
signingCertificate                  // iPhone Developer、iPhone Distribution,二选一

⚠️ 手动乖乖自己先打一个包出来拷贝ExportOptions.plist,因为Xcode9和Xcode8的ExportOptions.plist相差了5个键值(X9八个键值,X8三个键值)

注意

❗️Xcode项目必须先配置,然后再去执行打包
❗️PROJECT设置Build Settings-Code Signing Identity
❗️TARGETS设置Provisioning Profile
❗️xcodebuild命令行都是在项目下面执行的

其他
// xcodebuild 所有命令行
xcodebuild -help

// 查看项目一些配置
xcodebuild -list

上传内测托管平台

内测托管平台,我选了fir.im,至于蒲公英呢,你们去看看蒲公英的脚本上传就知道了🌚

安装fir-cli
sudo gem install fir-cli
用法
fir version               // 查阅到版本号,恭喜你安装成功
fir login                 // 先登录,不然上传不了,在我的应用界面,鼠标移动到头像,就能看到API token
fir publish ipa文件路径    // 上传本地ipa到fir
注意

❗️fir-cli依赖gem,gem依赖ruby环境
❗️fir-cli需要实名认证,不然上传不了ipa

邮件通知测试人员

邮件通知这就很多了,Python啊,sendemail……,巨多,配置起来很麻烦。
幸好有AppleScript,上面的火花指的就是AppleScript,Mac自带支持最高。
如果大家对AppleScript有兴趣的话,可以去我个人网站看看,我会把AppleScript学习记录在上面,方便和大家交流

set aContent to "AppleScript脚本发邮件"
set aSubject to "email主题"
set aVisible to true
set aAddress to "收件人地址"
set aName to "收件人名称"

tell application "Mail"
    set testMessage to make new outgoing message with properties {subject:aSubject, content:aContent, visible:aVisible}
    tell testMessage
        make new to recipient at end of to recipients with properties {address:aAddress, name:aName}
        activate
    end tell
end tell

上面这段代码放到Mac中的脚本编辑器就可以运行

其他

打包脚本已经上传了,支持向多个人员发送邮件,同时自带已经打包好的ipa文件,ipa文件也重命名成打包时间的,方便我们测试记录
脚本传送门🚪

🙇‍♂️感谢踩坑的前辈
https://www.jianshu.com/p/bd4c22952e01
https://www.jianshu.com/p/97c97c2ec1ca
https://juejin.im/post/58fea6435c497d00580d249d

上一篇下一篇

猜你喜欢

热点阅读