iOS App Extension 看不到主项目的类
Posted
技术标签:
【中文标题】iOS App Extension 看不到主项目的类【英文标题】:iOS App Extension does not see class of main project 【发布时间】:2015-03-11 17:48:49 【问题描述】:在我的项目中,我有一个 Action 扩展,它在我的主项目中使用了一个类。然后该类使用从 pod 安装的类,特别是 .我在将扩展自动链接到 pod 时遇到了问题,但通过选择扩展目标、常规选项卡并将每个 pod 添加到链接框架和库来手动完成。
现在我看到了:
ld: warning: directory not found for option '-L/Users/apfritts/Box/Pencils/build/Debug-iphoneos'
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_User", referenced from:
objc-class-ref in ActionViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
看起来我的构建目标是 64 位(arm64、arm7、arm7s),所以我不确定为什么它显示 x86_64 的未定义符号。
【问题讨论】:
【参考方案1】:我一直在手动设置扩展的依赖关系,很容易忘记你所做的事情,如果你需要更改你依赖的 pod 或进行一些其他结构更改,那么很难重现你的工作。
相反,您可以在 Podfile 中设置明确希望 pod 链接的目标:
link_with 'App Name', 'Extension Name'
您之后列出的每个 pod 都将应用于这两个目标。
或者,如果您的目标具有不同的依赖关系,您可以只为其中一个目标添加 pod(仍然保留公共 pod 而不指定目标):
target :'Extension Name' do
pod 'somepod'
end
我遇到的唯一问题是 cocoapods 为每个目标创建了一个单独的 xcscheme,但将两个目标都设置为仅使用其中一个方案。我不得不手动切换扩展使用的方案。回家后我会更新截图。
【讨论】:
以上是关于iOS App Extension 看不到主项目的类的主要内容,如果未能解决你的问题,请参考以下文章