Unity 4.5.5f1 + Facebook SDK 6



适用于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 编译错误的解决方案

总之,

  1. 转到应用程序的"构建阶段"
  2. 展开已编译的源
  3. 滚动至FbUnityInterface.mm
  4. 双击列表中的项目。它应该显示一个用于输入编译器标志的文本字段
  5. 输入"-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的支持是你最好的选择。

最新更新