** Ich möchte die schwierigen Dinge so weit wie möglich der Maschine überlassen. ** ** **
Um die iOS-App zu aktualisieren, muss natürlich auch der Inhalt des Updates aktualisiert werden.
Bisher habe ich den App-Wortlaut, den der Betreiber in die Google-Tabelle eingegeben hat, nacheinander kopiert und in den App Store Connect eingefügt.
Gelegentlich gibt es kein Problem, aber mit zunehmender Anzahl wird es schwierig. Ich möchte automatisieren und es einfacher machen. Ich möchte es einfacher machen. Es war einfach!
Es hat also funktioniert. ** Ich werde eine Prozedur schreiben, um die Aktualisierung der App Store-Beschreibung mithilfe von Google Spreadsheet und Fastlane zu automatisieren. ** ** **
Dieses Mal werde ich es als Beispiel dafür schreiben, wie der Wortlaut des App Store mit diesem Inhalt aus der Tabelle abgerufen wird.
Blätter nach Sprache trennen (Blattnamen sind "ja" für Japanisch und "en-US" für Englisch)
Japanisch
App Name | Untertitel | Beförderung | Einzelheiten | Inhalt aktualisieren | Stichwort |
---|---|---|---|---|---|
Vollautomatisches Schultermassagegerät | Bitte verbessern Sie die Durchblutung | Bitte benutzen Sie es. | Dies ist eine sehr gesunde App. | Kleinere Korrekturen vorgenommen | Vollautomatisch, Massine |
Englisch
App Name | Untertitel | Beförderung | Einzelheiten | Inhalt aktualisieren | Stichwort |
---|---|---|---|---|---|
Full Auto Shoulder massager | Please improve blood flow. | Please use it. | It's a very healthy app. | bugfix | Full Auto、 Let's |
Sie müssen auf "Google Drive API" und "Google SpreadSheet API" klicken, um den Wortlaut aus der Google-Tabelle zu erhalten.
Um diese APIs von CI aus zu erreichen, müssen Sie ein Dienstkonto bei GCP erstellen.
Gehen Sie zu Google Cloud Platform und erstellen Sie ein Projekt.
Gehen Sie zu APIs & Services> Anmeldeinformationen, klicken Sie auf Anmeldeinformationen erstellen und dann auf Dienstkonto.
Geben Sie Ihren Namen, Ihre ID und die Beschreibung Ihres Dienstkontos ein und klicken Sie auf die Schaltfläche Erstellen.
Bestimmen Sie die Berechtigungen des Dienstkontos. Dieses Mal möchte ich die Google-Tabelle laden. Fragen Sie den Betrachter (wählen Sie die entsprechenden Berechtigungen rechtzeitig aus) und klicken Sie auf die Schaltfläche Weiter.
Klicken Sie auf die Schaltfläche Fertig stellen.
Der Spalte Dienstkonto wurde ein neues Element hinzugefügt. Klicken.
Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
Ein Dialogfeld wie dieses wird angezeigt. Geben Sie JSON an und klicken Sie auf Erstellen. ** Benennen Sie die gespeicherte JSON-Datei in config.json um. ** ** **
Suchen Sie anschließend unter API Services> API Library nach "Google Drive API" und "Google Spreadsheet API", aktivieren Sie jede API, und die Einstellung ist abgeschlossen.
Sie können es in das Fastfile schreiben, aber um das Fastfile nicht aufzublähen, erstellen Sie Ihre eigene Aktion und teilen Sie die Verarbeitung auf.
Drücken Sie den folgenden Befehl.
bundle exec fastlane new action
Sie werden nach einem Namen gefragt, raten Sie also einen geeigneten Namen. Soll ich ** Metadaten ** sagen?
[20:28:11]: Name of your action: metadata
Eine Datei mit dem Namen "fastlane / action / metadata.rb" wird generiert.
Verwenden Sie das Juwel google-drive-ruby, um die Google-Tabelle zu laden.
Fügen Sie dem Gemfile
Folgendes hinzu:
gem "google_drive"
Installation.
bundle install
Fügen Sie den von Google Cloud Platform generierten Dienstkontoschlüssel (config.json) in "fastlane / action /" ein (Hier springen, wenn Sie den Dienstkontoschlüssel nicht eingeben möchten / items / 0f15157e93b8b9339656 # 7-fastlane-plugin und veröffentlicht))
Fügen Sie am Anfang von fastlane / action / metadata.rb
Folgendes hinzu.
require "google_drive"
Schreiben Sie den folgenden Code in "self.run (params)". Geben Sie den Inhalt der am Anfang geschriebenen Tabelle als die folgenden Konstanten an.
--LANGUAGES gibt den Blattnamen an --COLUMNS gibt den Fastlane-Textdateinamen für jedes Element von links an (Siehe Lieferung für jeden Textdateinamen)
LANGUAGES = ["ja", "en-US"]
COLUMNS = ["name", "subtitle", "promotional_text", "description", "release_notes", "keywords"]
Laden Sie die Tabelle und geben Sie den Pfad der Dienstkontoschlüsseldatei und die Tabellenkalkulations-ID an.
session = GoogleDrive::Session.from_config("config.json")
spreadsheet = session.spreadsheet_by_key("Tabellenkalkulations-ID")
Sie müssen lediglich den Text für jede Spalte aus der letzten Zeile des Blattes für jede Sprache abrufen und in jeder Textdatei speichern.
LANGUAGES.each do |language|
spreadsheet.worksheet_by_title(language).rows.last.each_with_index do |text, i|
File.open("#{FastlaneCore::FastlaneFolder.path}metadata/#{language}/#{COLUMNS[i]}.txt", mode = "wb") do |f| f.write(text) end
end
end
require "google_drive"
module Fastlane
module Actions
class MetadataAction < Action
def self.run(params)
LANGUAGES = ["ja", "en-US"]
COLUMNS = ["name", "subtitle", "promotional_text", "description", "release_notes", "keywords"]
session = GoogleDrive::Session.from_config("config.json")
spreadsheet = session.spreadsheet_by_key("Tabellenkalkulations-ID")
LANGUAGES.each do |language|
spreadsheet.worksheet_by_title(language).rows.last.each_with_index do |text, i|
File.open("#{FastlaneCore::FastlaneFolder.path}metadata/#{language}/#{COLUMNS[i]}.txt", mode = "wb") do |f| f.write(text) end
end
end
end
def self.description
"A short description with <= 80 characters of what this action does"
end
def self.details
"You can use this action to do cool things..."
end
def self.available_options
[]
end
def self.authors
["Your GitHub/Twitter Name"]
end
def self.is_supported?(platform)
platform == :ios
end
end
end
end
Wenn Sie danach Metadaten in Fastfile ausführen, werden die aus der Google-Tabelle gelesenen Elemente in jeder Textdatei gespeichert.
Führen Sie dann "liefern (skip_metadata: false)" aus, um die App Store-Beschreibung zu aktualisieren.
lane :deploy_appstore do
metadata
deliver(skip_metadata: false)
end
Übrigens, wenn Sie eine Pull-Anfrage stellen, wenn ein Diff angezeigt wird, wird dies empfohlen, da der Unterschied zwischen den vorherigen Versionen auf einen Blick offensichtlich ist.
Was ich bisher erklärt habe, habe ich mit dem Fastlane Plugin versucht.
Es gab andere Plug-Ins mit demselben Zweck, aber ** damit kann ich die Dienstkonto-Schlüsseldatei in einer Umgebungsvariablen angeben, da ich sie nicht in Git verwalten wollte. ** Wenn Sie in Spalten Name der Textdatei, die nicht zum Aktualisieren von Metadaten verwendet wird angeben, wird die dortige Spalte ignoriert. Ich bin.
Sie können es so verwenden.
fetch_metadata_from_google_sheets(
languages: ["ja", "en-US"],
columns: ["version", "name", "subtitle", "release_notes", "promotional_text", "description", "keywords"],
spreadsheet_id: ENV["TEST_APP_STORE_METADATA_SPREADSHEET_ID"],
project_id: ENV["TEST_GCP_PROJECT_ID"],
service_account_private_key_id: ENV["TEST_GCP_SERVICE_ACCOUNT_PRIVATE_KEY_ID"],
service_account_private_key: ENV["TEST_GCP_SERVICE_ACCOUNT_PRIVATE_KEY"],
service_account_client_email: ENV["TEST_GCP_SERVICE_ACCOUNT_CLIENT_EMAIL"],
service_account_client_id: ENV["TEST_GCP_SERVICE_ACCOUNT_CLIENT_ID"],
service_account_auth_uri: ENV["TEST_GCP_SERVICE_ACCOUNT_AUTH_URI"],
service_account_token_uri: ENV["TEST_GCP_SERVICE_ACCOUNT_TOKEN_URI"],
service_account_auth_provider_x509_cert_url: ENV["TEST_GCP_SERVICE_ACCOUNT_AUTH_PROVIDER_X509_CERT_URL"],
service_account_client_x509_cert_url: ENV["TEST_GCP_SERVICE_ACCOUNT_CLIENT_X509_CERT_URL"]
)
Einzelheiten entnehmen Sie bitte den folgenden Ribodigries.
kurarararara/fastlane-plugin-fetch_metadata_from_google_sheets https://github.com/kurarararara/fastlane-plugin-fetch_metadata_from_google_sheets
Bis jetzt war ich verwirrt darüber, jedes Mal Fehler zu machen, wenn ich kopierte und einfügte, aber nach dem automatischen Update machte ich keine Fehler und es wurde viel einfacher.
Wenn Sie Probleme haben, versuchen Sie es bitte.
Bitte lesen Sie auch diesen Artikel.
Recommended Posts