如何修改KMM生成的XCFramework中Info.plist的MinimumOSVersion?
修改KMM生成的XCFramework的MinimumOSVersion值
有两种可靠的方法可以修改XCFramework的Info.plist中的MinimumOSVersion值,适配你的iOS应用TargetSDK 15的要求:
方法1:直接在KMM构建配置中指定最小iOS版本
这是最推荐的方式,从根源上控制生成的框架版本要求,无需后续手动修改。
在你的KMM项目的build.gradle.kts(或build.gradle)文件中,找到Kotlin多平台配置块,在iOS框架的二进制配置里添加minimumOSVersion指定:
kotlin { ios { binaries { framework { baseName = "YourFrameworkName" // 替换为你的框架名称 minimumOSVersion = "15.0" // 设置为你的应用TargetSDK版本 } } } }
重新执行构建任务(./gradlew assembleXCFramework),生成的XCFramework中所有架构对应的Info.plist里的MinimumOSVersion都会被设置为15.0。
方法2:通过Gradle任务修改已生成的Info.plist
如果方法1未生效(比如存在配置覆盖的情况),可以添加一个Gradle任务,在XCFramework生成后自动修改所有相关的Info.plist文件。
在build.gradle.kts中添加以下任务:
tasks.withType<org.jetbrains.kotlin.gradle.tasks.XCFrameworkTask> { doLast { val targetOSVersion = "15.0" val frameworkName = "YourFrameworkName" // 替换为你的框架名称 // 遍历XCFramework目录下所有的Info.plist文件 fileTree(outputDir) { include("**/${frameworkName}.framework/Info.plist") }.forEach { plistFile -> // 使用macOS自带的PlistBuddy工具修改版本值 exec { commandLine("/usr/libexec/PlistBuddy", "-c", "Set :MinimumOSVersion $targetOSVersion", plistFile.absolutePath) } } } }
执行构建任务时,该任务会在XCFramework生成完成后自动修改所有架构对应的Info.plist文件,确保MinimumOSVersion统一为目标值。
内容的提问来源于stack exchange,提问作者Sascha Held
相关产品推荐
相关产品推荐

