我已经分叉了一个名为BTNavigationDropdownMenu
的框架(适用于ios的swift项目)。一切正常,直到我试图在我创建的分支中添加依赖项到最新版本。无论我是通过podfile还是DYBadge
添加其他框架(Carthage
),问题都是一样的。
找不到自动链接框架DYBadge
。
似乎UIView
扩展程序存在问题,该扩展程序是DYBadge
的一部分。
DYBadge
在我正在处理的主应用中工作正常(我也需要在应用目标中)。
以下错误。感谢任何正确方向的提示。
ld:警告:未找到自动链接框架DYBadge未定义 架构符号x86_64:"(扩展名为 DYBadge):__ ObjC.UIView.getBadge() - > DYBadge.DYBadge?",引用 从: Demo.BTNavigationDropdownMenu.updateBadge(text:Swift.String,at:Swift.Int) - > BTNavigationDropdownMenu.o中的()ld:符号不是 发现架构x86_64 clang:错误:链接器命令失败 退出代码1(使用-v查看调用)
答案 0 :(得分:8)
由于FRAMEWORK_SEARCH_PATHS
可能未设置或错误(由于我移动了Info.plist
文件而发生),因此Xcode无法找到您的框架。
您可以通过进入目标并修改“构建设置”来解决此问题。只需在其中搜索FRAMEWORK_SEARCH_PATHS
并添加正确的值,通常为$(PROJECT_DIR)/Carthage/Build/iOS
(对于iOS项目)。 $(inherited)
也应作为第一个条目存在。
这是@ user3122959答案中的帖子,它帮助我和其他人解决了该问题,并被要求作为此问题的答案。
答案 1 :(得分:2)
我在通过测试访问第三者框架时遇到了问题。这是我的固定方法。
在Xcode中,转到:Your Unit-Test target > Build Phases > Link Binary With Libraries
在Finder中,转到:Carthage > Build > yourframework.Framework
将框架拖入您的构建阶段,然后清理(cmd-shift-K)。
答案 2 :(得分:0)
尝试此过程 -
let customAVPLayerVC = CustomAVPLayerC()
customAVPLayerVC.delegate = self
或"Cmd + Shift + K"
进行清理,然后退出Xcode。shift + cmd + alt + k
"rm -rf ~/Library/Developer/Xcode/DerivedData"
答案 3 :(得分:0)
如果您在一个工作区中使用迦太基和多个项目,则必须在主迦太基文件夹中添加符号链接。这将取决于您的结构,例如,如果您拥有
项目->迦太基
项目->框架-> MyImbaFramework比MyImbaFramework文件夹中的终端中的cd还要运行
ln -s ../../Carthage Carthage
答案 4 :(得分:0)
在我的情况下,Bitcode出现问题,但是Xcode无法给出准确的错误诊断,因为项目框架引用也被弄乱了。运行框架测试效果很好,但是存档时出现了自动链接错误。
从项目中删除了所有框架引用,包括它们所属的Frameworks
组,再次添加它们解决了引用问题,然后我得到了位码问题,该问题在目标框架上被禁用,然后并且仅然后,归档成功了
答案 5 :(得分:0)
如果您使用在false上启用了Bitcode的框架,这也可能是错误。 仅当所有框架也都将位码启用为true时,才可以启用位码。 转到目标构建设置并禁用位码。
答案 6 :(得分:0)
我有一个类似的错误,此页面上的所有建议均无效。当指向我的测试iPhone尝试创建档案时,它发生了,当我将其更改为“ Any iOS Device”时,它可以正常工作。我怀疑这与最近增加对Apple Silicon的支持的更改有关,但我不确定如何。
答案 7 :(得分:0)
请确保您没有设置testfile的是进口XCTest的TargetMembership的主要对象,但一个测试目标: - )