SanitizeIosProjectTask

@DisableCachingByDefault(because = "Mutates user-owned source files and must execute current safety checks.")
abstract class SanitizeIosProjectTask : DefaultTask

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.proMotion120Hz

The 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.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
@get:Input
abstract val backup: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val conflictPolicy: Property<PlistConflictPolicy>
Link copied to clipboard
var description: @Nullable String
Link copied to clipboard
@get:Input
abstract val dryRun: Property<Boolean>
Link copied to clipboard
@get:Internal
var enabled: Boolean
Link copied to clipboard
var group: @Nullable String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@get:Internal
abstract val infoPlistFile: RegularFileProperty
Link copied to clipboard
@get:Internal
abstract val projectRootDir: DirectoryProperty
Link copied to clipboard
@get:Input
@get:Optional
abstract val proMotion120Hz: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val propagateAppName: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val propagateBuildNumber: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val propagateMarketingVersion: Property<Boolean>
Link copied to clipboard
val state: TaskStateInternal
Link copied to clipboard
val timeout: Property<Duration>
Link copied to clipboard
@get:Input
@get:Optional
abstract val usesNonExemptEncryption: Property<Boolean>

Functions

Link copied to clipboard
open override fun acceptServiceReferences(serviceReferences: MutableSet<ServiceReferenceSpec>)
Link copied to clipboard
open override fun appendParallelSafeAction(action: Action<in Task>)
Link copied to clipboard
open operator override fun compareTo(other: Task): Int
Link copied to clipboard
open override fun configure(closure: Closure<Any>): Task
Link copied to clipboard
open override fun dependsOn(vararg paths: Any): Task
Link copied to clipboard
open override fun doFirst(action: Closure<Any>): Task
open override fun doFirst(action: Action<in Task>): Task
open override fun doFirst(actionName: String, action: Action<in Task>): Task
Link copied to clipboard
open override fun doLast(action: Closure<Any>): Task
open override fun doLast(action: Action<in Task>): Task
open override fun doLast(actionName: String, action: Action<in Task>): Task
Link copied to clipboard
open override fun doNotTrackState(reasonNotToTrackState: String)
Link copied to clipboard
open override fun doNotTrackStateIf(reason: String, spec: Spec<in TaskInternal>)
Link copied to clipboard
open override fun finalizedBy(vararg paths: Any): Task
Link copied to clipboard
open override fun getActions(): MutableList<Action<in Task>>
Link copied to clipboard
open override fun getAnt(): AntBuilder
Link copied to clipboard
@Internal
open override fun getAsDynamicObject(): DynamicObject
Link copied to clipboard
open override fun getDependsOn(): MutableSet<Any>
Link copied to clipboard
open override fun getDestroyables(): TaskDestroyables
Link copied to clipboard
open override fun getDidWork(): Boolean
Link copied to clipboard
open override fun getExtensions(): ExtensionContainer
Link copied to clipboard
open override fun getFinalizedBy(): TaskDependency
Link copied to clipboard
open override fun getIdentityPath(): Path
Link copied to clipboard
open override fun getInputs(): TaskInputsInternal
Link copied to clipboard
@Internal
open override fun getLifecycleDependencies(): TaskDependencyInternal
Link copied to clipboard
open override fun getLocalState(): TaskLocalState
Link copied to clipboard
open override fun getLogger(): Logger
Link copied to clipboard
open override fun getLogging(): LoggingManager
Link copied to clipboard
open override fun getMustRunAfter(): TaskDependency
Link copied to clipboard
open override fun getName(): String
Link copied to clipboard
open override fun getOnlyIf(): Spec<in TaskInternal>
Link copied to clipboard
open override fun getOutputs(): TaskOutputsInternal
Link copied to clipboard
open override fun getPath(): String
Link copied to clipboard
open override fun getProject(): Project
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun getRequiredServices(): TaskRequiredServices
Link copied to clipboard
open override fun getSharedResources(): MutableList<ResourceLock>
Link copied to clipboard
open override fun getShouldRunAfter(): TaskDependency
Link copied to clipboard
open override fun getStandardOutputCapture(): StandardOutputCapture
Link copied to clipboard
open override fun getTaskActions(): MutableList<InputChangesAwareTaskAction>
Link copied to clipboard
open override fun getTaskDependencies(): TaskDependencyInternal
Link copied to clipboard
open override fun getTaskIdentity(): TaskIdentity<*>
Link copied to clipboard
open override fun getTemporaryDir(): File
Link copied to clipboard
open override fun getTemporaryDirFactory(): Factory<File>
Link copied to clipboard
open override fun hasProperty(propertyName: String): Boolean
Link copied to clipboard
open override fun hasTaskActions(): Boolean
Link copied to clipboard
Link copied to clipboard
open override fun mustRunAfter(vararg paths: Any): Task
Link copied to clipboard
open override fun notCompatibleWithConfigurationCache(reason: String)
Link copied to clipboard
open override fun onlyIf(onlyIfClosure: Closure<Any>)
open override fun onlyIf(spec: Spec<in Task>)
open override fun onlyIf(onlyIfReason: String, spec: Spec<in Task>)
Link copied to clipboard
open override fun prependParallelSafeAction(action: Action<in Task>)
Link copied to clipboard
open override fun property(propertyName: String): Any
Link copied to clipboard
open override fun restoreOnlyIf(onlyIf: Spec<in TaskInternal>)
Link copied to clipboard
open override fun restoreTaskActions(taskActions: MutableList<InputChangesAwareTaskAction>)
Link copied to clipboard
fun sanitize()
Link copied to clipboard
open override fun setActions(replacements: MutableList<Action<in Task>>)
Link copied to clipboard
open override fun setDependsOn(dependsOn: MutableIterable<*>)
Link copied to clipboard
open override fun setDidWork(didWork: Boolean)
Link copied to clipboard
open override fun setFinalizedBy(finalizedByTasks: MutableIterable<*>)
Link copied to clipboard
open override fun setMustRunAfter(mustRunAfterTasks: MutableIterable<*>)
Link copied to clipboard
open override fun setOnlyIf(onlyIfClosure: Closure<Any>)
open override fun setOnlyIf(spec: Spec<in Task>)
open override fun setOnlyIf(onlyIfReason: String, spec: Spec<in Task>)
Link copied to clipboard
open override fun setProperty(name: String, value: Any)
Link copied to clipboard
open override fun setShouldRunAfter(shouldRunAfterTasks: MutableIterable<*>)
Link copied to clipboard
open override fun shouldRunAfter(vararg paths: Any): TaskDependency
Link copied to clipboard
open override fun usesService(service: Provider<out BuildService<*>>)