為了使用 Google 排行榜看了很多教程, 但大部分都很零碎且只針對特定步驟, 實際踩入坑後決定把過程都記錄下以防再度掉坑 (笑
開始串接前必須完成幾個前置動作, 包含…
- 申請 Google 開發者帳號 (不同於一般的 Google 帳號)
- 建立 Google Play 應用程式 (用於發布在 Google Play 平台)
- Unity 專案 Android 平台設定
- Unity 生成 Keystore (用於申請 API 憑證, 目前被整合至 Google Cloud Platform 的 API 服務裡)
申請 Google 開發者帳號 (官方流程)
如果要在 Google Play 發布應用程式 (Android 平台), 就必須申請 Google Play 開發人員帳號. 基本上只要有 Google 帳號就能申請, 同意條款中也有標示必須年滿 18 歲.

再來是支付一次性的申請費用 25 美金 (趁著美金大跌趕快買起來!?).


付費成功後, 填寫開發者帳號資料, 可以先填個大概之後還能修改. 開發者帳號 ID 是自動創建的不能修改~

送出後, 頁面自動轉跳至 Google Play Console. 有時間摸索可以先看官方的簡介影片.

建立 Google Play 應用程式
這步驟按照你設計的應用程式填寫就好, 正式發布前都能夠修改.


到此已經簡單建立好應用程式了, 我們稍後在來設定 Google Play 遊戲服務. 先回到 Unity 專案設定 Android 發布參數.
Unity 專案 Android 平台設定
想要發布 APK 測試, 先切換專案為 Android 平台才能製作 APK.

切換需要等待一段時間… 轉換完成後我們到 PlayerSettings 打開 Other Settings 設定 Package Name, 它由 Company Name, Product Name 組成 = com.[Company Name].[Product Name]
Version 代表應用程式版本號, 專門為開發設計的, 格式常用 [大版號].[小版號].[微調版號]
Bundle Version Code 不同於 Version 定義, Bundle Version 是用於上架 Google Play 平台辨識上架版本 (包含內部測試版), 所以 Bundle Version 不能重複, 這點要注意. 不過我們還在測試功能階段還未有上架需求暫時不須理會它, 設定 1 即可.
Scriptomg Backend 可以先改成 IL2CPP, 這讓 Build 出來的應用程式能運行在 x84 或 x64 機器上, 尤其現在上架 Google Play 都要求支援 64- bits Build.
設定 IL2CPP 後 Target Architectures 也要添加 ARM64 機器類型.

另位, 也可以於最上方統一設定專案的 Company Name, Product Name, 以及 Version.

PS. 記得安裝 Android Build 必要的 Android SDK 與 NDK. 由於先前安裝 Unity 並非透過 Unity Hub, 所以 SDK 與 NDK 另外安裝後要自行設定路徑 (Preference > External Tools).

Unity 生成 Keystore (Keysotre 是甚麼?)
開發 Android 應用程式時, 都被要求製作 Keystore, 它代表著該應用程式是屬於某開發者的產物, 也可以想成上架證書. 因此, 生成 Keystore 時會輸入開發者的姓名, 組織, 所在地, 有效日期…等.
PlayerSettings 打開 Publishing Settings, 點選 Keystore Manager…

創建一個 Keystore

設定好 Keystore 存放位置, 密碼. 再來是新增一組 Key, 設定別名, 密碼. 有效日期, 組織, 所在地… 等開發者訊息.

一個 Keystore 可以存放很多組 Key, 每組都有自己的信息, 可以通過別名區分來存取. 開發者通常擁有多個開發專案, 根據 Key 別名區分專案, 而使用 Keystore 統一管理. 所以, 對每個專案而言, 開發者使用的是 Key 非 Keystore.


建立好的 Key 憑證, 後續申請 Google Play 遊戲服務會用到, 好好保留 Keystore 檔案與記住 Key 別名唷.
前置動作到這裡差不多 (伸懶腰~), 也許還會根據專案需求微調, 這邊暫時不討論. 下一篇我們就能動手來串接 Google Play 遊戲服務了! (好興奮好雀躍!?)
同系列文章:
希望能幫到更多在這議題上困擾的人, 如有任何疑慮錯誤, 也歡迎在下方留言~
為什麼app上架到play商店後就不能用google play登入了,同樣的apk,直接安裝就可以登入,在play商店下載就不能登入,這是我第一次在unity使用google遊戲服務還很不熟
讚讚
你好, 謝謝你提供這樣的資訊. 商店下載應該不至於不能使用play服務, 這部分我還要找時間測試下, 或是建議你可以使用工具(android studio)查看log唷~
讚讚
我發現在google play console的App Bundle 探索器->下載->資產裡面有分原始檔案跟分發檔案,我用原始檔案安裝可以登入,用分發檔案安裝就不能登入了
讚讚
App Bundle 阿… 這塊我確實沒研究過. 不過如果你的 apk 本身是可以使用的, 那很有可能是打包成 App Bundle 時包入的硬體相關模組(arm64, v7之類的)沒有包含到下載分發檔案的手機硬體規格, 我基本上是全規格勾選.
要是真的不行也只能先用apk上架, 目前google play 還沒硬性規定要用 App Bundle (今年底會強制)
可以參考看看這篇的做法試試. https://blog.csdn.net/CrazyApp/article/details/98957409
讚讚
我試著照他做,上傳app Bundle,結果還是一樣
我附上可登入(上傳的原始apk檔案),無法登入(上架play商店的分發檔案)
的影片給你看
可以登入:https://youtu.be/2sB6NjGTYyM
無法登入:https://youtu.be/a6slctYyQRY
現在google好像都是用分發檔案(無法登入)上架,沒辦法用原始檔案qq
不知道問題出在哪裡才導致分發檔案無法登入
最後還是很謝謝你回覆我
讚讚
https://forum.unity.com/threads/google-play-services-not-working.485322/
問體解決了,我是看這篇文章解決的,原來是sha1密鑰證書的問題,設置oauth憑據的密鑰證書不能用自己檔案的密鑰證書(在google play console的應用->設置->應用完整性->上傳密鑰證書sha1),上架到play商店後要用google plat console的應用->設置->應用完整性->應用密鑰證書
讚讚