Sanitize Ios Project Task
Ensures a source iOS Info.plist holds the SSOT references that this task's propagation inputs enable. Each enabled entry points at its build variable:
CFBundleDisplayName → $(PRODUCT_NAME)
CFBundleName → $(PRODUCT_NAME)
CFBundleShortVersionString → $(MARKETING_VERSION)
CFBundleVersion → $(CURRENT_PROJECT_VERSION)App-name propagation enables the first two entries. Marketing-version and build-number propagation independently enable the remaining entries. When no string entry or optional Boolean flag is enabled, the task is a no-op. Existing conflicts follow conflictPolicy, which defaults to fail-closed, so one conflict aborts the entire plan and leaves the plist byte-for-byte untouched.
It also propagates the Boolean feature flags from kiteSsot { ios { } }:
ITSAppUsesNonExemptEncryption ← ios.usesNonExemptEncryption
CADisableMinimumFrameDurationOnPhone ← ios.proMotion120HzThe plist is parsed with mandatory XML hardening (sanitizeInfoPlist). Binary, malformed, duplicate-key, unsafe-entity, and non-lossless inputs fail without writing. Generated plists are unsupported by this source-file migration task.