我正在尝试构建一个 KMM 项目,在 Android 和 iOS 模拟器中一切正常,但是当我连接 iOS 设备时,出现以下错误。
失败:构建失败,出现异常。
- 出了什么问题:
发现任务“:shared:embedAndSignAppleFrameworkForXcode”(类型“复制”)的配置存在问题。
类型“org.gradle.api.tasks.Copy”属性“sign”没有配置值。
原因:此属性未标记为可选且未配置任何值。
可能的解决方案:
- 为“sign”赋值。
- 将属性“sign”标记为可选。
请引用https://docs.gradle.org/7.4.1/userguide/validation_problems.html#value_not_set有关此问题的更多详细信息。
我的 gradle wrapper 属性有 7.4.1,我用过 7.2 版本也有同样的问题。
如果有人能告诉我如何解决这个 gradle 问题以使框架库为 iOS 项目做好准备,那将非常有帮助,谢谢。
与此同时,如果我找到任何解决方案,我会尝试弄清楚自己会更新。
最佳答案
看起来您缺少 EXPANDED_CODE_SIGN_IDENTITY
。如果您选择 iOS 设备,Xcode 会设置此变量。对于模拟器在我的例子中,它将它设置为 -
。
Kotlin 多平台插件需要为 embedAndSignAppleFrameworkForXcode
设置此变量才能正常工作 here .
我认为更新 Xcode 可能会有帮助。或者,如果未定义,您可以将 EXPANDED_CODE_SIGN_IDENTITY
设置为 -
。
要做到这一点,只需更新您的运行脚本阶段:
: "${EXPANDED_CODE_SIGN_IDENTITY:=-}"
./gradlew :shared:embedAndSignAppleFrameworkForXcode
希望对您有所帮助。
关于Kotlin 多平台问题 : Type 'org.gradle.api.tasks.Copy' property 'sign' doesn't have a configured value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71491942/