Kite Config Ios Extension
Apple settings inside kiteConfig { ios { ... } }.
The root block holds the truth about your app: its name, its version, its ID. This block holds only what Apple needs on top of that: the bundle suffix, the two version fields, and where your Xcode tree lives.
kiteConfig {
appName = "Jetzy"
appId = "com.example.jetzy"
ios { appId { suffix = ".iosApp" } }
version = "1.4.0"
ios { version { rebuild = 3 } }
ios {
infoPlist { proMotion = true }
}
}Every path here already points at the standard Kotlin Multiplatform layout. Set one only when your tree looks different.
Nothing in this block writes a file on its own. Apple sources change only when autoApply is on, or you run kiteApply yourself.
The resolved bundle id is readable as kiteConfig.iosBundleId: the root appId followed by the suffix from ios { appId { suffix } }.
The two Apple version fields
Apple splits what Android keeps in one place. Getting them confused is the usual cause of a rejected TestFlight upload.
Both are set in the version topic's ios { } corner, not here.
| Field | Set with | Xcode setting | Who sees it | Rule |
|---|---|---|---|---|
| Marketing version | ios { version = "..." }, else the shared version | MARKETING_VERSION | App Store customers | may repeat across uploads |
| Build number | ios { version { buildNumber } }, else the scheme | CURRENT_PROJECT_VERSION | TestFlight testers | must be new for each upload of the same version |
So a re-upload of 1.4.0 keeps the marketing version and needs a fresh build number. Turn ios { version { rebuild } } rather than inventing a version nobody shipped.
What this block does and does not touch
| Value | Written into your Xcode project |
|---|---|
| Bundle id, marketing version, build number | yes, by an explicit kiteApplyIos run |
| pbxproj, podfile, infoPlist, appDirectory, appIconDirectory | no, they say where to look |
Those three are declared elsewhere: the bundle id in ios { appId { suffix } }, and both version fields in the version topic's ios { } corner.
See also
for the gate that authorizes those writes.
for the Android half of the same identity.
for the scheme every platform shares.
Properties
Functions
This platform's identifier suffix and delivery switch.
Whether this platform receives the app name.
Facts your app declares in its Info.plist, and where that file lives.
The locale list this platform ships, when it differs from the shared one.
This platform's icon art and how much of the canvas the mark fills.
Rename the CocoaPods and Swift module across the Apple sources.
This platform's launch screen.
This platform's build number, counter, scheme, and delivery switch.
The exact Xcode application targets whose build settings may change.