升级Xcode15后Widget扩展报链接错误,添加-ld_classic无效求解决
修复Xcode 15 Widget扩展的
_main未定义链接错误 - 检查Widget扩展的Info.plist配置:确保
NSExtensionPrincipalClass设置正确,需指向你的Widget结构体,格式类似$(PRODUCT_MODULE_NAME).Widget。该配置缺失或错误会导致链接器找不到入口点,触发_main未定义问题。 - 确认扩展的编译目标类型:在项目设置的「Build Settings」中,找到「Mach-O Type」,Widget扩展必须设置为
Bundle,若误设为Executable会引发此错误。 - 清理并重新构建:执行
Product > Clean Build Folder,再手动删除DerivedData目录(可通过Xcode > Settings > Locations找到路径),之后重新编译项目。Xcode 15的缓存残留可能导致旧配置干扰。 - 排查冲突依赖:部分第三方库在Xcode 15新链接器环境下可能与Widget扩展不兼容。尝试临时移除近期新增的依赖,验证问题是否解决,再逐一排查具体冲突库。
- 验证
LD_RUNPATH_SEARCH_PATHS配置:在Build Settings中,确保该路径包含@executable_path/Frameworks和@loader_path/Frameworks,Widget扩展需要正确加载依赖框架。
内容的提问来源于stack exchange,提问作者var
相关产品推荐
相关产品推荐

