default_platform(:ios) package = load_json(json_path: "package.json") platform :ios do before_all do app_store_connect_api_key( key_id: "Z98N7N8ZMW", issuer_id: "f0fa1c89-6a9a-4144-bfba-529dfe05f09b", key_filepath: "./certificates/AuthKey_Z98N7N8ZMW.p8" ) get_certificates( output_path: "certificates/" ) get_provisioning_profile( output_path: "certificates/", filename: "provisioning.mobileprovision", fail_on_name_taken: false, ) update_code_signing_settings( use_automatic_signing: false, path: "ios/Fintunes.xcodeproj" ) increment_version_number( version_number: package["version"], xcodeproj: "ios/Fintunes.xcodeproj", ); increment_build_number( xcodeproj: "ios/Fintunes.xcodeproj", ) end lane :release do build_app( scheme: "Fintunes", output_directory: "build", workspace: "ios/Fintunes.xcworkspace", export_method: "app-store", ) upload_to_app_store( precheck_include_in_app_purchases: false ) end lane :beta do build_app( scheme: "Fintunes", output_directory: "build", workspace: "ios/Fintunes.xcworkspace", export_method: "app-store", ) upload_to_testflight() end lane :build do build_app( scheme: "Fintunes", output_directory: "build", workspace: "ios/Fintunes.xcworkspace", export_method: "app-store", ) end after_all do build_number = get_build_number( xcodeproj: "ios/Fintunes.xcodeproj", ) Dir.chdir("..") do sh( "npx", "react-native", "bundle", "--dev", "false", "--platform", "ios", "--entry-file", "index.js", "--bundle-output", "build/index.ios.bundle", "--sourcemap-output", "build/index.ios.bundle.map" ) end sentry_create_release( version: package["version"], app_identifier: 'nl.moeilijkedingen.jellyfinaudioplayer', finalize: true ) sentry_upload_dsym( dsym_path: "build/Fintunes.app.dSYM.zip", info_plist: "ios/Fintunes/Info.plist", ) sentry_upload_file( version: package["version"], app_identifier: 'nl.moeilijkedingen.jellyfinaudioplayer', build: build_number, file: 'build/index.ios.bundle', ) sentry_upload_sourcemap( version: package["version"], app_identifier: 'nl.moeilijkedingen.jellyfinaudioplayer', build: build_number, sourcemap: 'build/index.ios.bundle.map', rewrite: true ) end lane :screenshots do capture_screenshots # upload_to_app_store end end platform :android do desc "Generate beta build" lane :build do gradle( task: "assemble", build_type: "Release", project_dir: "android" ) end lane :beta do android_set_version_name( version_name: package["version"], gradle_file: "android/app/build.gradle" ) android_set_version_code( gradle_file: "android/app/build.gradle" ) gradle( task: "assemble", build_type: "Release", project_dir: "android" ) gradle( task: "bundle", build_type: "Release", project_dir: "android" ) upload_to_play_store( track: "beta", skip_upload_apk: true ) end lane :release do android_set_version_name( version_name: package["version"], gradle_file: "android/app/build.gradle" ) android_set_version_code( gradle_file: "android/app/build.gradle" ) gradle( task: "bundle", build_type: "Release", project_dir: "android" ) upload_to_play_store( skip_upload_apk: true ) end end