适用于iOS和Android的Unity游戏。
当导出到iOS时,我尝试在Xcode中编译,得到:
.../Assets/Facebook/Editor/iOS/FbUnityInterface.mm:22:17: Method definition for 'initWithCookie:logging:status:frictionlessRequests:urlSuffix:' not found
我得到一个苹果Mach-O链接错误
ld: file not found: .../Library/Developer/Xcode/DerivedData/Unity-iPhone-ailzvxifteluzgdrxapptghrbxca/Build/Products/XXX.app/XXX
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
然后我得到:
Undefined symbols for architecture armv7:
"_iosFBSettingsPublishInstall", referenced from:
RegisterMonoModules() in RegisterMonoModules.o
"_iosFBSettingsActivateApp", referenced from:
RegisterMonoModules() in RegisterMonoModules.o
"_iosFBAppEventsSetLimitEventUsage", referenced from:
RegisterMonoModules() in RegisterMonoModules.o
"_iosFBAppEventsLogPurchase", referenced from:
RegisterMonoModules() in RegisterMonoModules.o
"_iosFBAppEventsLogEvent", referenced from:
RegisterMonoModules() in RegisterMonoModules.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
任何帮助都是好的。
感谢
对于最初的海报来说,这真的很晚了,但如果其他人偶然发现这个问题并正在寻找答案,这个帖子就有了:Unity5 iOS与facebook unity sdk 6.2.1 编译错误的解决方案
总之,
- 转到应用程序的"构建阶段"
- 展开已编译的源
- 滚动至FbUnityInterface.mm
- 双击列表中的项目。它应该显示一个用于输入编译器标志的文本字段
- 输入"-fno objc arc"
注意:我不知道这些标志是什么,也不知道它们是如何工作的,但它们帮助我克服了这个错误,所以万岁!:)
由于大多数浏览器不再支持基于NPAPI的插件,因此Facebook API内部正在发生重大变化。这意味着Unity插件也将不受支持,相反,我们将不得不发布到WebGL以获取基于浏览器的内容。Facebook API还没有跟上,我知道你正在为移动设备而构建,但从Facebook API的编写方式来看,一切都混在了一起。
以下是Facebook开发者关于这个问题的博客文章,以及它是如何导致这些问题的:https://developers.facebook.com/blog/post/2015/01/30/preparing-unity-web-player/
我认为你要么不得不回到Unity 4.3,要么就等着Facebook赶上。我认为在下个月左右取消你对Facebook的支持是你最好的选择。