Kite Ssot Ios Sync Extension
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")
}
}
}Content copied to clipboard
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
| Task | Writes | Also needs |
|---|---|---|
kiteInternalIosConfig | project.pbxproj, Podfile, Swift imports | nothing else |
kiteInternalPlistClean | source Info.plist | cleanPlist |
kiteInternalIosLogo | AppIcon.appiconset | a logo { } block and KiteSsotIosExtension.deploymentTarget |
What happens on a plist conflict
| onConflict | Existing value | Build |
|---|---|---|
| PlistConflictPolicy.FAIL (default) | untouched | fails, nothing is written |
| PlistConflictPolicy.KEEP | kept | continues with a warning |
| PlistConflictPolicy.REPLACE | overwritten | continues |
See also
for the values these tasks propagate.
for the policy this block selects.