React-native-onesignal: 找不到架构 x86_64 的符号

创建于 2016-04-14  ·  25评论  ·  资料来源: OneSignal/react-native-onesignal

嘿,

将其导入 RN 项目(从 Parse 迁移!)时遇到问题。

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_OneSignal", referenced from:
      objc-class-ref in libRCTOneSignal.a(RCTOneSignal.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

尽管架构不同,但它看起来与https://github.com/geektimecoil/react-native-onesignal/issues/5非常相似。

我对 ObjectiveC 非常不熟悉,但很乐意提供帮助,如果我可以根据需要进行指导,我会发布 PR。 希望有人可以帮助我!

谢谢
奥利

最有用的评论

我遇到了与@olliebrennan完全相同的问题,通过以下方式解决:

  1. node_modules/react-native-onesignal/ios/Frameworks文件夹拖入 XCode 左侧面板下的 RCTOneSignal.xcodeproj
  2. 在左侧面板中,将 OneSignal.framework 拖入 Link Binary with Libraries

所有25条评论

@olliebrennan您是否设法解决了此问题? 我正在查看 #5 的提交以找出要做什么。 我是 JS 开发者,不是 iOS 开发者,所以不熟悉各种设置。

也许@jkasten2可以在这里提供帮助?

@jamiemchale我没有。 遇到了与您相同的问题,因此使用 Parse 离开我的应用程序,直到出现修复程序。 如果可以,我很乐意提供帮助,但正如您所说,我也不熟悉 iOS 语言/设置。

@olliebrennan @avishayil
如果您安装了带有 Cocoa pod 的 OneSignal 插件,它可能不会将 OneSignal 原生框架引用到主项目。 您可以将 OneSignal.framework 从 Finder 拖放到 XCode 中,这样可以修复链接器错误。 如果没有它不起作用,您可能必须选择“如果需要,复制项目”。

image

image

最后确保您使用的是 Xcode 7.0 或更高版本,因为旧版本的 Xcode 将导致完全相同的错误。

谢谢@jkasten2
我将在接下来的几天内发布一个版本,然后会尝试这个并报告。

干杯

+1 在 OSX 上有类似的问题

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_OneSignal", referenced from:
      objc-class-ref in libRCTOneSignal.a(RCTOneSignal.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我错过了OneSignal.framework 。 尝试将appname/node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework拖入 XCode 的库中。 还是行不通。

也试过appname/ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework ,也没有用。

@olliebrennan您是否设法解决了该问题?

我遇到了与@olliebrennan完全相同的问题,通过以下方式解决:

  1. node_modules/react-native-onesignal/ios/Frameworks文件夹拖入 XCode 左侧面板下的 RCTOneSignal.xcodeproj
  2. 在左侧面板中,将 OneSignal.framework 拖入 Link Binary with Libraries

@hyperh @olliebrennan你解决了吗?

@avishayil我无法解决这个问题。 我决定使用 apnagent 来处理我的 APN 内容。

如果有人遇到同样的错误,请报告。 我现在关闭这个问题。

@avishayil我有这个问题。 尝试按照@whollacsek的说明进行操作,但我仍然在 XCode 中遇到相同的错误。

screenshot 2016-06-03 15 40 31

@chrissm79和其他人相同的问题

我刚到这里,是的,同样的问题。

+1

看着它。 有复现步骤吗?

我遇到了这个问题,并且能够通过从 Finder 单击并拖动 ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework 到我的 XCode 项目的 Frameworks 文件夹中来修复它。

@chrissm79完全相同的问题

编辑:通过下载框架并从文档链接中链接它而不是使用 node_modules 文件夹中的框架来解决。

您有可以参考和使用的示例项目,请确保
您正在遵循所有命令,不应发生错误。
2016 年 7 月 2 日上午 12:37,“Charles Hulcher”通知@github.com 写道:

@chrissm79相同的问题https://github.com/chrissm79


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/geektimecoil/react-native-onesignal/issues/18#issuecomment -230052711,
或静音线程
https://github.com/notifications/unsubscribe/AAyekNTkU15t6IP4zvQzg06yXzUf0akHks5qRYiBgaJpZM4IHVBS
.

我也有这个问题但是不知道怎么解决

ld:警告:忽略文件 /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd,文件 /Users/apple/Desktop/Camera/XCTest.framework/XCTest.tbd 中缺少所需的架构 x86_64(3 个切片)
体系结构 x86_64 的未定义符号:
“_OBJC_CLASS_$_XCTestCase”,引用自:
_OBJC_CLASS_$__TtC6Camera11toucanTests in toucanTests.o
“_OBJC_METACLASS_$_XCTestCase”,引用自:
_OBJC_METACLASS_$__TtC6Camera11toucanTests in toucanTests.o
ld:找不到架构 x86_64 的符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我在 react-native 0.37 上,这是我如何让它工作的(我认为自述文件/文档稍微落后于 react native)。

  1. 在一个没有 onesignal 工作的干净分支上......
  2. 运行npm install react-native-onesignal --save
  3. 运行react-native link
  4. 对于 iOS,请遵循 podfile 说明(请务必仔细遵循 react native 版本说明)
  5. 对于 iOS,请按照说明中的代码添加进行操作
  6. 对于 android 遵循 android 说明(大部分代码应该来自链接命令,但请仔细检查所有内容)
  7. 对于 android 一定要使用import com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage;而不是import com.geektime.rnonesignal.ReactNativeOneSignalPackage; (一些旧文档有 rnonesignal 并且已经更新)
  8. 然后完成配置和设置以及所有文件
  9. 希望这对你有用......如果你有任何问题,请回复,因为我花了一些时间在几个分支上的 android 和 iOS 上让它工作。

YMMV 如果您使用的是低于 RN v0.37 的东西。 祝你好运。

问题解决了!!

只需从项目导航器,转到 Pods 部分,找到 oneSignal.framework 并将其拖到位于目标下的“Link Binary with libraries”中,就是这样! 所以基本上只使用框架而不是 pod 文件更好。

就我而言,我必须在podfile添加以下行并再次运行pod install 。 然后运行Clean并再次构建。
pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'

就我而言,运行一个较旧的 React Native 0.39.0 项目,我不得不react-native linkClean构建,然后再次Build项目。

在我的情况下,libRCTOneSignal.a 在带有二进制文件的链接库中丢失,我刚刚添加并解决了问题

你可以按照这里的第二步https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual -linking

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