iOS自動化打包上傳的踩坑記
很久以前就看了很多關於iOS
自動打包ipa
的文章,
看著感覺很簡單, 但是因為一直沒有AppleDeveloper
賬號可以給我用, 到了真的要搞自動打包的時候, 才發現到處都是坑。
基本命令
-
xcedebuild: 生成
Archive
、匯出ipa
, 還有其它功能… -
xcrun: 把
*.app
打包成ipa
, 還有其它功能…
基本使用
一. xcedebuild
打包Archive
檔案
1 |
xcedebuild -workspace ${path to *.xcworkspace} -scheme ${scheme} -destination generic/platform=iOS archive -configuration Release ONLY_ACTIVE_ARCH=NO -archivePath ${export path *.arichive} |
-
-workspace 你的
*.xcworkspace
檔案 -
-scheme 專案檔案裡面的
scheme
-
-archivePath 生成的
*.arichive
檔案路徑
二. xcedebuild
從*.archive
匯出ipa
1 |
xcedebuild -exportArchive -exportFormat IPA -archivePath ${path to *.archive} -exportPath ${export path *.ipa} -exportProvisioningProfile ${ProvisioningProfileName}
|
-
-archivePath 你的
*.archive
-
-exportPath 匯出的
ipa
路徑 -
exportProvisioningProfile 你的Distribution釋出證書的名稱(只需要名稱)
三. xcrun
打包ipa
"xcrun -sdk iphoneos PackageApplication -v ${path to *.app} -o ${package path *.ipa}"
-
-v 你的
*.app
檔案, 生成的*.archive
裡面有 -
-o 打包生成的
*.ipa
檔案路徑, 注意!!!這裡是不能填相對路徑, 因為這裡的路徑環境變數不是當前執行命令的路徑了
踩坑
坑一
使用第一個命令前, 需要確保你的專案的簽名配置好, 證書下好最新的
坑二
第二個命令的-exportProvisioningProfile
填的只是你的釋出證書的名稱, 不是那一串id
坑三
第二個命令打包出來的*.ipa
不能用來上傳到AppStore
,
一直報CocoaPods裡面的第三方庫簽名錯誤
坑四
打包出來的*.ipa
需要上傳到AppSotre
的話,
可以使用第三個命令, xcrun
那一個
坑五
使用第三個命令打包出來的*.ipa
, 上傳到AppStore
之後,
登入到iTunes Connect-APP-所有構建版本
檢視到上傳的*.ipa
正在構建。但是過了一會兒, AppleDeveloper
賬號的郵箱就會收到一封報錯的郵件,
大概是說你的*.ipa
包裡面, 缺少了一個SwiftSupport
資料夾
經過各種搜尋之後, 原來需要把xcrun
打包出來的*.ipa
解壓,
然後新建一個資料夾, *.archive
裡面的SwiftSupport
資料夾copy
進去,
還有把ipa
解壓出來的move
進入,
最後打個zip包, 再改成ipa
字尾就可以上傳到AppStore
了(應該吧,
還沒測試????)
番外篇
在踩到了第五個坑之後, 在github
發現了一個iOS
的打包、釋出庫…
上地址: https://github.com/nomad/shenzhen
懶得自己搞的可以使用這個庫, 感覺還是挺不錯的