Fastlane - это набор инструментов для автоматизации создания и выпуска приложений для iOS и Android.Если вы ранее пытались доставить приложения в TestFlight или Apple Store, вы знаете, сколько времени занимает процесс: архивирование приложения, его экспорт в AppleStore, добавление новой сборки (после бесконечного времени обработки), добавление снимков экрана для каждого устройства., перепрыгивая через несколько обручей и, наконец, сделав его доступным для вашего тестировщика или всего мира. Прежде всего, мы собираемся установить и настроить fastlane.Предполагая, что вы работаете на Mac, откройте терминал и выполните каждую из следующих команд:
- sudo gem install fastlane --verbose затем 2.xcode-select --install // это вызовет некоторыедействия из xCode затем 3.gem cleanup
После установки Fastlane вы можете добавлять различные инструменты в зависимости от ваших потребностей.Вот список команд fastlane от github:
После того, как вы создали свой проект xcode, перейдите в его папку и запустите fastlane init.Сценарий запросит у вас ваш Apple ID / пароль, идентификатор приложения, схему, создайте приложение в iTunes Connect и Apple Developer Port, если необходимо, и сохраните всю эту информацию в fastlane / Appfile и fastlane / Deliverfile. Как только все настроено правильно, вы должны увидеть что-то вроде этого: Fastlane создаст папку с именем fastlane внутри Fastfile, которая является скриптом конфигурации ruby.Вот пример файла:
# Customise this file, documentation can be found here:
также можно перечислить с помощью команды fastlane actions
Измените подсветку синтаксиса на Ruby
Все строки, начинающиеся с #, игнорируются при запуске fastlane
Если вы хотите автоматически обновить fastlane, если доступна новая версия:
update_fastlane
Это минимальный требуемый номер версии.
Обновите его, если вы используете функции более новой версии
fastlane_version "1.89.0"
default_platform: ios
платформа: ios do before_all do #test #, чтобы установить правильные URL, прокрутите вниз до части 3 ENV ["SLACK_URL"] || = "https://hooks.slack.com/services/xxxxxxx"
# URL for Project #ios channel
#ENV["SLACK_URL"] ||= "https://hooks.slack.com/services/xxxx"
slack(message:"New version recieved, processing started")
end
after_all do |lane|
# This block is called, only if the executed lane was successful
# slack(
# message: "New App Update successfully deployed."
# )
end
error do |lane, exception|
slack(
message: exception.message,
success: false
)
end
#lane to run unit tests
desc "[TEST] Runs all the tests"
lane :unittest do
scan
end
#lane to send app to testflight
desc "[TESTFLIGHT] publish production"
lane :tf_production do
apple_testflight(scheme: "YOUR_SCHEME_NAME")
end
desc "[STORE] Deploy a new version"
lane :app_store do
# match(type: "appstore")
# snapshot
build(scheme:"YOUR_SCHEME_NAME")
deliver(force: true)
# frameit
end
desc "[PRIVATE] Deploy a new version to the Testflight"
private_lane :apple_testflight do |options|
scheme = options[:scheme]
slack(message: "Starting processing "+scheme+" for Testflight")
cert
sigh
#TODO: fix "increment_build_number" to bump ONLY the build number or the selected scheme
# increment_build_number
build(scheme: scheme)
resign(signing_identity:'#Name of the certificate as shown in the Keychain, for ex: iPhone Distribution: My COMPANY (XXXXXXXX)')
pilot(
distribte_external: false,
testers_file_path: "./ external_testers.csv"
)
slack(message: "Processing finished")
end
desc "[PRIVATE] Build usign schema"
private_lane :build do |options|
scheme = options[:scheme]
cocoapods
gym(
scheme: scheme,
codesigning_identity: '#Name of the certificate as shown in the Keychain, for ex: iPhone Distribution: My COMPANY (XXXXXXXX)'
)
end
end
fastlane сообщает, какие действия используютсяd