forked from eatvio/eatvio_app
112 lines
3.0 KiB
Ruby
112 lines
3.0 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)
|
|
|
|
platform :ios do
|
|
desc "Push a new beta build to TestFlight"
|
|
lane :beta do
|
|
UI.message "Current working directory: #{Dir.pwd}"
|
|
UI.message "Checking API key file..."
|
|
|
|
possible_paths = [
|
|
"../AuthKey.p8",
|
|
"./AuthKey.p8",
|
|
"../../AuthKey.p8",
|
|
File.expand_path("../AuthKey.p8"),
|
|
File.expand_path("./AuthKey.p8")
|
|
]
|
|
|
|
auth_key_path = nil
|
|
possible_paths.each do |path|
|
|
if File.exist?(path)
|
|
UI.message "Found AuthKey.p8 at: #{path}"
|
|
auth_key_path = File.expand_path(path)
|
|
break
|
|
end
|
|
end
|
|
|
|
if auth_key_path.nil?
|
|
UI.user_error!("API key file not found. Tried paths: #{possible_paths.join(', ')}")
|
|
end
|
|
|
|
UI.message "Using auth_key_path: #{auth_key_path}"
|
|
|
|
# Configure Flutter for release mode
|
|
UI.message "Configuring Flutter for release mode..."
|
|
sh("cd .. && flutter build ios --config-only --release")
|
|
|
|
# Read build number from Flutter Generated.xcconfig
|
|
generated_xcconfig_path = File.join("..", "Flutter", "Generated.xcconfig")
|
|
flutter_build_number = nil
|
|
|
|
if File.exist?(generated_xcconfig_path)
|
|
File.foreach(generated_xcconfig_path) do |line|
|
|
matches = line.match(/FLUTTER_BUILD_NUMBER=(.*)/)
|
|
if matches
|
|
flutter_build_number = matches[1].strip
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
if flutter_build_number.nil?
|
|
UI.user_error!("Could not find FLUTTER_BUILD_NUMBER in #{generated_xcconfig_path}")
|
|
end
|
|
|
|
UI.message "Flutter build number: #{flutter_build_number}"
|
|
|
|
match(type: "appstore", readonly: true)
|
|
|
|
# Set build number explicitly instead of incrementing
|
|
increment_build_number(
|
|
xcodeproj: "Runner.xcodeproj",
|
|
build_number: flutter_build_number
|
|
)
|
|
|
|
build_app(
|
|
workspace: "Runner.xcworkspace",
|
|
scheme: "Runner",
|
|
export_method: "app-store",
|
|
codesigning_identity: "Apple Distribution",
|
|
)
|
|
|
|
|
|
|
|
app_store_connect_api_key(
|
|
key_id: "325JS9JCZH",
|
|
issuer_id: "dfa27d1d-2bb8-4d4d-847e-0b32f9b880b3",
|
|
key_filepath: auth_key_path,
|
|
duration: 1200,
|
|
in_house: false
|
|
)
|
|
|
|
begin
|
|
upload_to_testflight(
|
|
skip_waiting_for_build_processing: true,
|
|
skip_submission: true,
|
|
distribute_external: false,
|
|
notify_external_testers: false,
|
|
changelog: "TestFlight build #{flutter_build_number}",
|
|
verbose: true
|
|
)
|
|
rescue => ex
|
|
UI.error "Upload to TestFlight failed: #{ex.message}"
|
|
UI.error "Full error: #{ex.backtrace.join("\n")}"
|
|
raise ex
|
|
end
|
|
end
|
|
end
|