KiteSsotIosSyncExtension

Apple source sync policy inside kiteSsot { ios { rewrite { ... } } }.

Writing this block is the opt-in. Its presence is what authorizes the explicit Apple source tasks, and it replaces the old syncIos = true flag.

kiteSsot {
ios {
rewrite {
targets("iosApp")
cleanPlist = true
onConflict = PlistConflictPolicy.KEEP

renameSharedModule(from = "OldShared", to = "Shared")
}
}
}

Authorizing is not running. This block starts nothing. An ordinary build still never touches an Apple source file. You run kiteInternalIosConfig, kiteInternalPlistClean, or kiteInternalIosLogo yourself, and every safety rail still applies: the root dryRun previews instead of writing, the root backups keeps recovery copies, and onConflict decides what happens when an existing plist value disagrees with yours.

Which task this block unlocks

TaskWritesAlso needs
kiteInternalIosConfigproject.pbxproj, Podfile, Swift importsnothing else
kiteInternalPlistCleansource Info.plistcleanPlist
kiteInternalIosLogoAppIcon.appiconseta logo { } block and KiteSsotIosExtension.deploymentTarget

What happens on a plist conflict

onConflictExisting valueBuild
PlistConflictPolicy.FAIL (default)untouchedfails, nothing is written
PlistConflictPolicy.KEEPkeptcontinues with a warning
PlistConflictPolicy.REPLACEoverwrittencontinues

See also

for the values these tasks propagate.

for the policy this block selects.

Constructors

Link copied to clipboard
constructor()

Properties

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

Whether KiteSSOT maintains its own keys in the source XML Info.plist.

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

Value for ITSAppUsesNonExemptEncryption in Info.plist.

Link copied to clipboard
abstract val onConflict: Property<PlistConflictPolicy>

What to do when an existing Info.plist value differs from the requested value.

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

Value for CADisableMinimumFrameDurationOnPhone in Info.plist.

Link copied to clipboard
abstract val targets: ListProperty<String>

The exact Xcode application targets whose build configurations may change.

Functions

Link copied to clipboard

Rename the CocoaPods and Swift module across the Apple sources: from is the name in the files today, to is the name you want.

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

Add Xcode application target names, for example targets("iosApp").