Unity Facebook SDK 7.0.2在iOS上编译失败

4

我目前使用的是Unity 5.0.2和Unity FB SDK 7.0.2 Beta,在iOS编译期间出现了问题。

错误信息如下:

Undefined symbols for architecture armv7:
  "_iosShareLink", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosSetShareDialogMode", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosLogOut", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosLogInWithReadPermissions", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosLogInWithPublishPermissions", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosFBAppEventsLogEvent", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosInit", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosJoinGameGroup", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosFBSettingsActivateApp", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosAppRequest", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosFBSdkVersion", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosCreateGameGroup", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosFBAppEventsSetLimitEventUsage", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosGetDeepLink", referenced from:
      RegisterMonoModules() in RegisterMonoModules.o
  "_iosFBAppEventsLogPurchase", 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)

如果我使用IL2CPP编译,可能会出现类似错误的提示,其中还包含一些额外的信息。
Undefined symbols for architecture armv7:
  "_iosShareLink", referenced from:
      _IOSFacebook_iosShareLink_m231 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosShareLink_m231, _IOSFacebook_iosShareLink_m231_MethodInfo )
  "_iosSetShareDialogMode", referenced from:
      _IOSFacebook_iosSetShareDialogMode_m230 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosSetShareDialogMode_m230_MethodInfo, _IOSFacebook_iosSetShareDialogMode_m230 )
  "_iosLogOut", referenced from:
      _IOSFacebook_iosLogOut_m229 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosLogOut_m229, _IOSFacebook_iosLogOut_m229_MethodInfo )
  "_iosLogInWithReadPermissions", referenced from:
      _IOSFacebook_iosLogInWithReadPermissions_m227 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosLogInWithReadPermissions_m227_MethodInfo, _IOSFacebook_iosLogInWithReadPermissions_m227 )
  "_iosLogInWithPublishPermissions", referenced from:
      _IOSFacebook_iosLogInWithPublishPermissions_m228 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosLogInWithPublishPermissions_m228_MethodInfo, _IOSFacebook_iosLogInWithPublishPermissions_m228 )
  "_iosFBAppEventsLogEvent", referenced from:
      _IOSFacebook_iosFBAppEventsLogEvent_m236 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosFBAppEventsLogEvent_m236, _IOSFacebook_iosFBAppEventsLogEvent_m236_MethodInfo )
  "_iosInit", referenced from:
      _IOSFacebook_iosInit_m226 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosInit_m226, _IOSFacebook_iosInit_m226_MethodInfo )
  "_iosJoinGameGroup", referenced from:
      _IOSFacebook_iosJoinGameGroup_m234 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosJoinGameGroup_m234_MethodInfo, _IOSFacebook_iosJoinGameGroup_m234 )
  "_iosFBSettingsActivateApp", referenced from:
      _IOSFacebook_iosFBSettingsActivateApp_m235 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosFBSettingsActivateApp_m235, _IOSFacebook_iosFBSettingsActivateApp_m235_MethodInfo )
  "_iosAppRequest", referenced from:
      _IOSFacebook_iosAppRequest_m232 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosAppRequest_m232, _IOSFacebook_iosAppRequest_m232_MethodInfo )
  "_iosFBSdkVersion", referenced from:
      _IOSFacebook_iosFBSdkVersion_m240 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosFBSdkVersion_m240, _IOSFacebook_iosFBSdkVersion_m240_MethodInfo )
  "_iosCreateGameGroup", referenced from:
      _IOSFacebook_iosCreateGameGroup_m233 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosCreateGameGroup_m233, _IOSFacebook_iosCreateGameGroup_m233_MethodInfo )
  "_iosFBAppEventsSetLimitEventUsage", referenced from:
      _IOSFacebook_iosFBAppEventsSetLimitEventUsage_m238 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosFBAppEventsSetLimitEventUsage_m238_MethodInfo, _IOSFacebook_iosFBAppEventsSetLimitEventUsage_m238 )
  "_iosGetDeepLink", referenced from:
      _IOSFacebook_iosGetDeepLink_m239 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosGetDeepLink_m239, _IOSFacebook_iosGetDeepLink_m239_MethodInfo )
  "_iosFBAppEventsLogPurchase", referenced from:
      _IOSFacebook_iosFBAppEventsLogPurchase_m237 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _IOSFacebook_iosFBAppEventsLogPurchase_m237, _IOSFacebook_iosFBAppEventsLogPurchase_m237_MethodInfo )
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有人知道怎样解决吗?

2个回答

1
如果你发现Xcode项目中缺少fbUnityInterface.h文件,请尝试以下操作:
在Unity项目中找到该文件,并在检查器中的“选择插件平台”框中勾选iOS选项。
没有勾选此复选框,Unity可能不知道需要将.h文件包含在构建中,因为它仅在.mm文件中被引用,而Unity不解析该文件。

1
这个对我解决了问题!虽然,FBUnityUtility.h 对我来说也需要检查以使其编译。所以一个建议是在项目搜索窗口中输入“fbunity”,并检查结果列表中列出的所有文件,以确保 iOS 复选框被选中。 - user1029978

-1

问题是XCode项目缺少Facebook绑定文件。

请确保以下文件存在于Xcode中。

  1. fbUnityInterface.h和fbUnityInterface.m(FB绑定文件)
  2. NativeDialogModes.cs
  3. FacebookSDK

即使这些文件没有在Xcode中呈现,我也无能为力。 - Cadrick Loh
这些文件位于Unity文件夹中。请手动将它们添加到您的XCode项目中。 - Zohaib Javed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接