Skip to content

Commit

Permalink
Addressed comments from code review
Browse files Browse the repository at this point in the history
  • Loading branch information
dustin-wojciechowski committed May 1, 2023
1 parent 2ad8411 commit a4d94f1
Showing 1 changed file with 41 additions and 12 deletions.
53 changes: 41 additions & 12 deletions docs/preparing-your-app-for-testflight.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# Preparing your App for TestFlight

Publishing to the App Store requires some preparation. This guide should help you get started with using Transporter and the App Connect site to upload your app to the App Store for internal testing via TestFlight. This guide will use the example of publishing a MacCatalyst app to the Mac App Store, but the process is similar for iOS and tvOS apps.
This guide shows the process of getting started with using Transporter and the App Connect site to upload your app to the App Store for internal testing via TestFlight. This guide will use the example of publishing a MacCatalyst app to the Mac App Store, but the process is similar for iOS and tvOS apps.

There is some preparation involved with preparing your Apple Developer account for publishing, such as preparing an App Identifier and a Provisioning Profile. The MAUI documentation has a great guide for that:
https://aka.ms/maui-publish-app-store
There is some preparation involved with preparing your Apple Developer account for publishing, such as creating an App Identifier and a Provisioning Profile. The MAUI documentation has [a great guide for that](https://aka.ms/maui-publish-app-store).

Also, your project will need to have configuration values set in the .csproj file, the Info.plist file, and the Entitlements.plist file.
Also, your project will need to have certain configuration values set in the .csproj file, the Info.plist file, and the Entitlements.plist file.

## Preparing your Project File (.csproj) for App Store submission

Expand All @@ -19,27 +18,57 @@ Before you can submit your app to the App Store, you need to make sure that it i
- Setting the correct `CodesignEntitlements` in your project.
- Setting the correct `CodesignProvision` in your project.

Here's an example within a project file that is correctly configured for publishing a MacCatalyst app to the Mac App Store using NET 7.0:

```
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0-maccatalyst</TargetFramework>
<RuntimeIdentifiers>maccatalyst-x64;maccatalyst-arm64</RuntimeIdentifiers>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<ImplicitUsings>true</ImplicitUsings>
<SupportedOSPlatformVersion>14.2</SupportedOSPlatformVersion>
<ApplicationTitle>YourAppName</ApplicationTitle>
<ApplicationId>com.yourcompany.yourappname</ApplicationId>
<ApplicationVersion>0.1.0</ApplicationVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<CreatePackage>false</CreatePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<EnableCodeSigning>True</EnableCodeSigning>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<EnablePackageSigning>true</EnablePackageSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Apple Development: YOURNAME (*******)</CodesignKey>
<CodesignProvision>YOUR PROFILE NAME</CodesignProvision>
<PackageSigningKey>3rd Party Mac Developer Installer: YOURNAME (*******)</PackageSigningKey>
</PropertyGroup>
</Project>
```

### Info.plist

The `Info.plist` file is used by the build system to configure your app and is already generated by your project. It contains info such as the Bundle Display Name and Bundle Identifier.
The `Info.plist` file is used by the build system to configure your app and is already generated by your project. It contains info such as the Bundle Display Name and Bundle Identifier. (Please note that values such as the Bundle Identifier are set automatically with the values assigned above and do not have to be set manually. For more information about this, see [this guide](https://github.com/xamarin/xamarin-android/blob/main/Documentation/guides/OneDotNetSingleProject.md#ios-template))
### Entitlements.plist

The `Entitlements.plist` file is used by the build system to sign your app.
The `Entitlements.plist` file is used by the build system to sign your app. Please see Apple's documentation on Entitlements [here](https://developer.apple.com/documentation/bundleresources/entitlements?language=objc).

Some of the values in the `Entitlements.plist` file are set by the build system. These values are:
Such common values include:

- com.apple.security.app-sandbox
- com.apple.security.network.client
- com.apple.security.app-sandbox: Set this to true when working with MacOS or MacCatalyst apps.
- com.apple.security.network.client: Set this to let the forementioned sandboxed app connect to a server process running on the same/another machine (this is useful for web developer tools).

## Building your App for Publishing

Once you've set all the correct values, you can build your app for publishing. You can build your app for publishing very easily by using the dotnet build command. Here is an example for building a MacCatalyst app with .NET 7.0:
Build your app for publishing. You can do this by using the dotnet build command. Here is an example for building a MacCatalyst app with .NET 7.0:

`dotnet build -f:net7.0-maccatalyst -c:Release`

## App Store Connect

App Store Connect is the web site that you use to manage your apps on the App Store. You can use App Store Connect to upload your app to the App Store, and you can use App Store Connect to manage your app once it is on the App Store.
App Store Connect is the App Store management site. You can use it to to upload your app to the App Store, and to manage your apps.

### Creating an App in App Store Connect

Expand All @@ -56,7 +85,7 @@ Before you can upload your app to the App Store, you need to create an app on Ap

### Uploading your App using Transporter

Once you have created an app on App Store Connect, you can upload your app to the App Store. You can upload your app to the App Store by following these steps:
Once you have created an app on App Store Connect, you can upload your app to the App Store by following these steps:

1. Go to the Mac App Store and download the Transporter app.
2. Open the Transporter app.
Expand Down

0 comments on commit a4d94f1

Please sign in to comment.