[Android] 編譯給手機與上傳 Google Play – Xamarin for VS2017


話說,兩年前雖然完成開發 Google Play 的 App ,但因為去年在弄 Apple Store 的 App ,使用 Xamarin for Mac ,所以我已經完全忘了如何上傳 Google Play ,為了自己不知道多久後可能還會再上傳,還是自己留個紀錄。

編譯跟封存的步驟參考前一篇:

[Android] 無法正確封存 App – Xamarin for VS2017

這篇直接繼續封存開始。封存時的畫面如下:

編譯後封存中
編譯後封存中

正常完成封存後,畫面右下角可以選散發。在很舊版的 Android 模擬器,這時可以不選散發,直接將封存完成的 apk 拿到模擬器上測試,但目前的版本是不行的,所以一定要選 [散發]。

封存後選散發
封存後選散發

點選 [散發] 後,若是要直接給手機或模擬器用,選 [臨機操作] ,要是要作為正式版上傳 Google Play ,選 [Google Play] 。事實上選 [臨機操作] 的仍可人工上傳到 Google Play ,此外,點選 [Google Play] 的話,只能發布正式版、測試版,不能進行封測,我記得兩年前我在用的時候,應該沒有 [Google Play] 這選項,應該是後來微軟加入,方便開發者上傳用,但以版本管理而言,我個人偏好 [臨機操作] ,這可確保封存的 apk 檔案時間是自己可以掌握的,手上的備份版本與 Google Play 一致,當然影響不大,只是個人偏好而已。

散發通道
散發通道

A. 臨機操作

選取 [臨機操作] 後,要選一個來簽署身分識別,比如說你是用個人名義開發軟體還是用公司名義,或是集團公司可能有很多分公司,原則上這個檔案應該另外保存,如果有另外保存,例如公司共用的身分識別檔案 .keystore,第一次選 [匯入] ,如果從來沒建立過,第一次選 [+] 建立一個新的。建立時可以選擇有效期限,我是建議選長點時間,因為要更新軟體要用同一個身分識別上傳,建立身分識別後,要上傳 Google 取得對應的憑證,這個在網路上找一下,我兩年前做的,我也忘了步驟了,反正這篇重點不在這。

簽署身分識別
簽署身分識別

選擇 [另存新檔] 後,會讓你輸入密碼,必須記得第一次建立時輸入的密碼,否則無法正確簽署身分識別。這裡另存新檔的好處是你能掌握簽署身分識別後的檔案,不像直接上傳 Google Play 的,完全不知道暫存在哪。

輸入身分識別密碼
輸入身分識別密碼

回到 Visual Studio 2017 ,可以看到正在產生簽署身分識別後的 apk 檔案。

散發身分識別寫入中
散發身分識別寫入中

完成後,就可以傳輸到手機安裝,像一般沒有開 Google Play 帳號的 App ,就是把完成後的檔案放在網站上供人下載安裝。由於 Google Play 會對 App 進行檢查,一般來說,還是放上 Google Play 比較令人信賴,至於電視盒那種涉及侵權的軟體,就只能放上網頁供人下載了。

B. 上傳 Google Play

上傳 Google Play 可以把上面完成簽署身分識別的 apk 手動上傳到 Google Play ,也可以讓 Visual Studio 自動上傳,在上面散發通道選擇 [Google Play] 按鈕。

一樣,上傳 Google Play 也要簽署身分識別,不過可以從圖上分辨出是要為了臨機操作還是給 Google Play 使用。

散發到GooglePlay
散發到GooglePlay

密碼輸入的部分就跳過了,這邊由於不選擇存檔位置,所以簽署身分識別後的檔案 VS2017 不會自動幫你保存,如果又碰上 VS2017 的佛性發揮,一切隨緣時,上傳 Google Play 的 App 可能會變得不能安裝執行。

第一次上傳 Google Play 時,要輸入代理帳號:

註冊Google帳號
註冊Google帳號

由於我以前都是人工手動上傳,所以要建立一個新的。選擇步驟 1 的超連結,可在 Google 開發網站註冊一個 OAuth 認證帳號。

建立 Google API OAuth 帳密
建立 Google API OAuth 帳密

在資安的觀念上,不要在非官方的登入口輸入你原始的帳號密碼,即使是 VS2017 ,也不能輸入原始帳密,所以建立一個專用的帳密來登入,這樣也有好處,要是原始帳密進行密碼定期變更,VS2017 的自動登入不用變更,當發現帳密疑似外洩時,把這組帳密從 Google 刪除即可。

可以直接從網頁上複製帳密貼到 VS2017 的對話框,考慮到可能得重灌電腦或是 Visual Studio ,最好還是下載 JSON 保存,未來找帳密比較方便,當然也可以到網頁上查詢。

輸入 Google API OAuth 帳密
輸入 Google API OAuth 帳密

如果已經在 VS2017 註冊過 Google Play 帳戶,上面建立帳號的步驟就可以跳過,當然,如果說開發的軟體有分個人跟公司的話,就點選 [+] 再輸入個人帳號資料即可,有分的話,名稱一定要分出來才好辨識,沒有的話就直接點帳號與 [繼續] 進行下一步。

選取 Google API 帳號
選取 Google API 帳號

由於我要發布正式版,所以選擇生產環境。

GooglePlay 上傳選擇
GooglePlay 上傳選擇

我的目標 API 設為 Android 4.4 (19),在臨機操作不受影響,仍然可以安裝,但是 Google Play 則不接受,被踢掉,錯誤訊息為:

上傳 ‘com.[公司].[軟體]’ 時發生錯誤: Your app currently targets API level 19 and must target at least API level 26. [403]

VS2017 API 版本過低
VS2017 API 版本過低

我懷疑是不是 VS2017 限制,改用手動上傳,確認為是 Google Play 限制,必須改版。Google Play 錯誤訊息則為中文:

上傳失敗
你的應用程式目前的目標 API 等級是 19,但最低目標 API 等級必須為 26,才能確保應用程式採用最新的 API,讓安全性與執行效能達到最佳狀態。請將最低目標 API 等級調整為 26。

Google Play API 版本過低
Google Play API 版本過低

只好將最低目標調整為 Android 8.0(26) ,先做臨機操作,經過測試,Android 4.4 / 7.0 / 8.0 都還能安裝,就重新編譯上傳。

VS2017 上傳 Google Play 中
VS2017 上傳 Google Play 中

上傳完成後,登入 Google Play Console 檢查上傳狀態,可以看到上傳完成就自動發佈,從 Console 到商店更新大概還要 15 分鐘左右,要看商店是否已更新要稍微耐心等候。畫面上一個尚未發佈的版本,是我先前測試 API 19 的版本,再擷圖時尚未刪除,後來已經刪除了。

網頁檢查上傳結果
網頁檢查上傳結果

在 Google Play 商店會顯示目前版本的修改內容,所以最好人工進行編輯,避免使用者對於改版原因產生困惑。

編輯版本修改資訊
編輯版本修改資訊

好了,自己把步驟都記錄下來,希望下次要用的時候,操作方式不變… 不然又要到處上網找如何做了。

廣告
Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

文章分頁導航

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

在 WordPress.com 建立免費網站或網誌.

%d 位部落客按了讚: