Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add section about export options plist #317

Merged
merged 2 commits into from
Dec 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions src/content/docs/code-push/release.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,57 @@ To release with a different Flutter version, you can specify the version using t
shorebird release ios --flutter-version 3.19.0
```

### Signing issues

Depending on how you normally sign your iOS app, you may see an error at the end
of the build saying something like: `Runner.app requires a provisioning profile
with ___ feature` or that no signing certificate was found. This can be
addressed in a few ways:

#### Setting up automatic signing in Xcode

If you are releasing on your local machine (i.e., not in a CI environment), this
option is easier than the following options, but does not always work well in CI
environments.

In Xcode, open your project and navigate to the "Signing & Capabilities" tab.
Ensure that "Automatically manage signing" is checked.

#### Create an ExportOptions.plist file.

You may need to provide an ExportOptions.plist file to the `shorebird release
ios` command. This file is used by Xcode to determine which certificate and
provisioning profile should be used to sign the .ipa. An example of this file
is:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<key>provisioningProfiles</key>
<dict>
<key>com.example.your_bundle_id</key>
<string>Your App's App Store Distribution Certificate Name</string>
</dict>
<key>signingCertificate</key>
<string>Apple Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>teamID</key>
<string>*****</string> # From https://developer.apple.com/account
</dict>
</plist>
```

To use this file, pass it to the `shorebird release ios` command:

```sh
shorebird release ios --export-options=path/to/ExportOptions.plist
```

</TabItem>

</Tabs>
Expand Down
5 changes: 5 additions & 0 deletions src/content/docs/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,11 @@ to check which Java version works with which Gradle release.
- Or try Installing the required Java version for your project's Gradle release and set
the path where it was installed in the `JAVA_HOME` environment variable.

## When creating an iOS release, I see an error saying that I'm missing a provisioning profile or that no signing team was found.

We address this issue in our [releasing guide](/code-push/release). Take a look
at the iOS section for more information.

## Have a problem that's not addressed here?

We're happy to help on [Discord](https://discord.gg/shorebird)!
Loading