default_platform(:ios) platform :ios do desc "Build and upload to TestFlight" lane :beta do # Generate Xcode project from project.yml (one level up from fastlane/) sh("cd .. && xcodegen generate --spec project.yml --project .") # Set build number from CI run number (passed as env var) increment_build_number( build_number: ENV["BUILD_NUMBER"] || "1", xcodeproj: "LibNovel.xcodeproj" ) # Enable manual code signing with specific provisioning profile update_code_signing_settings( use_automatic_signing: false, team_id: "GHZXC6FVMU", targets: ["LibNovel"], path: "LibNovel.xcodeproj", profile_name: ENV["PROVISIONING_PROFILE_NAME"] || "LibNovel Distribution", code_sign_identity: "Apple Distribution" ) # Build the app with manual signing build_app( scheme: "LibNovel", export_method: "app-store", clean: true, configuration: "Release", export_options: { method: "app-store", teamID: "GHZXC6FVMU", provisioningProfiles: { "com.kalekber.LibNovel" => ENV["PROVISIONING_PROFILE_NAME"] || "LibNovel Distribution" }, signingStyle: "manual" } ) # Upload to TestFlight upload_to_testflight( skip_waiting_for_build_processing: true ) end end