You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
3.7 KiB
Ruby

# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
before_each do |_lane, _options|
ENV['USER_NAME'] = 'mlch911@icloud.com'
ENV['BUNDLE_ID'] = 'tech.mluoc.hyzpYbqx'
ENV['TEAM_ID'] = '124688302'
ENV['WORKSPACE'] = 'Runner.xcworkspace'
ENV['SCHEME'] = 'Runner'
ENV['']
end
platform :ios do
lane :release do
begin
bump_build
build_ios_app(
workspace: ENV['WORKSPACE'],
configuration: 'Release',
scheme: ENV['SCHEME'],
clean: true,
xcargs: '-allowProvisioningUpdates',
include_symbols: true
)
app_store_connect_api_key(
key_id: 'NFBM52M2PY',
issuer_id: '22e070fb-ba6d-4f93-bf6f-1a6415f583fe',
key_filepath: '~/AuthKey_NFBM52M2PY.p8',
duration: 1200,
in_house: false
)
deliver(
ipa: lane_context[:IPA_OUTPUT_PATH],
username: ENV['USER_NAME'],
team_id: ENV['TEAM_ID'],
app_identifier: ENV['BUNDLE_ID'],
submit_for_review: true,
automatic_release: true,
phased_release: false,
force: true, # Skip HTMl report verification
skip_metadata: false,
skip_screenshots: false,
overwrite_screenshots: true,
skip_binary_upload: false,
precheck_include_in_app_purchases: false,
submission_information: { add_id_info_uses_idfa: false, export_compliance_uses_encryption: false }
)
clean_build_artifacts
rescue => exception
revert_bump_build
`git checkout . && git clean -df`
clean_build_artifacts
raise exception
end
end
lane :bump_version do
ensure_git_status_clean
increment_version_number_in_plist(
bump_type: 'patch',
target: lane_context[:TARGET_NAME]
)
info_plist_path = get_info_plist_path(scheme: lane_context[:SCHEME])
git_commit(
path: [info_plist_path],
message: 'Bump to next version',
skip_git_hooks: true
)
end
private_lane :bump_build do
increment_build_number_in_plist(scheme: lane_context[:SCHEME])
info_plist_path = get_info_plist_path(scheme: lane_context[:SCHEME])
git_commit(
path: [info_plist_path],
message: 'Increase Build Number',
skip_git_hooks: true
)
add_git_tag(tag: tag_string)
end
private_lane :tag_string do
unless lane_context[:TAG_STRING]
tag = "#{version_string}.#{build_string}"
lane_context[:TAG_STRING] = tag
end
lane_context[:TAG_STRING]
end
private_lane :version_build_string do
"#{version_string}.#{build_string}"
end
private_lane :version_string do
unless lane_context[:VERSION_STRING]
version = get_version_number_from_plist(target: lane_context[:TARGET_NAME])
lane_context[:VERSION_STRING] = version
end
lane_context[:VERSION_STRING]
end
private_lane :build_string do
unless lane_context[:BUILD_STRING]
build = get_build_number_from_plist(target: lane_context[:TARGET_NAME])
lane_context[:BUILD_STRING] = build
end
lane_context[:BUILD_STRING]
end
private_lane :revert_bump_build do
last_commit = `git --no-pager log --pretty=format:%H -1`
last_commit_message = `git --no-pager log --pretty=format:%s -1 last_commit`
if last_commit_message == 'Increase Build Number'
`git tag -d #{tag_string}`
`git reset --soft #{last_commit}^`
end
end
end