vn-verdnaturachat/ios/fastlane/Fastfile

111 lines
3.4 KiB
Ruby

# Customize this file, documentation can be found here:
# https://docs.fastlane.tools/actions/
# All available actions: https://docs.fastlane.tools/actions
# can also be listed using the `fastlane actions` command
# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`
# If you want to automatically update fastlane if a new version is available:
# update_fastlane
# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.63.0"
default_platform :ios
platform :ios do
before_all do
setup_circle_ci
create_keychain(
name: ENV["MATCH_KEYCHAIN_NAME"],
password: ENV["MATCH_KEYCHAIN_PASSWORD"],
timeout: 1200
)
end
desc "Submit a new Beta Build to Apple TestFlight"
lane :beta do |options|
api_key = app_store_connect_api_key(
key_id: "F296L2294Y",
issuer_id: "69a6de8e-75cf-47e3-e053-5b8c7c11a4d1",
key_filepath: 'fastlane/app_store_connect_api_key.p8',
in_house: false
)
pilot(
ipa: 'ios/Rocket.Chat.ipa',
app_identifier: options[:official] ? 'chat.rocket.ios' : 'chat.rocket.reactnative',
skip_waiting_for_build_processing: true
)
upload_symbols_to_crashlytics(dsym_path: "./ios/Rocket.Chat.app.dSYM.zip")
end
desc "Build Experimental app"
lane :release do
api_key = app_store_connect_api_key(
key_id: "F296L2294Y",
issuer_id: "69a6de8e-75cf-47e3-e053-5b8c7c11a4d1",
key_filepath: 'fastlane/app_store_connect_api_key.p8',
in_house: false
)
match(type: "appstore")
get_provisioning_profile(app_identifier: "chat.rocket.reactnative.ShareExtension")
get_provisioning_profile(app_identifier: "chat.rocket.reactnative.NotificationService")
# pem(api_key: api_key) # still uses Spaceship http://docs.fastlane.tools/actions/pem/#how-does-it-work
gym(
scheme: "RocketChatRN",
workspace: "RocketChatRN.xcworkspace",
output_name: "Rocket.Chat"
)
end
desc "Build fork app"
lane :build_fork do
gym(scheme: "RocketChatRN", workspace: "RocketChatRN.xcworkspace", skip_codesigning: true, skip_archive: true)
end
desc "Build Official app"
lane :build_official do
sh "../../scripts/prepare_ios_official.sh"
match(
type: "appstore",
app_identifier: ["chat.rocket.ios", "chat.rocket.ios.NotificationService", "chat.rocket.ios.Rocket-Chat-ShareExtension"],
readonly: true,
output_path: './'
)
update_project_provisioning(
xcodeproj: 'RocketChatRN.xcodeproj',
profile: "AppStore_chat.rocket.ios.NotificationService.mobileprovision",
target_filter: "NotificationService",
build_configuration: 'Release',
code_signing_identity: 'iPhone Distribution'
)
update_project_provisioning(
xcodeproj: 'RocketChatRN.xcodeproj',
profile: "AppStore_chat.rocket.ios.Rocket-Chat-ShareExtension.mobileprovision",
target_filter: "ShareRocketChatRN",
build_configuration: 'Release',
code_signing_identity: 'iPhone Distribution'
)
gym(
scheme: "RocketChat",
workspace: "RocketChatRN.xcworkspace",
xcargs: "-allowProvisioningUpdates",
output_name: "Rocket.Chat"
)
end
after_all do |lane|
delete_keychain(name: ENV["MATCH_KEYCHAIN_NAME"])
end
error do |lane, exception|
delete_keychain(name: ENV["MATCH_KEYCHAIN_NAME"])
end
end