之前我曾經寫過macOS app 實現自動化 notarize 腳本,由於我的輸入法使用微軟的 HockeyApp 進行崩潰統計,所以我還需要把 app 上傳到這裡進行一次“發布”,好讓 HockeyApp 能夠收到對應版本的錯誤統計。
如今,微軟的 HockeyApp 已經更新成了 AppCenter,自動化命令也十分友好,其實這個操作也可以加入到你的自動化腳本里邊,一步到位。
/appcenter-CLI
我們直接下載官方的命令行工具即可: 須藤 ASL 安裝 -g 應用中心-CLI ,安裝好後,使用命令 應用中心 設定-自動完成 來添加命令行自動補全功能,這樣會方便很多。
然後使用命令 應用中心 登錄 ,這樣生成的 Token 會自動保存,不需要每次上傳都登錄。
期間 appcenter 命令會問你一個 telemetry 什麼的東西,我沒搞懂是啥……0.0 反正直接啟用了。
獲取 App 列表
首先,你的 AppCenter 應該已經新建了這個 App 對吧?總之,如果我們要用命令發布更新,那就必須知道這個 App 對應的名稱,它的格式是這樣的: 所有者/應用 ,但如果你直接按照 AppCenter 裡顯示的去寫,那麼很有可能你會遇到如下錯誤:
1 |
Error: failed to create release upload for xxx.zip |
使用 --調試 參數後得到詳細錯誤:
1 2 3 4 |
... ... / Creating release upload...Response status code: 403 Body: {"message":"Forbidden","statusCode":403,"code":"Forbidden"} |
顯然,我們的操作被拒絕了,原因就是——其實你的用戶名稱和 App 名稱可能並不是網站上顯示的那個。
使用命令 應用中心 應用 名單 查看當前擁有的 App 列表,你就發現你的 App 很有可能叫這個名字:
1 2 3 4 5 |
$ appcenter apps list name/123 name/la4-ge2-shu1-ru4-fa3 name/la4-ge2-shu1-ru4-fa3-X name/pian1-hao3-she4-zhi4 |
……就是這麼的令人絕望。
還好,我們可以用命令 應用中心 應用 節目 name/123 來查看對應 App 的詳情:
1 2 3 4 5 6 7 8 9 10 11 12 |
App Secret: ca2f1f12-b072------8661-c----421e279 Description: Display Name: YourAppName Name: 123 OS: macOS Platform: Objective-C-Swift Release Type: Production Owner ID: -bef--f9-c4c0-4c8f-b787-aab4192a390f Owner Display Name: --- Owner Email: --- Owner Name: name Azure Subscription ID: |
在高亮的第三行你可以看到這個 App 在網站的名字,這樣就能將這裡的名字和你網站上一直以來自己設定的名字對應起來。
(沒錯,這個傻屌隨機名不能改。)
上傳更新和符號鏈接
找到了對應 App 的名字,接下來就是容易的部分了:
1 |
appcenter distribute release -f xxx.zip --silent -g Collaborators -a name/123 -b 1985 |
與在網頁上上傳不同的是,這裡 AppCenter 不能再幫你自動推斷 App 的 Build 版本號了,所以你還是需要再輸入一次 -b 1985 ,另外 --無聲 要求這個更新不通知用戶, -g 合作者 指定要發佈到哪個測試組。
上傳發布成功後結果類似這樣:
1 |
Release 2.3.0 Beta (1985) was successfully released to 1 testers in Collaborators |
接下來是上傳編譯鏈接文件以供崩潰統計之用:
1 |
appcenter crashes upload-missing-symbols -a name/123 ./symbols |
直接指定包含鏈接文件的目錄即可,appcenter 會自動遍歷目錄尋找所有的鏈接文件,然後只會上傳需要的那一份,上傳成功後結果類似這樣:
1 2 |
6 symbols are needed to symbolicate all crashes 1 of these symbols were found and uploaded |
這樣,你編譯好的更新版本就能自動發佈到 AppCenter 了呢。
參考文獻
本文由 落格博客 原創撰寫:落格博客 » macOS app 自動化上傳發佈到 AppCenter
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/3290.html