KiteSsotIosExtension

Apple settings inside kiteSsot { 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.

kiteSsot {
appName = "Jetzy"
id("com.example.jetzy") { ios { suffix = ".iosApp" } }
version("1.4.0") { ios { reupload = 3 } }

ios {
rewrite {
targets("iosApp")
}
}
}

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 sync is configured and you run a sync task yourself.

There is one derived read-only value, bundleId: Provider<String>: the root appId followed by bundleIdSuffix.

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.

FieldXcode settingWho sees itRule
marketingVersionMARKETING_VERSIONApp Store customersmay repeat across uploads
buildNumberCURRENT_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 rebuild rather than inventing a version nobody shipped.

What this block does and does not touch

PropertyWritten into your Xcode project
bundleIdSuffix, marketingVersion, buildNumberyes, by an explicit sync task
deploymentTargetno, it only validates the AppIcon catalog
pbxproj, podfile, infoPlist, appDirectory, appIconDirectoryno, they say where to look

See also

for the gate that authorizes those writes.

for the Android half of the same identity.

for the formula both platforms share.

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 deploymentTarget: Property<String>

The lowest iOS version your app supports, such as "14.0". The minimum accepted value is "12.0".

Link copied to clipboard
abstract val infoPlist: RegularFileProperty

The source XML Info.plist that plist sanitization maintains.

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

Apple source sync policy. Configure it with kiteSsot { ios { sync { ... } } }.

Functions

Link copied to clipboard
fun rewrite(action: Action<in KiteSsotIosSyncExtension>)

Configure the nested Apple sync model.