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
