KiteConfigIosExtension

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.

FieldSet withXcode settingWho sees itRule
Marketing versionios { version = "..." }, else the shared versionMARKETING_VERSIONApp Store customersmay repeat across uploads
Build numberios { version { buildNumber } }, else the schemeCURRENT_PROJECT_VERSIONTestFlight testersmust 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

ValueWritten into your Xcode project
Bundle id, marketing version, build numberyes, by an explicit kiteApplyIos run
pbxproj, podfile, infoPlist, appDirectory, appIconDirectoryno, 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

KiteConfigIosSyncExtension

for the gate that authorizes those writes.

for the Android half of the same identity.

for the scheme every platform shares.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
abstract val appDirectory: DirectoryProperty

The Apple source tree searched when Swift imports are migrated.

Link copied to clipboard
abstract val appIconDirectory: DirectoryProperty

Where the Apple app icon is installed.

Link copied to clipboard
abstract val appId: Property<String>

The exact application identifier on this platform.

Link copied to clipboard
abstract val appName: Property<String>

The display name on this platform. Unset means the shared appName.

Link copied to clipboard
abstract val autoApply: Property<Boolean>

Apply this platform's source changes automatically. Unset means the shared autoApply.

Link copied to clipboard
abstract val pbxproj: RegularFileProperty

The Xcode project file that the explicit Apple tasks rewrite.

Link copied to clipboard
override val platform: KitePlatform
Link copied to clipboard
abstract val podfile: RegularFileProperty

The CocoaPods manifest read by the shared-module rename.

Link copied to clipboard
abstract val version: Property<String>

The release version on this platform. Unset means the shared version.

Functions

Link copied to clipboard
fun appId(action: Action<in KiteAppIdScope>)

This platform's identifier suffix and delivery switch.

Link copied to clipboard
fun appName(action: Action<in KiteAppNameScope>)

Whether this platform receives the app name.

Link copied to clipboard
fun infoPlist(action: Action<in KiteInfoPlistScope>)

Facts your app declares in its Info.plist, and where that file lives.

Link copied to clipboard
fun locales(action: Action<in KiteLocalesScope>)

The locale list this platform ships, when it differs from the shared one.

Link copied to clipboard
fun logo(action: Action<in KiteLogoScope>)

This platform's icon art and how much of the canvas the mark fills.

Link copied to clipboard

Rename the CocoaPods and Swift module across the Apple sources.

Link copied to clipboard
fun splash(action: Action<in KiteSplashScope>)

This platform's launch screen.

Link copied to clipboard
fun version(action: Action<in KitePlatformVersionScope>)

This platform's build number, counter, scheme, and delivery switch.

Link copied to clipboard
fun xcodeTargets(vararg names: String)

The exact Xcode application targets whose build settings may change.