** Je veux laisser les choses difficiles à la machine autant que possible. ** **
Évidemment, pour mettre à jour l'application iOS, il est également nécessaire de mettre à jour le contenu de la mise à jour.
Jusqu'à présent, j'avais l'habitude de copier et coller le libellé de l'application que l'opérateur avait entré dans la feuille de calcul Google dans l'App Store Connect un par un.
Parfois, il n'y a pas de problème, mais à mesure que le nombre augmente, cela devient difficile. Je veux automatiser et faciliter les choses. Je veux faciliter les choses. C'était facile!
Donc, cela a fonctionné, ** Je vais écrire une procédure pour automatiser la mise à jour de la description de l'App Store à l'aide de Google Spreadsheet et Fastlane. ** **
Cette fois, je vais l'écrire comme exemple pour obtenir le libellé de l'App Store à partir de la feuille de calcul avec ce contenu.
Feuilles séparées par langue (les noms de feuille sont "ja" pour le japonais et "en-US" pour l'anglais)
Japonais
nom de l'application | Sous-titre | promotion | Détails | Mettre à jour le contenu | mot-clé |
---|---|---|---|---|---|
Masseur d'épaule entièrement automatique | Veuillez améliorer la circulation sanguine | Veuillez l'utiliser. | Ceci est une application très saine. | Des corrections mineures ont été apportées | Entièrement automatique, Massine |
Anglais
nom de l'application | Sous-titre | promotion | Détails | Mettre à jour le contenu | mot-clé |
---|---|---|---|---|---|
Full Auto Shoulder massager | Please improve blood flow. | Please use it. | It's a very healthy app. | bugfix | Full Auto、 Let's |
Vous devez cliquer sur "Google Drive API" et "Google SpreadSheet API" pour obtenir le libellé de la feuille de calcul Google.
Et pour accéder à ces API à partir de CI, vous devez créer un compte de service avec GCP.
Accédez à Google Cloud Platform et créez un projet.
Accédez à API et services> Informations d'identification, cliquez sur Créer des informations d'identification, puis sur Compte de service.
Remplissez votre nom, votre identifiant et la description de votre compte de service et cliquez sur le bouton Créer.
Déterminez les autorisations du compte de service. Cette fois, je veux charger la feuille de calcul Google, alors demandez au spectateur (choisissez les autorisations appropriées en temps opportun) et cliquez sur le bouton Continuer.
Cliquez sur le bouton Terminer.
Un nouvel élément a été ajouté à la colonne du compte de service. Cliquez sur.
Cliquez sur Ajouter une clé, puis sur Créer une nouvelle clé.
Une boîte de dialogue comme celle-ci apparaîtra. Spécifiez JSON et cliquez sur Créer. ** Renommez le fichier JSON enregistré en config.json. ** **
Ensuite, recherchez «API Google Drive» et «API Google Spreadsheet» dans Services API> Bibliothèque d'API, et activez chaque API pour terminer le paramètre.
Vous pouvez l'écrire dans le Fastfile, mais afin de ne pas surcharger le Fastfile, créez votre propre Action et divisez le traitement.
Appuyez sur la commande suivante.
bundle exec fastlane new action
On vous demandera un nom, alors devinez un nom approprié. Dois-je dire ** métadonnées **?
[20:28:11]: Name of your action: metadata
Un fichier appelé fastlane / action / metadata.rb
sera généré.
Utilisez le gem google-drive-ruby pour charger la feuille de calcul Google.
Ajoutez ce qui suit au Gemfile
:
gem "google_drive"
Installation.
bundle install
Placez la clé de compte de service (config.json) générée par Google Cloud Platform dans fastlane / action /
(Allez ici si vous ne voulez pas mettre la clé de compte de service / items / 0f15157e93b8b9339656 # 7-fastlane-plugin et publié))
Ajoutez ce qui suit au début de fastlane / action / metadata.rb
.
require "google_drive"
Écrivez le code suivant dans self.run (params)
.
Spécifiez le contenu de la feuille de calcul écrite au début comme les constantes suivantes.
--LANGUAGES spécifie le nom de la feuille --COLUMNS spécifie le nom du fichier texte Fastlane pour chaque élément à partir de la gauche (Reportez-vous à la livraison pour chaque nom de fichier texte)
LANGUAGES = ["ja", "en-US"]
COLUMNS = ["name", "subtitle", "promotional_text", "description", "release_notes", "keywords"]
Chargez la feuille de calcul, en spécifiant le chemin du fichier de clé du compte de service et l'ID de la feuille de calcul.
session = GoogleDrive::Session.from_config("config.json")
spreadsheet = session.spreadsheet_by_key("ID de la feuille de calcul")
Tout ce que vous avez à faire est d'extraire le texte de chaque colonne de la dernière ligne de la feuille pour chaque langue et de l'enregistrer dans chaque fichier texte.
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("ID de la feuille de calcul")
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
Après cela, si vous exécutez des métadonnées sur Fastfile, les éléments lus à partir de la feuille de calcul Google seront enregistrés dans chaque fichier texte.
Exécutez ensuite delivery (skip_metadata: false)
pour mettre à jour la description de l'App Store.
lane :deploy_appstore do
metadata
deliver(skip_metadata: false)
end
D'ailleurs, si vous faites une pull request lorsqu'un diff apparaît, c'est recommandé car la différence entre les versions précédentes sera évidente en un coup d'œil.
Ce que j'ai expliqué jusqu'à présent, j'ai essayé Fastlane Plugin.
Il y avait d'autres plug-ins avec le même objectif, mais ** cela me permet de spécifier le fichier de clé du compte de service dans une variable d'environnement car je ne voulais pas le gérer dans Git. ** De plus, si vous spécifiez le nom du fichier texte qui n'est pas utilisé pour la mise à jour des métadonnées dans les colonnes, la colonne y sera ignorée. Je suis.
Vous pouvez l'utiliser comme ça.
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"]
)
Pour plus de détails, veuillez vous référer aux ribodigries suivants.
kurarararara/fastlane-plugin-fetch_metadata_from_google_sheets https://github.com/kurarararara/fastlane-plugin-fetch_metadata_from_google_sheets
Jusqu'à présent, je n'étais pas sûr de faire des erreurs à chaque fois que je copiais et collais, mais après la mise à jour automatique, je n'ai fait aucune erreur et c'est devenu beaucoup plus facile.
Si vous rencontrez des problèmes, essayez-le.
Veuillez également lire cet article.
Recommended Posts