将 Cocoa Touch 框架链接到 Today Extension 时出现链接器错误
Posted
技术标签:
【中文标题】将 Cocoa Touch 框架链接到 Today Extension 时出现链接器错误【英文标题】:Linker error when linking Cocoa Touch Framework to Today Extension 【发布时间】:2015-12-28 23:40:08 【问题描述】:我正在处理的当前项目有一个 ios 组件,以及一个在 UI 组件中有一点重叠的 Today Extension。
我创建了一个包含重复 UI 元素的 cocoa touch 框架作为项目中的新目标,并将其添加到应用程序和扩展程序的 Link Binary with Libraries 构建阶段。
我可以很好地构建 Debug 版本,但是在归档发布版本时出现以下错误。
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_MyClass", referenced from: someFile
ld: symbol(s) not found for architecture arm64
armv7 也会出现同样的错误。
我试图通过使用构建设置来找到解决方案,但到目前为止没有运气。
Current build settings
编辑
我发现了问题所在。 我将“默认隐藏的符号”编译标志设置为 YES。
【问题讨论】:
库(及其所有组件)是在发布版本中构建还是仅用于调试版本? 感谢@Tim 的回复。它正在为两者构建。 看起来包含MyClass
(MyClass.m
?) 的实现文件尚未添加到任何 Xcode 目标中。
@***foe 我也仔细检查过,它已添加到我创建的 Cocoa Touch 框架中。
【参考方案1】:
我发现了问题所在。 我将“默认隐藏的符号”编译标志设置为 YES。
【讨论】:
以上是关于将 Cocoa Touch 框架链接到 Today Extension 时出现链接器错误的主要内容,如果未能解决你的问题,请参考以下文章
将 cocoapod 依赖项添加到 cocoa touch 框架