日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

原文地址:Publishing private Apps just got easier
原文作者:Jon Markoff
譯文出自:掘金翻譯計劃
本文永久鏈接:github.com/xitu/gold-m…
譯者:Qiuk17
校對者:PeachChou, xiaxiayang


來自插圖 Virginia Poltrack

不論你的團隊擁有 5 個還是 100 個 App,你總能找到幫你管理 Play Store 列表的自動化工具。google Play 允許你通過其開發者 API 來管理你的 Play Store 列表、打包好的 APK 等。2017 年 1 月的時候,Google 從 Twitter 收購了名為 Fabric 的開發者套件,其中包含了可以自動化截圖、管理測試版部署、簽名并將 App 推送到 Play Store 的 fastlane。

除此之外,私有 App 發布 API 允許擁有管理權限的 Google Play 用戶在跳過 最低版本檢查 的情況下創建并發布私有的 App。Managed Google Play 是為企業版 Android 用戶提供私有應用程序支持的應用商店。私有 App 只會被分發給內部用戶而不會被大眾獲取。私有 App 的部署可以在被創建后的幾分鐘內完成。Jan Piotrowski 向 fastlane 提出的這個 pull request,讓零代碼部署 App 成為可能。對此特性的請求歷史可以在 這里 看到。如果想要更多了解 Managed Google Play 和 Google Play 項目,請看看這篇 博客。

這為什么很重要:私有 App 發布 API 或者 fastlane 大大簡化了遷移到 Managed Google Play 的流程,并且可以方便地被集成到 CI 工具中。

配置私有 App 功能

重要:在創建用于調試或產品的 keystore 時,請確保使用最佳的 app 簽名方式。千萬別丟失您用于生產的 keystore!因為一旦你將它應用于 Google Play 上的某一個 App ID(包括私有 App),你將永遠不能在不創建新的應用程序列表及修改其 App ID 的情況下更換 keystore。
推薦:利用 Google Play App Signing 來為你的 APK 文件簽名。這是保管的 keystore 的一個好方法。你可以在 這里 看到此方法的細節。
重要:在 Google Play 上的所有 App(包括私有 App)必須具有一個唯一的且不可重用的 App ID。
在發布你的私有 App 之前,你只需要三步。
跟著這篇 指導說明 進行如下三步:

在 Cloud API 控制臺中啟用 Google Play 的 私有 App 發布 API;
創建一個服務賬戶,并下載其 JSON 格式的私鑰;
啟用私有 App 功能。

配置 fastlane

請閱讀這篇 文檔 來安裝 fastlane 。其中包含了 Managed Google Play 支持。

啟用私有 App — 獲取你的開發者賬戶 ID

這篇 指南 將告訴你如何創建一個需要通過 OAuth 回調來獲取開發者賬戶 ID 的私有 App。有兩種方法來啟用私有 App 功能:使用 fastlane 或者使用 API。下面將向你展示如何使用這兩種方法并比較其復雜程度:

使用 fastlane — 非常簡單

> fastlane run get_managed_play_store_publishing_rights

樣例輸出:


[13:20:46]: To obtain publishing rights for custom apps on Managed Play Store, open the following URL and log in:

[13:20:46]: https://play.google.com/apps/publish/delegatePrivateApp?service_account=SERVICE-ACCOUNT-EMAIL.iam.gserviceaccount.com&continueUrl=https://fastlane.github.io/managed_google_play-callback/callback.html

[13:20:46]: ([Cmd/Ctrl] + [Left click] lets you open this URL in many consoles/terminals/shells)

[13:20:46]: After successful login you will be redirected to a page which outputs some information that is required for usage of the `create_app_on_managed_play_store` action.

把這個鏈接粘貼到你的瀏覽器中你就可以向這個 Managed Google Play 的賬戶所有者發起授權請求了。

使用 API — 有點復雜

如果 你不打算為了管理你的 App 做一個基于 Web 的前端頁面,你可以使用下面的 node 腳本以及 Firebase 的功能來快速獲取你的開發者賬戶 ID。如果你不在意跳轉的 URL(continueUrl)的話,你可以把它設置成類似于 foo.bar 這樣的假 URL。但是出于安全的考慮,這么做是不被推薦的。
配置 Firebase 的云功能
這篇 指南 將告訴你怎樣去配置 Firebase 的云功能。下面的代碼可被用于你的終端。

const functions = require('firebase-functions');

exports.oauthcallback = functions.https.onRequest((request, response) => {
  response.send(request.query.developerAccount);
});
functions/index.js

創建私有 App 列表

使用 fastlane — 非常簡單

  ENV['SUPPLY_JSON_KEY'] = 'key.json'
  ENV['SUPPLY_DEVELOPER_ACCOUNT_ID'] = '111111111111000000000'
  ENV['SUPPLY_APP_TITLE'] = 'APP TITLE'
  desc "Create the private app on the Google Play store"
  lane :create_private_app do
      gradle(
        task: 'assemble',
        build_type: 'Release'
      )

      # Finds latest APK
      apk_path = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]

      create_app_on_managed_play_store(
        json_key: ENV['SUPPLY_JSON_KEY'],
        developer_account_id: ENV['SUPPLY_DEVELOPER_ACCOUNT_ID'],
        app_title: ENV['SUPPLY_APP_TITLE'],
        language: "en_US",
        apk: apk_path
      )
    end

樣例 Fastfile

> fastlane create_private_app

使用 API — 有點復雜

或許你應當先讀讀 API 文檔。Google 提供了 JAVA、Python、C# 和 Ruby 的用戶端庫文件。

API 樣例

下面這段 Ruby 代碼在使用 Google 服務賬戶 的 JSON 格式密鑰文件認證之后,通過調用 Play Custom App 服務創建了一個私有 App 并上傳了其第一版 APK 文件。這段代碼只應當在第一次創建 App 時使用,后續更新應使用 Google Play 的發布 API 中的上傳 APK 功能。

require "google/apis/playcustomapp_v1"

# Auth Info
KEYFILE = "KEYFILE.json" # PATH TO JSON KEYFILE
DEVELOPER_ACCOUNT = "DEVELOPER_ACCOUNT_ID" # DEVELOPER ACCOUNT ID

# App Info
APK_PATH = "FILE_NAME.apk" # PATH TO SIGNED APK WITH V1+V2 SIGNATURES
APP_TITLE = "APP TITLE"
LANGUAGE_CODE = "EN_US"

scope = "https://www.googleapis.com/auth/androidpublisher"
credentials = JSON.parse(File.open(KEYFILE, "rb").read)
authorization = Signet::OAuth2::Client.new(
 :token_credential_uri => "https://oauth2.googleapis.com/token",
 :audience => "https://oauth2.googleapis.com/token",
 :scope => scope,
 :issuer => credentials["client_id"],
 :signing_key => OpenSSL::PKey::RSA.new(credentials["private_key"], nil),
)
authorization.fetch_access_token!

custom_app = Google::Apis::PlaycustomappV1::CustomApp.new title: APP_TITLE, language_code: LANGUAGE_CODE
play_custom_apps = Google::Apis::PlaycustomappV1::PlaycustomappService.new
play_custom_apps.authorization = authorization

play_custom_apps.create_account_custom_app(
 DEVELOPER_ACCOUNT,
 custom_app,
 upload_source: APK_PATH,
) do |created_app, error|
 unless error.nil?
   puts "Error: #{error}"
 else
   puts "Success: #{created_app}."
 end
end

更新私有 App
創建 Play Store 列表之后,一旦你創建了一個私有 App,你就可以使用 Google Play 發布 API 來推送你的新 APK 文件。fastlane 支持這個功能。你可以在 這里 找到更多信息。
部署到用戶
Managed Google Play 需要 EMM (Enterprise Mobility Management)系統將 App 分發給用戶。了解更多請戳這里。
部署和管理企業私有 App 從未變得如此容易。這兩種使用 Managed Google Play 來部署 App 的方法都是可行的。使用哪一種取決于你的持續集成系統以及你是否想要寫代碼。試試 fastlane 吧,你會省下很多時間的。
如果你在使用 fastlane 的時候遇到任何問題或者 bug,請在 github 上給我們提 issue。

如果發現譯文存在錯誤或其他需要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改并 PR,也可獲得相應獎勵積分。文章開頭的 本文永久鏈接 即為本文在 GitHub 上的 MarkDown 鏈接。

作者:Android_開發者
鏈接:https://juejin.im/post/5cac855f6fb9a0689f4c0f44
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

分享到:
標簽:App
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定