架构为arm64的未定义符号"_OBJC_CLASS_$_SFSafariViewController"

16

我正在尝试将Google登录集成到我的iOS应用程序中。我已经按照Google提供的说明进行操作。

我还添加了SafariService.framework。

但是我仍然遇到了这个错误:

    Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_SFSafariViewController", referenced from:
      objc-class-ref in GoogleSignIn(GIDSignIn.o)

如何解决这个问题?

有任何想法吗?

谢谢。


1
你的部署目标是什么?SFSafariViewController仅适用于iOS 9。还要检查链接器标志-ObjC。 - Ashish Kakkad
你需要小心使用 -ObjC,因为它可能会带来更多问题而不是解决问题。 - Droppy
这些是我的链接器标志:-Objc -fobjc-arc -all_load - iBug
我的部署目标设置为7.0。 - iBug
2个回答

18

我也遇到了同样的问题,但我的问题是没有包含SafariServices框架。

我按要求添加了它,然后它就可以正常工作了。

确保您具有以下配置:

  • 禁用位代码
  • 添加所有必需的框架
  • 链接器标志 -ObjC(而不是-Objc)
  • 添加所需的URL类型
  • 导入GoogleSignIn.h
  • 将GoogleServices-Info.plist导入您的目标中

在我的配置中,我使用7.0作为部署目标。

希望能帮到您。 谢谢。


1
@esefire需要更多关于“已在目标中导入GoogleServices-Info.plist”的描述。 - Suhas Arvind Patil

16

由于SafariServices框架仅适用于iOS9及以上版本,您是否在低于该版本的设备上尝试运行此应用程序?如果是这样,您是否将该框架添加为必需的(使其无法在旧版iOS上运行)?请尝试将其设置为可选项(附加图像以更好地解释我的意思)。

输入图像描述


1
谢谢。我已经尝试了你的解决方案,但是我仍然得到相同的错误。我正在尝试在iOS版本8.2的设备上运行该应用程序。 - iBug

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