設定授權

您必須先設定 Google Play 發布帳戶、開發環境以及驗證實作方式所需的任何測試帳戶,才能在應用程式中新增授權驗證。

設定發布者帳戶

如果您還沒有 Google Play 發布者帳戶,必須使用您的 Google 帳戶註冊一個,並同意 Google Play 服務條款。

詳情請參閱開始使用發布功能相關說明。

如果您已經擁有 Google Play 發布者帳戶,請使用 Play 管理中心設定授權功能。

您可以透過 Google Play 管理中心執行以下操作:

  • 取得應用程式專用的授權公開金鑰
  • 在發布應用程式之前,偵錯並測試應用程式的授權實作方式
  • 發布已加上授權支援的應用程式

授權的管理設定

您可以在 Play 管理中心管理 Google Play 授權的多個管理控制項。您可以使用控制項執行下列操作:

  • 建立多個「測試帳戶」識別。授權伺服器可讓使用者在裝置或模擬器上登入測試帳戶,傳送授權檢查並接收靜態的測試回應。您可以前往 Play 管理中心的「帳戶詳細資料」頁面設定帳戶。
  • 設定伺服器在收到 從使用者上傳到發布商帳戶的應用程式的授權檢查 登入發布者帳戶或測試帳戶您可以在 Play 管理中心的「帳戶詳細資料」頁面中設定測試回應。
  • 取得應用程式用來授權的公開金鑰在應用程式中實作授權時,必須將公開金鑰字串複製到應用程式中。您可以在「服務」中取得應用程式的授權公開金鑰 和在「所有應用程式」下方。

圖 1.從 Play 管理中心的「服務和 API」頁面可取得應用程式的授權金鑰。

若要進一步瞭解如何使用測試帳戶和靜態測試回應,請參閱下方的設定測試環境

設定開發環境

設定授權環境時,必須完成以下工作:

  1. 為開發工作設定執行階段環境
  2. 下載 LVL 至 SDK
  3. 設定授權驗證庫
  4. 在應用程式中納入 LVL 程式庫專案

下列章節將詳細說明這些工作。完成設定後,您可以開始新增授權至您的應用程式

首先,您必須設定適當的執行階段環境,以便執行、偵錯並測試應用程序在授權檢查和强制執行上的實作。

設定執行階段環境

如前所述,應用程式檢查授權狀態時,不會直接與授權伺服器通訊,而是會與 Google Play 應用程式提供的服務繫結並啟動一項授權檢查要求。接著 Google Play 服務會處理與授權伺服器之間的直接通訊,最後再將回應轉送至您的應用程式。若要偵錯並測試應用程式中的授權,您必須設定包含必要 Google Play 服務的執行階段環境,讓應用程式能夠將授權檢查要求傳送給授權伺服器。

您可以使用以下兩種執行階段環境:

  • 含有 Google Play 應用程式的 Android 裝置,或
  • 執行 Google API 外掛程式、API 級別為 8(第 2 版)或更高級別的 Android 模擬器

在裝置上執行

若要使用搭載 Android 的裝置偵錯和測試授權,裝置必須符合以下條件:

  • 執行與 Android 1.5 或更高版本(API 級別 3 或更高級別)的平台相容的版本,以及
  • 執行預先安裝 Google Play 用戶端應用程式的系統映像檔。

如果系統映像檔並未預先安裝 Google Play,應用程式就無法與 Google Play 授權伺服器通訊。

如需瞭解如何設定裝置以用於 Android 應用程式的開發,請參閱使用硬體裝置相關說明。

在 Android 模擬器上執行

如果您沒有可用的裝置,可以使用 Android 模擬器來偵錯及測試授權。

由於 Android SDK 中提供的 Android 平台會 不包含 Google Play,您需下載 Google API 外掛程式。 平台、API 級別 8 以上)下載外掛程式之後,您必須建立使用該系統映像檔的 AVD 設定。

Google API 外掛程式不含完整的 Google Play 用戶端。不過,它提供以下服務:

  • Google Play 背景服務,用於實作 ILicensingService 遠端介面,讓應用程式可透過網路傳送授權檢查至授權伺服器。
  • 一組基礎帳戶服務,可讓您在以下位置新增 Google 帳戶: ,然後使用發布者帳戶或測試帳戶憑證登入。

    使用發布者帳戶或測試帳戶登入時,您無須發布應用程式即可對其進行偵錯和測試。詳情請參閱下方的「登入授權帳戶」。

SDK Manager 提供多個版本的 Google API 外掛程式,但只有 Android 2.2 及更高版本含有必要的 Google Play 服務。

請按照下列步驟操作設定模擬器,將授權新增至應用程式:

  1. 啟動 Android Studio「Tools」(工具)選單下方的 Android SDK Manager(依序選取「Tools」(工具)>「Android」>「SDK Manager」),或執行 <sdk>/tools/android sdk
  2. 針對鎖定的 Android 版本選取並下載 Google API(必須為 Android 2.2 版或更高版本)。
  3. 下載完成後,開啟 Android Studio「Tools」(工具)選單下方的 AVD Manager(依序選取「Tools」(工具)>「Android」>「AVD Manager」),或執行 <sdk>/tools/android avd
  4. 在「Android Virtual Device Manager」視窗中,選取 按下「+ Create Virtual Device」,設定新 AVD 的設定詳細資料。
  5. 在「Virtual Device Configuration」視窗中選取裝置硬體,然後選取「Next」
  6. 選取一個 Google API 做為要在新 AVD 上執行的系統映像檔,然後選取「Next」
  7. 為 AVD 指定一個具描述性的名稱,並視需要設定其他設定詳細資料。
  8. 選取「Finish」建立新的 AVD 設定,該設定會顯示在可用的 Android 虛擬裝置清單中。

如果您不熟悉 AVD 或其使用方式,請參閱管理虛擬裝置相關說明。

更新專案設定

設定符合上述要求的執行階段環境之後 無論是在實體裝置或模擬器上,請務必 視需要更新應用程式專案或建構指令碼,以便編譯 系統會將使用授權的 .apk 個檔案部署至該環境中。 特別是在 Android Studio 中開發時,請務必設定以適當裝置或 AVD 為目標的執行/偵錯設定。

您不需要對應用程式的 建構設定,前提是專案已設定為編譯 針對標準 Android 1.5 (API 級別 3) 以上版本程式庫。新增授權至應用程式不應對應用程式的建構設定產生任何影響。

下載 LVL

授權驗證庫 (LVL) 是協助類別的組合,可大幅簡化新增授權至應用程式的工作。無論是哪種情況,我們都建議您下載 LVL,以 對應用程式的授權實作加以基準。

授權驗證庫 (LVL) 是在 GitHub 中開發。您可以複製 LVL 存放區,並將其設為程式庫專案。在指令列中輸入以下指令來複製存放區:

git clone https://github.com/google/play-licensing

存放區包含以下項目:

  • 儲存在 Android 程式庫專案中的 LVL 原始檔。
  • 一個使用 LVL 程式庫專案且名爲「sample」的範例應用程式。該範例說明了應用程式如何運用程式庫輔助類別來檢查並强制執行授權。

設定授權驗證庫

將 LVL 下載到電腦後,您必須在開發環境中將其設定為 Android 程式庫專案,或是將程式庫原始檔直接複製(或匯入)到現有的應用程式套件中。一般而言,建議使用 LVL 做為程式庫專案 因為您可以在多個應用程式中重複使用授權程式碼 長期下來能更輕鬆地維護請注意,LVL 的設計宗旨並非 並且以靜態 .jar 檔案的形式新增至應用程式。

使用 LVL 時,建議的做法是將其設定為新的 Android程式庫專案。程式庫專案是一種開發專案,會保留共用的 Android 原始碼和資源。其他 Android 應用程式專案可以參照程式庫專案,建構時將其編譯來源包含在 .apk 檔案中。就授權而言 換句話說,您只需在程式庫中一次完成大部分的授權開發工作 ,然後在各個應用程式專案中納入程式庫原始碼。 這麼一來,您就可以輕鬆地在所有專案中以一致的方式執行並集中管理授權。如果您不熟悉程式庫專案或使用方式,請參閱管理專案

LVL 是以設定好的程式庫專案形式提供,下載後即可開始使用。

如果您使用的是 Android Studio,則必須將 LVL 新增至 做為新模組

  1. 使用「從來源匯入模組」視窗匯入程式庫模組 檔案 >新增 >匯入模組
  2. 在「Import Module from Source」視窗的「Source directory」中,輸入 LVL 的 library 目錄 (包含程式庫 AndroidManifest.xml 檔案的目錄) 做為專案根目錄 (<sdk>/extras/google/play_licensing/library/AndroidManifest.xml), 然後選取「下一步」
  3. 選取「Finish」即可匯入程式庫模組。

如要進一步瞭解如何在 Android Studio 中使用程式庫模組,請參閱建立 Android 程式庫

在應用程式中包含 LVL 程式庫專案原始檔

若要使用 LVL 原始檔做為程式庫專案,您必須在應用程式專案屬性中新增 LVL 程式庫專案的參照。這會告知建構工具在編譯時將 LVL 程式庫專案原始檔納入應用程式。新增程式庫專案參照的程序取決於您的開發環境,內容敘述如下。

如果您使用 Android Studio 進行開發,應該已經新增 如上一節所述,將程式庫模組新增至專案。如果尚未完成這項操作,請立即執行再繼續執行其他操作。

如果您使用 SDK 指令列工具執行開發作業,請前往包含應用程式專案的目錄,然後開啟 project.properties 檔案。在檔案中新增一行,指定 android.library.reference.<n> 金鑰及程式庫的路徑。例如:

android.library.reference.1=path/to/library_project

或者,您可以使用這個指令來更新專案屬性,包括程式庫專案的參照:

android update lib-project
--target <target_ID> \
--path path/to/my/app_project \
--library path/to/my/library_project

若要進一步瞭解如何使用程式庫專案,請參閱設定程式庫專案

設定測試環境

Google Play 管理中心提供的設定工具可讓您和其他使用者在發布前先測試應用程式的授權。實作授權時,您可以使用 Play 管理中心工具測試應用程式的政策,並處理不同的授權回應和錯誤狀況。

授權測試環境的主要元件包括:

  • 「測試回應」正確設定 設定當伺服器處理 從使用者上傳到發布商帳戶的應用程式的授權檢查 登入發布者帳戶或測試帳戶
  • 一組選擇性的測試帳戶,該帳戶在檢查您上傳的應用程式的授權時會收到靜態測試回應(無論該應用程式是否已發布)。
  • 包含 Google Play 的應用程式執行階段環境 或 Google API 外掛程式 應用程式或 Google API 外掛程式時 或是其中一個測試帳戶

如要正確設定測試環境,須執行下列操作:

  1. 設定由授權伺服器傳回的靜態測試回應
  2. 視需要設定測試帳戶
  3. 先正確登入模擬器或裝置,再啟動授權檢查測試。

以下各節會提供詳細資訊。

設定授權檢查的測試回應

Google Play 在發布者帳戶中提供一項設定,您可以用來覆寫授權檢查的一般處理作業,並傳回指定的靜態回應代碼。這項設定僅供測試, 「才能」用於由您上傳、由 任何使用 發布者帳戶或註冊的測試帳戶對於其他使用者,伺服器一律按照一般規則處理授權檢查。

若要為帳戶設定測試回應,請登入您的發布者帳戶,然後按一下「編輯個人檔案」。在「編輯個人檔案」頁面中,找到「授權」面板中的「測試回應」選單,如下所示。您可以從一組完整的有效伺服器回應代碼進行選取,藉此控制您要在應用程式中測試的回應或條件。

一般而言,您必須確保應用程式的授權測試 。 如需代碼相關說明,請參閱授權參考資料中的伺服器回應代碼部分。

圖 2. 授權測試 可使用「帳戶詳細資料」頁面上的面板設定測試帳戶 管理測試回應

請注意,您設定的測試回應會套用至整個帳戶。 也就是說,適用於單一應用程式,而非單一應用程式; 與發布者帳戶相關聯的應用程式如果您測試多種 變更測試回應就會影響所有這些應用程式 並全面進行授權檢查 (如果使用者已登入 模擬器或裝置)。

您必須先登入已安裝應用程式並且可用於查詢伺服器的裝置或模擬器,才能成功接收授權檢查的測試回應。亦即您必須使用發布者帳戶或您所設定的其中一個測試帳戶登入。如要進一步瞭解測試帳戶,請參閱下一節的說明。

請參閱伺服器回應代碼查看可用的測試回應及其含義列表。

設定測試帳戶

在某些情況下,您可能想要讓多個開發人員團隊進行測試 最終會透過 發布商帳戶,但不授予他們存取您發布者帳戶的 登入憑證為了滿足這方面的需求,Google Play 管理中心可讓您 您可以設定一或多個選用的測試帳戶,也就是 已授權查詢授權伺服器,並接收來自 發布商帳戶

測試帳戶是您註冊自己的標準 Google 帳戶 發布者帳戶,以便他們收到測試回應 已上傳的應用程式。於是開發人員可以使用測試帳戶憑證登入裝置或模擬器,並從已安裝的應用程式啟動授權檢查。授權伺服器收到測試帳戶使用者的授權檢查時,會傳回針對發布者帳戶所設定的靜態測試回應。

因此,透過測試帳戶登入的使用者的存取權和權限必定會有所限制,包括:

  • 測試帳戶使用者只能向授權伺服器查詢已上傳至發布者帳戶的應用程式。
  • 測試帳戶使用者沒有權限將應用程式上傳到您的發布者帳戶。
  • 測試帳戶使用者沒有權限設定發布者帳戶的靜態測試回應。

下表匯總了發布者帳戶、測試帳戶及任何其他帳戶在功能方面的差異。

表 1. 用於測試授權的帳戶類型差異。

帳戶類型 是否可以在上傳之前檢查授權? 是否可以接收測試回應? 是否可以設定測試回應?
發布者帳戶 可轉移
測試帳戶
其他 不可以

在發布者帳戶中註冊測試帳戶

首先您必須在發布者帳戶中註冊各個測試帳戶。如圖 2 所示,您是由發布者帳戶的「編輯個人檔案」頁面的「授權」面板中註冊測試帳戶。只要使用以逗號分隔的清單輸入多個帳戶,然後按一下「儲存」,即可儲存個人檔案變更。

任何 Google 帳戶都可做為測試帳戶。如果您想擁有並控制測試帳戶,可以自行建立帳戶,並將帳號登入資料發給開發人員或測試人員。

為測試帳戶使用者處理應用程式的上傳與發布

如前所述,測試帳戶的使用者只可接收已上傳至發布者帳戶的應用程式的靜態測試回應。開始時間 這些使用者沒有上傳應用程式的權限, 必須與這些使用者合作收集要上傳和發行的應用程式 上傳測試用的應用程式。您可以透過任何便捷的方式進行收集與發布作業。

應用程式上傳完成且為授權伺服器識別後, 開發人員和測試人員可以繼續在本機環境中修改應用程式 環境的開發。只有在本機應用程式增加資訊清單檔案中的 versionCode 屬性時,才必須上傳新版本。

將公開金鑰發布給測試帳戶使用者

授權伺服器會照常處理靜態測試回應,包括簽署授權回應資料、新增額外參數等。為透過測試帳戶實作授權的開發人員提供支援 而非發布者帳戶 應用程式的授權公開金鑰。開發人員無法存取 Play 管理中心在缺少應用程式公開金鑰的情況下,無法存取應用程式的公開金鑰 金鑰將無法驗證授權回應。

請注意,如果您決定為應用程式產生新的授權金鑰組 出於某些原因,您需要通知所有測試帳戶的使用者。對於測試人員,您可以將新金鑰嵌入應用程式套件中再發布給使用者。對於開發人員,您必須將新金鑰直接發布給他們。

在執行階段登入授權帳戶 環境

授權服務用於判斷特定使用者是否已授權使用特定的應用程式。在授權檢查期間,Google Play 應用程式會從系統的主要帳戶收集使用者 ID 並傳送至伺服器,同時還會傳送應用程式套件名稱和其他資訊。然而,如果沒有使用者資訊,授權檢查作業就會失敗,於是 Google Play 應用程式終止要求並向該應用程式傳回錯誤。

在測試過程中,請確保應用程式可以成功查詢 授權伺服器,請務必透過 裝置或模擬器

  • 發布者帳戶的憑證,或
  • 透過發布者帳戶註冊的測試帳戶的憑證

使用發布者帳戶登入的好處是讓您 應用程式就會收到靜態測試回應 上傳至 Play 管理中心

如果您隸屬於某個大型機構,或是與外部群組合作 將透過您的網站發布應用程式 並用這些帳戶登入 進行測試。

請依照下列步驟登入裝置或模擬器。建議使用 方法是以主要帳戶登入 裝置上或模擬器中正在使用的其他帳戶,您可以建立 ,然後使用發布商帳戶或測試帳戶登入 憑證

  1. 開啟「設定」>帳戶與同步處理
  2. 選取「新增帳戶」,然後選擇要新增 Google 帳戶。
  3. 選取「下一步」然後「登入」。
  4. 輸入發布者帳戶或測試的使用者名稱和密碼 帳戶。
  5. 選取「登入」。系統會將您登入新帳戶。

登入後,您可以開始在應用程式中測試授權(如果已完成上述 LVL 整合步驟)。應用程式啟動授權檢查時,會收到回應,其中包含在發布者帳戶中設定的靜態測試回應。

請注意,如果您使用的是模擬器,就必須登入 或是測試帳戶。 模擬器。

完成設定程序後,請繼續前往新增授權至您的應用程式