BowlerKitBowlerKit

Rename Package

10/11/2026

Change display name, application ID, bundle ID, and link scheme with bowler setup.

Use the setup wizard

From the generated project root:

bowler setup

The wizard updates the mobile identity, localized app/onboarding copy, API origin, and the deep link URL scheme in one pass. Re-run it to revise those values. Use a CLI distribution that includes KMP setup support.

Check the resulting identity

Paths are relative to generated mobile-app/.

ValueTemplate location
Android application IDandroidApp/build.gradle.kts: applicationId
iOS bundle IDiosApp/Configuration/Config.xcconfig: PRODUCT_BUNDLE_IDENTIFIER
iOS display name (home screen)iosApp/Configuration/Config.xcconfig: INFOPLIST_KEY_CFBundleDisplayName, added by bowler setup
Android custom schemeandroidApp/src/main/AndroidManifest.xml
iOS custom schemeiosApp/iosApp/Info.plist: CFBundleURLTypes
Shared scheme/prefixsharedLogic/src/commonMain/kotlin/com/soewidiputra/kmponlate/AppNavigation.kt: DemoLinks.scheme, DemoLinks.prefix

The Kotlin source package remains com.soewidiputra.kmponlate; changing the installed application identity does not require moving every Kotlin file. The source iOS bundle ID includes $(TEAM_ID), so inspect the resolved build value when registering services.

Reconfigure services

Register the final package and bundle identifiers with Firebase and replace androidApp/google-services.json and iosApp/iosApp/GoogleService-Info.plist. Setup does not rewrite those credentials. Update Google OAuth clients/signing fingerprints, Apple capabilities/provisioning, and your store app records to match.

For Account projects, keep backend email links aligned with the new scheme and set API_BASE_URL to the host root, without /api/v1. iOS local overrides in iosApp/Configuration/Config.local.xcconfig must use https:/$()/host because // begins an xcconfig comment.

Build and run both apps, inspect their displayed name, and test the Account deep-link contract, social credentials, and push setup.