CI Installation

To test your app, it first needs to be installed on a device or simulator, and needs to be re-signed.

iOS

Entitlements

The app is re-signed with a custom provisioning profile and certain entitlements are removed. The following entitlements are included, the rest are stripped:

"application-identifier"
"com.apple.developer.team-identifier"
"get-task-allow"
"com.apple.developer.siri"

The app identifier is left unchanged, but the team identifier and app id prefix is replaced with a new team identifier. The com.apple.developer.siri entitlement is preserved, and others including app groups, associated domains, and push notifications, are stripped from the app’s entitlements.

This may change some behavior, so make sure your app doesn’t crash after re-signing, like asserting that a particular app group is available. Additionally, security measures that rely on the app’s signature may break, so these should be disabled before uploading to Emerge.

Bundle Id

The bundle id is modified in the application's Info.plist. This modified bundle id will show up on crash reports and may require changes to app code to expect the different bundle id. Two bundle ids are used, one for the base and one for the head app. If you need specifics on what string is used for the bundle id, contact your Emerge representative.

Android

App installation on Android is relatively straightforward. If an AAB is uploaded, it will be split using bundletool, then install the split APKs on a device or emulator. If a universal APK is uploaded, is will be installed directly. All builds are re-signed using a rotated debug signing key.