99b68d1fc5
Use --dart-define=SENTRY_RELEASE=<full-tag> in Fastlane so the app reports the same version string to Sentry as CI uses when uploading symbols, bypassing iOS CFBundleShortVersionString stripping. - Android Fastfile: add --dart-define=SENTRY_RELEASE (build-name unchanged) - iOS Fastfile: pass DART_DEFINES via xcargs (increment_version_number unchanged) - Dart: read SENTRY_RELEASE dart-define first, fall back to PackageInfo.version - NSE/Web unaffected: NSE reads from Keychain, Web falls back to PackageInfo
73 lines
2.1 KiB
Ruby
73 lines
2.1 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
|
|
|
|
opt_out_usage
|
|
default_platform(:ios)
|
|
setup_ci if ENV['CI']
|
|
|
|
platform :ios do
|
|
desc "Build development version"
|
|
lane :dev do
|
|
sync_code_signing(
|
|
type: "development",
|
|
git_private_key: ENV["APPLE_CERTIFICATES_SSH_KEY"]
|
|
)
|
|
build_app(
|
|
scheme: "Runner",
|
|
configuration: "Debug",
|
|
workspace: "Runner.xcworkspace",
|
|
export_method: "development",
|
|
)
|
|
end
|
|
|
|
desc "Build and deploy release version"
|
|
lane :release do
|
|
# App Store Connect API setup
|
|
app_store_connect_api_key(
|
|
key_id: ENV["APPLE_KEY_ID"],
|
|
issuer_id: ENV["APPLE_ISSUER_ID"],
|
|
key_content: ENV["APPLE_KEY_CONTENT"]
|
|
)
|
|
sync_code_signing(
|
|
type: "appstore",
|
|
git_private_key: ENV["APPLE_CERTIFICATES_SSH_KEY"]
|
|
)
|
|
increment_build_number(
|
|
build_number: latest_testflight_build_number + 1
|
|
)
|
|
increment_version_number(
|
|
version_number: last_git_tag.gsub("v", "").split("-").first
|
|
)
|
|
# Pass the full release tag (e.g. "0.28.3-rc09") to the Dart layer so the
|
|
# app reports the same string to Sentry as CI uses when uploading dSYMs.
|
|
# This is separate from increment_version_number (which stays numeric for
|
|
# App Store compatibility). Each dart-define must be base64-encoded.
|
|
require 'base64'
|
|
sentry_release = last_git_tag.gsub("v", "")
|
|
sentry_release_define = Base64.strict_encode64("SENTRY_RELEASE=#{sentry_release}")
|
|
build_app(
|
|
scheme: "Runner",
|
|
configuration: "Release",
|
|
workspace: "Runner.xcworkspace",
|
|
export_method: "app-store",
|
|
xcargs: "DART_DEFINES=#{sentry_release_define}",
|
|
)
|
|
upload_to_testflight(
|
|
skip_waiting_for_build_processing: true,
|
|
ipa: "Runner.ipa"
|
|
)
|
|
end
|
|
end
|