123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- ENV["FASTLANE_SKIP_UPDATE_CHECK"] = "1"
- opt_out_usage
-
- default_platform(:ios)
-
- platform :ios do
- desc "Push a new beta build to TestFlight"
- lane :deploy do
- # Make sure we are on a clean tree
- ensure_git_status_clean
-
- # Connect to Apple Store Connect
- app_store_connect_api_key(
- key_id: ENV["ASC_KEY_ID"],
- issuer_id: ENV["ASC_ISSUER_ID"],
- key_content: ENV["ASC_KEY_CONTENT"],
- duration: 1200,
- in_house: false
- )
-
- # Set the app identifier
- update_app_identifier(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "src/Info.plist",
- app_identifier: "com.atlassian.JitsiMeet.ios"
- )
-
- # Set the broadcast extension identifier
- update_app_identifier(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "broadcast-extension/Info.plist",
- app_identifier: "com.atlassian.JitsiMeet.ios.broadcast"
- )
- update_info_plist(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "src/Info.plist",
- block: proc do |plist|
- plist["RTCScreenSharingExtension"] = "com.atlassian.JitsiMeet.ios.broadcast"
- end
- )
-
- # Set the (watch) app identifier
- update_app_identifier(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "watchos/app/Info.plist",
- app_identifier: "com.atlassian.JitsiMeet.ios.watchkit"
- )
-
- # Set the (watch) extension identifier
- update_app_identifier(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "watchos/extension/Info.plist",
- app_identifier: "com.atlassian.JitsiMeet.ios.watchkit.extension"
- )
-
- update_info_plist(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "watchos/app/Info.plist",
- block: proc do |plist|
- plist["WKCompanionAppBundleIdentifier"] = "com.atlassian.JitsiMeet.ios"
- end
- )
-
- update_info_plist(
- xcodeproj: "app/app.xcodeproj",
- plist_path: "watchos/extension/Info.plist",
- block: proc do |plist|
- plist["NSExtension"]["NSExtensionAttributes"]["WKAppBundleIdentifier"] = "com.atlassian.JitsiMeet.ios.watchkit"
- end
- )
-
- # Inrement the build number by 1
- increment_build_number(
- build_number: latest_testflight_build_number + 1,
- xcodeproj: "app/app.xcodeproj"
- )
-
- # Actually build the app
- build_app(
- scheme: "JitsiMeet",
- include_bitcode: true,
- include_symbols: true,
- export_xcargs: "-allowProvisioningUpdates"
- )
-
- # Upload the build to TestFlight (but don't distribute it)
- upload_to_testflight(
- beta_app_description: ENV["JITSI_CHANGELOG"],
- beta_app_feedback_email: ENV["JITSI_REVIEW_EMAIL"],
- beta_app_review_info: {
- contact_email: ENV["JITSI_REVIEW_EMAIL"],
- contact_first_name: ENV["JITSI_REVIEW_NAME"],
- contact_last_name: ENV["JITSI_REVIEW_SURNAME"],
- contact_phone: ENV["JITSI_REVIEW_PHONE"],
- demo_account_name: ENV["JITSI_DEMO_ACCOUNT"],
- demo_account_password: ENV["JITSI_DEMO_PASSWORD"],
- },
- changelog: ENV["JITSI_CHANGELOG"],
- demo_account_required: false,
- distribute_external: true,
- groups: ENV["JITSI_BETA_TESTING_GROUPS"],
- reject_build_waiting_for_review: true,
- uses_non_exempt_encryption: false
- )
-
- # Cleanup
- clean_build_artifacts
- reset_git_repo(skip_clean: true)
- end
-
- lane :refresh_dsyms do
- # Connect to Apple Store Connect
- app_store_connect_api_key(
- key_id: ENV["ASC_KEY_ID"],
- issuer_id: ENV["ASC_ISSUER_ID"],
- key_content: ENV["ASC_KEY_CONTENT"],
- duration: 1200,
- in_house: false
- )
-
- # Upload dSYMs to Crashlytics
- download_dsyms(min_version: ENV["DSYMS_MIN_VERSION"]) # Download dSYM files from iTC
- upload_symbols_to_crashlytics # Upload them to Crashlytics
- clean_build_artifacts # Delete the local dSYM files
- end
- end
|