# 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(:android) package = load_json(json_path: File.join(__dir__, 'package.json')) version_number = package['version'] || '0.0.1' # Generate version code by padding each component to 3 digits and joining them together # Eg. 1.2.3 becomes 001002003 -> 1002003 as integer version_code = version_number.split('.').map { |v| v.rjust(3, '0') }.join.to_i || 1 android_project_dir = File.join(__dir__, 'android') platform :android do desc 'Release a new version to Google Play' lane :release do gradle( task: 'clean assembleRelease', project_dir: android_project_dir, properties: { 'versionName' => version_number, 'versionCode' => version_code } ) upload_to_play_store end end ios_project_dir = File.join(__dir__, 'ios', 'App', 'App.xcodeproj') platform :ios do desc 'Release a new version to the App Store' lane :release do increment_version_number( version_number: version_number, xcodeproj: ios_project_dir ) increment_build_number( build_number: version_code, xcodeproj: ios_project_dir ) sync_code_signing( type: 'appstore', xcodeproj: ios_project_dir ) build_app(xcodeproj: ios_project_dir) upload_to_app_store end end