Skip to main content
Revyl can sign your release build with your own certificate or keystore and upload it to App Store Connect or Google Play. You add a signing step and a deploy step to a build profile. Your xcodebuild or gradlew command does not change.
Signing and deploy steps only run in remote builds. Run the profile with --remote.

iOS

1

Create an App Store Connect API key

  1. Open App Store Connect and go to Users and Access > Integrations > App Store Connect API.
  2. Click Generate API Key. Give it the App Manager role.
  3. Download the .p8 file. It can only be downloaded once.
  4. Note the Key ID and the Issuer ID shown on the same page.
2

Export your distribution certificate

  1. Open Keychain Access on the Mac that holds the certificate.
  2. Under My Certificates, right-click the Apple Distribution certificate and click Export.
  3. Save it as a .p12 and set a password. Make sure the private key is included.
If any target in your project uses manual signing in Xcode, also download its App Store provisioning profile from the Apple Developer portal. Targets set to Automatically manage signing do not need one.
3

Add the credentials to Revyl

4

Add the steps to your build profile

Put ios-signing before your build commands and app-store-connect-deploy after them. Use your own Key ID and Issuer ID.
For manually signed targets, add provisioning_profiles: [IOS_APP_PROFILE] to ios-signing.
5

Run the build

Increase CFBundleVersion if you have already uploaded this build number, then:
The build appears in TestFlight after Apple finishes processing it.

ios-signing inputs

app-store-connect-deploy inputs

Android

1

Get your upload keystore

Use the keystore you already sign releases with. Play Console shows its expected SHA-256 under Setup > App signing.If you do not have one yet:
2

Create a Google Play service account

  1. In Google Cloud Console, create a service account and download a JSON key for it.
  2. In Play Console, go to Users and permissions > Invite new users.
  3. Enter the service account’s email address and give it release access to your app.
3

Add the credentials to Revyl

4

Add the steps to your build profile

Put android-signing after your build command and google-play-deploy after that. output_path must point to the one .aab or .apk your build produces.
android-signing signs the file at output_path in place, so nothing in your Gradle config needs to change. If the keystore holds more than one key, add key_alias.
5

Run the build

Increase versionCode if you have already uploaded this one, then:
With release_status: draft the build is uploaded but not released. Release it from Play Console, or set release_status: completed to release to the track’s testers straight away.

android-signing inputs

google-play-deploy inputs

Troubleshooting

Credentials are checked before your build command runs, so a bad credential fails in seconds with the reason in the build log. Profiles with signing or deploy steps always build from source; cached build results are not reused.