Skip to content

Commit

Permalink
Add guide to publish to Testflight internal testing only (#2891)
Browse files Browse the repository at this point in the history
* Add guide to publish to testflight internal testing only

* Add details on internal testing to publishing

* Update content/flutter-publishing/publishing-to-app-store.md

Co-authored-by: helinanever <36853001+helinanever@users.noreply.github.com>

* Update content/flutter-publishing/publishing-to-app-store.md

Co-authored-by: helinanever <36853001+helinanever@users.noreply.github.com>

---------

Co-authored-by: helinanever <36853001+helinanever@users.noreply.github.com>
  • Loading branch information
dam-ease and helinanever authored Dec 19, 2024
1 parent c154627 commit f14d796
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 3 deletions.
13 changes: 11 additions & 2 deletions content/flutter-publishing/publishing-to-app-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,18 @@ Once the Apple Developer Portal has been enabled for the account or team the app
4. Mark the **Publish even if tests fail** checkbox to continue uploading the app artifact even when the tests failed.
5. Select **Enable App Store Connect publishing** at the top of the section to enable publishing.

Your app will be now published to App Store Connect. However, you can select additional options to submit the build to TestFlight beta review or App Store review.
Your app will be now published to App Store Connect. However, you can select additional options to submit the build to TestFlight internal testing, TestFlight beta review or App Store review.

#### Submitting an app to TestFlight
#### Submitting an app to TestFlight internal testing
In order to distribute your application to internal testers only, without requiring Apple's beta review:
1. Create a group and add internal testers (App Store Connect users with access to your content) to test your app using TestFlight in your App Store Connect portal.
2. In Codemagic workflow editor, create a new environment variable `XCODE_PROJECT_CUSTOM_EXPORT_OPTIONS` and assign the value `{"testFlightInternalTestingOnly": true}`.

{{<notebox>}}
**Note:** Builds marked as TestFlight Internal Only will display "internal" next to the build number and can exclusively be added to internal tester groups. They cannot be submitted for external testing or distributed to customers.
{{</notebox>}}

#### Submitting an app to TestFlight beta review

1. Mark the **Submit to TestFlight beta review** checkbox to submit the build for beta review and prepare it for distributing to beta testers. Note: This action is performed during [post-processing](#post-processing-of-app-store-connect-distribution).
2. Mark the **Distribute to beta groups** checkbox and enter the names of the beta groups to automatically distribute the build to the testers in those groups once the build has passed beta review. Note: This action is performed during [post-processing](#post-processing-of-app-store-connect-distribution).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,22 @@ To apply the profiles to your project during the build, add the following script
script: xcode-project use-profiles

# ... your build commands
{{< /highlight >}}
{{< /highlight >}}

{{<notebox>}}
See additional configuration options for setting up code signing settings to use given provisioning profiles [here](https://github.com/codemagic-ci-cd/cli-tools/blob/master/docs/xcode-project/use-profiles.md)
{{</notebox>}}

To distribute signed iOS applications solely to internal testers without the need for Apple's beta review (TestFlight Internal Testing Only):

{{< highlight yaml "style=paraiso-dark">}}
scripts:
# ... your dependencies installation
- name: Set up code signing settings on Xcode project
script: xcode-project use-profiles
--custom-export-options='{"testFlightInternalTestingOnly": true}'
# ... your build commands
{{< /highlight >}}
{{<notebox>}}
**Note:** Builds marked as TestFlight Internal Only will display "internal" next to the build number and can exclusively be added to internal tester groups. They cannot be submitted for external testing or distributed to customers.
{{</notebox>}}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

The following snippet demonstrates how to authenticate with and upload the IPA to App Store Connect, submit the build to beta tester groups in TestFlight and configure releasing the app to App Store. See additional configuration options for App Store Connect publishing [here](https://github.com/codemagic-ci-cd/cli-tools/blob/master/docs/app-store-connect/publish.md).

To submit solely to internal testers without requiring Apple's beta review (TestFlight Internal Testing Only), add the `--custom-export-options='{"testFlightInternalTestingOnly": true}'` argument to `use-profiles` during iOS code signing as detailed [here](https://docs.codemagic.io/yaml-code-signing/signing-ios/#using-provisioning-profiles).

{{<notebox>}}**Note:** Please note that you will need to create an **app record** in App Store Connect before you can automate publishing with Codemagic. It is recommended to upload the very first version of the app manually. Suppose you have set up an **app record** but have not manually uploaded the app's first version. In that case, manual configuration of the settings must be done on App Store Connect after the build is complete, such as uploading the required screenshots and providing the values for the privacy policy URL and application category. {{</notebox>}}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

The following snippet demonstrates how to authenticate with and upload the IPA to App Store Connect, submit the build to beta tester groups in TestFlight and configure releasing the app to App Store. See additional configuration options for App Store Connect publishing [here](https://github.com/codemagic-ci-cd/cli-tools/blob/master/docs/app-store-connect/publish.md).

To submit solely to internal testers without requiring Apple's beta review (TestFlight Internal Testing Only), add the `--custom-export-options='{"testFlightInternalTestingOnly": true}'` argument to `use-profiles` during iOS code signing as detailed [here](https://docs.codemagic.io/yaml-code-signing/signing-ios/#using-provisioning-profiles).

{{<notebox>}}**Note:** Please note that you will need to create an **app record** in App Store Connect before you can automate publishing with Codemagic. It is recommended to upload the very first version of the app manually. Suppose you have set up an **app record** but have not manually uploaded the app's first version. In that case, manual configuration of the settings must be done on App Store Connect after the build is complete, such as uploading the required screenshots and providing the values for the privacy policy URL and application category. {{</notebox>}}

{{< highlight yaml "style=paraiso-dark">}}
Expand Down
18 changes: 18 additions & 0 deletions content/yaml-code-signing/signing-ios.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,21 @@ To apply the profiles to your project during the build, add the following script

# ... your build commands
{{< /highlight >}}

{{<notebox>}}
See additional configuration options for setting up code signing settings to use given provisioning profiles [here](https://github.com/codemagic-ci-cd/cli-tools/blob/master/docs/xcode-project/use-profiles.md)
{{</notebox>}}

To distribute signed iOS applications solely to internal testers without the need for Apple's beta review (TestFlight Internal Testing Only):

{{< highlight yaml "style=paraiso-dark">}}
scripts:
# ... your dependencies installation
- name: Set up code signing settings on Xcode project
script: xcode-project use-profiles
--custom-export-options='{"testFlightInternalTestingOnly": true}'
# ... your build commands
{{< /highlight >}}
{{<notebox>}}
**Note:** Builds marked as TestFlight Internal Only will display "internal" next to the build number and can exclusively be added to internal tester groups. They cannot be submitted for external testing or distributed to customers.
{{</notebox>}}

0 comments on commit f14d796

Please sign in to comment.