Facebook-sdk-for-unity: 9.1.0 - 未定义符号:_IOSFBEnableProfileUpdatesOnAccessTokenChange

创建于 2021-04-13  ·  22评论  ·  资料来源: facebook/facebook-sdk-for-unity

清单

环境

在此处描述您的开发环境,提供尽可能多的详细信息。 如果您有它们,请确保包括:

  • Unity 编辑器版本: 2020.1.17
  • Unity SDK 版本: 9.1.0
  • 安装平台和版本: [iOS]版本X.X.X
  • XCode:12.4(Unity Cloud Build 中可用的最高版本)

目标

你想达到什么目的?
尝试使用 9.1.0 FB SDK 在 Unity Cloud Build 和本地 XCode 中构建。

预期成绩

你期望发生什么?
更新 facebook unity sdk 后,XCode 才能成功构建。

实际结果

究竟发生了什么? 你能提供一个堆栈跟踪吗?
50424:▸ 链接 UnityFramework
50425: ▸ ❌; 架构 arm64 的未定义符号
50426:▸>符号:_IOSFBEnableProfileUpdatesOnAccessTokenChange
50427:▸> 引用自:Facebook.Unity.IOS.o 中的_IOSWrapper_EnableProfileUpdatesOnAccessTokenChange_m7ADB5E4C2DE8D7EB448729C43F65D1FFECB5F0CC
50428: ▸ ❌; ld:找不到架构 arm64 的符号
50439: ▸ ❌; clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

重现步骤

重现此问题所需的步骤是什么?
将SDK添加到Unity 2020.1.17f,做一个IOS构建。 确保使用可可豆。

代码示例和详细信息

请提供代码示例以及任何其他详细信息,以帮助我们追踪问题。 如果您可以提供一个测试项目的链接,让我们能够重现该问题,这将极大地帮助我们提高修复速度和质量。

注意:请记住格式化代码以提高可读性:

// INSERT YOUR CODE HERE

最有用的评论

将以下代码放在位于 FacebookSDK/SDK/Editor/iOS 中的 FBUnityInterface.mm 文件末尾的}之前

  void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

所有22条评论

我也是。

现在,您可以在“Facebook.Unity.IOS.cpp”文件中评论以下行

reinterpret_cast(IOSFBEnableProfileUpdatesOnAccessTokenChange)(static_cast<int32_t>(___enable0));

使其成功构建,但这不是最佳和最终解决方案。
这绝对是一个临时解决方案,有人有更好的答案吗?

将以下代码放在位于 FacebookSDK/SDK/Editor/iOS 中的 FBUnityInterface.mm 文件末尾的}之前

  void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

我看到了同样的错误:

Undefined symbols for architecture arm64: "_IOSFBEnableProfileUpdatesOnAccessTokenChange", referenced from: _IOSWrapper_EnableProfileUpdatesOnAccessTokenChange_m7ADB5E4C2DE8D7EB448729C43F65D1FFECB5F0CC in Facebook.Unity.IOS.o _IOSWrapper_IOSFBEnableProfileUpdatesOnAccessTokenChange_m7E35B38EDDDF18DE2B0B960DA8269D277C8FBCAB in Facebook.Unity.IOS.o (maybe you meant: _IOSWrapper_IOSFBEnableProfileUpdatesOnAccessTokenChange_m7E35B38EDDDF18DE2B0B960DA8269D277C8FBCAB) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我的设置:

Unity 编辑器版本:2020.1.11
Unity SDK 版本:9.1.0
安装平台及版本:[iOS] 版本 14.4.2
代码:12.4

我还没有尝试过上述建议。

现在,您可以在“Facebook.Unity.IOS.cpp”文件中评论以下行

reinterpret_cast(IOSFBEnableProfileUpdatesOnAccessTokenChange)(static_cast<int32_t>(___enable0));

使其成功构建,但这不是最佳和最终解决方案。
这绝对是一个临时解决方案,有人有更好的答案吗?

我试过了,我能够建造!

现在,您可以在“Facebook.Unity.IOS.cpp”文件中评论以下行
reinterpret_cast(IOSFBEnableProfileUpdatesOnAccessTokenChange)(static_cast<int32_t>(___enable0));
使其成功构建,但这不是最佳和最终解决方案。
这绝对是一个临时解决方案,有人有更好的答案吗?

我试过了,我能够建造!

@firatagdas的解决方案也适用于我。

它也无法使用Unity 2019.4.31

使用 Unity 2020.1.16f1 也失败

看起来在任何和所有 Unity 版本上都失败, @firatagdas解决方案完美运行,使用它进行编译,到目前为止没有问题。 他们发布了一个甚至无法在平台上编译的 sdk,这看起来确实令人印象深刻。

抱歉 Facebook,但你是业余爱好者。 您甚至尝试使用 SDK 构建实时项目吗? 错误报告在这里持续了 7 天...修补程序怎么样?

订阅官方解决方案。

@firatagdas ,他的解决方案也对我

有关于这个问题的消息吗? 我设法通过@zhengwu119建议进行修复,但我需要修复才能使用云构建进行构建。

将以下代码放在位于 FacebookSDK/SDK/Editor/iOS 中的 FBUnityInterface.mm 文件末尾的}之前

  void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

谢谢。 它帮助了我。

@firatagdas的解决方案在 2019.4.24 对我有用,谢谢@firatagdas 💯

另一个@firatagdas在这里。 Facebook SDK 9.1.0 与 Unity 2019.4.11f1。 好东西我的哥们

感谢@firatagdas。 建议的解决方案(见下文)适用于我的用例。 FB 团队可以处理这个错误。 看起来解决方案在评论中,至少对于某些用例。 修复似乎非常简单 -> 应该很容易发布错误修复。

void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

这意味着他们甚至没有真正尝试为 iOS 构建 - 但是是的, @firatagdas修复程序也对我

Unity 2021.1.0f1 和 Facebook 9.1.0 的相同问题

Facebook SDK 团队应该聘请@firatagdas来推动工作。

@firatagdas解决方案在 Unity 2019.4.13f1 上为我们工作。 非常感谢伙计。

这应该在 v9.2.0 中修复: https :

此页面是否有帮助?
0 / 5 - 0 等级