我在SDK中导入了新版本的框架。无论如何,我无法在运行iOS 9.0.1的iPhone 6上构建,因为以下错误让我发疯:
duplicate symbol _IPDJobStatus in:
/Users/akiki/Desktop/iOS 9 Test/MPSDK/iPD.framework/iPD(IPDDevice.o)
/Users/akiki/Desktop/iOS 9 Test/MPSDK/iPD.framework/iPD(IPDAdministration.o)
ld: 5 duplicate symbols for architecture arm7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
在5个文件中找到两次相同的符号_IPDJobStatus
会发生这种情况。使用arm64架构运行iOS 9.1的iPhone 4S也是如此。要导入框架,我从项目中删除旧框架,导入新框架并检查 Link Binary with Library 部分,框架引用链接到正确的更新文件。在询问之前我试图执行以下操作:
.m
文件。-ObjC
链接器标志(在这种情况下,重复的符号从五个变为仅一个)。有人可以给我一些帮助吗?
答案 0 :(得分:2)
您可以检查您的项目目录是否有可用的框架。如果可用,则删除它。
答案 1 :(得分:1)
我能够使用以下代码解决同样的问题。
将其添加到构建设置中的库搜索路径,并确保选择递归,删除可能是绝对路径的其他库路径。
$(PROJECT_DIR)
可能会帮助你。
答案 2 :(得分:1)
你不能制作同名的常量类型变量&键入两个或更多类。
_IPDJobStatus
是这个常量类型变量吗?
将其更改为其他类的其他名称。
答案 3 :(得分:0)
这意味着在您项目中同一个View Controller实例的多个副本(i,e表示重复)。
可能的观察:
此 IPDJobStatus 变量包含在 IPDDevice 或 IPDAdministration 的框架中重复。请检查一下。
注意:您不应该/创建一个已经在任何其他框架中拥有Xcode默认或第三方框架的类。
例如: UIkit框架具有类名" UIApplication " (即UIApplication.h和UIApplication.m)。因此,如果您创建了类名称" UIApplication "。将发生此错误。同样适用于第三方框架。