Add internal provisioning profile support to iOS TestFlight workflow

Merged
AZ
3mo ago
+21-9

Support separate internal and beta provisioning profiles, selected based on bundle ID. Internal builds (dev.cmux.app.internal) now use the internal provisioning profile from GitHub Secrets. Fixes export mismatch error when uploading internal builds to TestFlight.


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Add internal iOS TestFlight support by selecting the correct provisioning profile based on the bundle ID. Fixes export mismatch errors when uploading dev.cmux.app.internal builds.

  • New Features

    • Auto-selects provisioning profile by IOS_BETA_BUNDLE_ID (internal vs beta).
    • Uses IOS_BETA_PROVISIONING_PROFILE_INTERNAL_BASE64 for internal builds and logs which profile is installed.
    • Validates application-identifier and aps-environment=production to prevent mismatches.
  • Migration

    • Add GitHub secret IOS_BETA_PROVISIONING_PROFILE_INTERNAL_BASE64 with the internal profile (base64).
    • Set IOS_BETA_BUNDLE_ID=dev.cmux.app.internal for internal builds.

Summary by CodeRabbit

  • Bug Fixes
    • Improved iOS beta build provisioning to support both internal and external testing profiles.
    • Added validation to ensure provisioning profiles target the correct app and use production push notifications.
    • Automatically selects and installs the appropriate profile for the selected beta environment.