Ă quelle frĂ©quence les dĂ©veloppeurs iOS doivent-ils crĂ©er une application Ă tĂ©lĂ©charger iTunes Connect App Store Connect ? Pendant la phase de test bĂȘta active de l'application, vous devez corriger rapidement les bogues et fournir un assemblage mis Ă jour pour les tests. Il est Ă©galement nĂ©cessaire de tĂ©lĂ©charger des certificats, des profils d'approvisionnement, de cliquer sur un grand nombre de cases Ă cocher et de boutons diffĂ©rents pour chaque nouvelle version.
Heureusement, il existe un outil aussi merveilleux que Fastlane qui nous aide à automatiser les actions manuelles d'un développeur mobile.
Dans cet article, je vous dirai ce qu'est Fastlane et comment commencer rapidement Ă l'utiliser dans vos projets iOS.
Présentation
Qu'est ce que c'est
Fastlane est un outil pour automatiser l'assemblage et la présentation des applications mobiles iOS et Android , qui comprend également la génération de captures d'écran , l'exécution de tests unitaires / d'interface utilisateur , l'envoi de messages à Slack , la connexion à Crashlytics et bien d'autres choses utiles qui facilitent la vie.
Quel est le profit?
Il ne faudra pas plus de deux heures pour configurer initialement les commandes de base pour automatiser le calcul de l'application, par exemple, pour la publication sur l'App Store ou sur TestFlight, cependant, cela vous fera gagner beaucoup de temps à l'avenir. l'ensemble du processus sera lancé en un seul appel à partir de la ligne de commande.
ATTENTION: Pour terminer toutes les étapes, un abonnement Apple Developer est requis, car l'accÚs à l'App Store Connect n'est pas disponible pour les comptes gratuits.
L'installation
Installer Fastlane lui-mĂȘme
Pour commencer, installez / mettez Ă niveau vers la derniĂšre version des outils de commande Xcode:
$ xcode-select --install
Installez gem fastlane:
$ sudo gem install fastlane -NV
Ajouter au projet
Dans le répertoire racine du projet, exécutez:
$ sudo fastlane init
Fastlane nous offrira des options pour les scripts pré-installés en fonction de ce que nous voulons:

Nous choisirons l'option 4, comme nous allons prescrire toutes les commandes nécessaires à notre situation:

C'est fait! Le dossier fastlane et le gemfile ont été installés avec succÚs dans notre projet.
Avant de continuer
Si le profil d' environnement local n'est pas UTF-8 , alors il y aura des problĂšmes avec la construction et le chargement des builds. Nous allons dans le fichier de votre profil shell ( ~ / .bashrc , ~ / .bash_profile , ~ / .profile ou ~ / .zshrc ) et ajoutons les lignes suivantes:
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
Vous ĂȘtes maintenant prĂȘt Ă Ă©crire les Ă©tapes immĂ©diates pour automatiser l'assemblage.
Comment ça marche
Tout d'abord, dĂ©couvrez ce que fait Fastlane: ses principales commandes et comment nous dĂ©crivons ce qui doit ĂȘtre fait.
Commandes (actions)
Fastlane est livré avec de nombreuses commandes utiles qui facilitent la vie du développeur:
- cert : télécharge et installe automatiquement les certificats nécessaires (Distribution, Développement) pour signer les applications collectées;
- increment_build_number : augmente le numéro de build de 1 ou modifie la valeur spécifiée dans le paramÚtre build_number
- soupir : télécharge et installe automatiquement tous les profils de mise à disposition nécessaires;
- instantanĂ© : exĂ©cute des tests d'interface utilisateur et prend des captures d'Ă©cran qui peuvent ĂȘtre utilisĂ©es lors de la soumission pour examen dans l'App Store;
- gym : recueille les archives et, ici, l'ipa finale de votre application;
- scan : tout est simple - lance une cible de test;
- livrer : envoie ipa, captures d'écran, métadonnées directement à l'App Store;
- pilote : tĂ©lĂ©charge une nouvelle ipa vers un test bĂȘta dans TestFlight. Vous pouvez Ă©galement gĂ©rer les testeurs avec cette commande.
- et bien d'autres
Fastfile
Le dossier fastlane contient Fastfile et Appfile . Dans l'Appfile, nous allons prescrire les valeurs nécessaires pour l'assemblage et la publication: ID de bundle, ID d'application, ID d'équipe et autres. Dans Fastfile, nous décrirons nos scripts. AprÚs l'installation initiale, cela ressemble à ceci:
default_platform(:ios) platform :ios do desc "Description of what the lane does" lane :custom_lane do # add actions here: https://docs.fastlane.tools/actions end end
- default_platform (: ios) - définissez la plate-forme par défaut afin de ne pas la spécifier depuis la ligne de commande.
- plate-forme: ios do ... end - les "voies" pour la plate-forme iOS sont décrites ici.
- desc "Description de ce que fait la voie" - une brĂšve description de "voie". La liste de toutes les "voies" avec des descriptions peut ĂȘtre consultĂ©e Ă l'aide de la
$ fastlane lanes
. - lane: custom_lane do ... end : Lane (path, strip) est, plus simplement, une méthode. Il a un nom, des paramÚtres et un corps. Dans le corps, nous appellerons les commandes dont nous avons besoin pour construire, disposer, exécuter des tests, etc. Les voies sont appelées à partir de la ligne de commande en appelant
$ fastlane [lane_name] [parameters]
. C'est avec un appel à l'une des voies que les étapes automatisées commencent.
Automatisez le téléchargement vers TestFlight
Commençons par définir un nom convivial pour notre voie. Renommez custom_lane en testflight_lane . Il est maintenant clair que le résultat de l'exécution de ce script sera un nouvel assemblage chargé dans TestFlight .
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do
Configurer Appfile
Afin de ne pas saisir le bundle d'application et l'identifiant Apple à chaque fois que vous exécutez le script, écrivez-les dans le fichier d'application :
app_identifier "ru.ee.shishko.TheHatGame" apple_id "ee.shishko@gmail.com"
Certificats et profils d'approvisionnement
Ajoutez les commandes cert et sigh pour installer les certificats et les profils d'approvisionnement, respectivement:
( Attention : si votre application n'est pas dans l'App Store Connect, alors vous devez ajouter la commande produire avec le paramĂštre app_name )
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do # App Store Connect: # produce ( # app_name: "MyAppName" # ) cert sigh end end
Exécutez notre script en utilisant la commande $ fastlane testflight_lane
Au démarrage, Fastlane nous demandera de saisir le mot de passe du compte, saisissez-le. Il ne sera requis qu'une seule fois - fastlane s'en souviendra et vous n'aurez rien à saisir lors des prochains lancements.
Voici Ă quoi ressemble la sortie lorsque fastlane termine avec succĂšs le script:

Maintenant, les profils de certificat et de provisionnement sont téléchargés et installés. Il reste à inscrire l'objectif souhaité dans la contribution générale:

Créer une application
Ajoutez la commande increment_build_number pour augmenter le numéro de build. Si votre fichier principal .xcodeproj ne se trouve pas dans le dossier racine, spécifiez son chemin d'accÚs dans le paramÚtre xcodeproj :
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number # .xcodeproj , : # # increment_build_number( # xcodeproj: "./path/to/MyApp.xcodeproj" # ) end end
Pour augmenter le numéro de build, accédez à Build Settings / Versioning et définissez le systÚme de versioning dans Apple Generic et Current Project Version sur 1 :

Ajoutez la commande gym , qui recueille le fichier ipa de notre application:

Parmi les paramĂštres, vous pouvez spĂ©cifier oĂč ipa ( rĂ©pertoire_sortie ), nom ipa ( nom_sortie ), schĂ©ma ( schĂ©ma ) seront placĂ©s, que ce soit pour faire Clean ( clean ) et quelques autres. Nous ne spĂ©cifierons rien dans les paramĂštres - fastlane dĂ©finira les paramĂštres par dĂ©faut, collectera et signera ipa, mais encore une fois: si vous le souhaitez et si nĂ©cessaire, tout peut ĂȘtre spĂ©cifiĂ© en dĂ©tail:
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym # : # # gym( # workspace: "TheHatGame.xcworkspace", # scheme: "TheHatGame", # configuration: "Release", # clean: true, # output_directory: "./build", # output_name: "TheHatGame.ipa", # codesigning_identity: "iPhone Distribution: Evgeny Shishko" # ) end end
Télécharger vers TestFlight
Pour charger ipa dans TestFlight, nous utiliserons Pilot :

Avec Pilot, vous pouvez:
- Télécharger et distribuer des assemblages
- ajouter et supprimer des bĂȘta-testeurs;
- recevoir des informations sur les testeurs et les appareils qu'ils utilisent;
- exporter les informations des testeurs vers .csv afin de les importer dans un autre projet.
Nous utiliserons sa fonction principale: envoyer des assemblages Ă Apple Store Connect .
Ajoutez test_light uploadlto pour appeler upload_to_testflight avec les paramÚtres skip_submission (nous ne l'utiliserons que pour télécharger le fichier ipa) et skip_waiting_for_build_processing (nous n'attendons pas la fin du traitement):
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym upload_to_testflight( skip_submission: true, skip_waiting_for_build_processing: true ) end end
Exécutez le script final
Nous enregistrons nos modifications et exécutons à partir de la console:
$ fastlane testflight_lane
Au stade de l'envoi à testflight, vous devrez entrer le mot de passe spécifique à l' application dans la console (qui est requis pour l'autorisation dans Application Loader ). Vous pouvez le trouver dans votre compte Apple ID en le générant en cliquant sur "Générer le mot de passe":

AprĂšs avoir entrĂ© le mot de passe, le nouvel assemblage sera correctement chargĂ© dans TestFlight et fastlane s'arrĂȘtera lĂ :

Le statut de la nouvelle version peut ĂȘtre consultĂ© dans l'App Store Connect:

Conclusion
Câest tout! Je voudrais attirer l'attention sur le fait que dans cet article, dans le cas le plus gĂ©nĂ©ral, nous avons essayĂ© les capacitĂ©s de fastlane. Ă cet Ă©gard, je joins une enquĂȘte: allez-vous, Khabrovites, ĂȘtre intĂ©ressĂ© par des articles sur l' utilisation dĂ©taillĂ©e des commandes mentionnĂ©es et d'autres utiles dans Fastlane et des fonctionnalitĂ©s avancĂ©es dans la configuration de scripts?
L'application avec le paramĂštre Fastlane prĂ©sentĂ© peut ĂȘtre trouvĂ©e ici .