React-native-onesignal: 架构 x86_64 的 101 个重复符号

创建于 2017-03-07  ·  16评论  ·  资料来源: OneSignal/react-native-onesignal

链接器命令失败,退出代码为 1

最有用的评论

对于这两个,你使用 CocoaPods 吗?
因为实际上,当您使用 Cocoapods 时会发生初始错误,因为对于 react-native-onesignal 的 3.0.3 版本,他们已经停止使用可可豆荚。
您收到重复错误是因为您有 cocoapods 版本的 onesignal + 3.0.3 的 react native onesignal 现在集成了相同的 Sdk 文件(它们是重复的)。
要么继续使用没有 cocoapods 的 3.0.3 版本,要么使用 cocoapods 转到 3.0.2

对我来说,理解这一点让我能够解决同样的问题......

所有16条评论

在您的 package.json 中,请在此处复制有关 react-native-onesignal 的行

我有一个类似的问题:

架构 arm64 的 23 个重复符号

包.json:

"react-native-onesignal": "^3.0.3",

请删除您的 npm-modules 文件夹。
然后,在您的 package.json 中更改为"react-native-onesignal": "3.0.2",
运行npm install
并尝试在 Xcode 上再次构建。 如果它改变了什么,请告诉我!

听从你的建议,现在我得到:

架构 arm64 的未定义符号:
“_OBJC_CLASS_$_RCTOneSignal”,引用自:
AppDelegate.o 中的 objc-class-ref
ld:找不到架构 arm64 的符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

重新运行react-native link react-native-onesignal ,我收到了大量错误:

image

@Pampounet

这是我的 package.json
“反应”:“15.4.2”,
“反应原生”:“0.40.0”,
"react-native-android-location-services-dialog-box": "^1.2.0",
"react-native-checkbox": "^1.1.0",
"react-native-code-push": "^1.17.0-beta",
"react-native-country-picker-modal": "^0.2.10",
"react-native-drawer": "^2.3.0",
"react-native-easy-grid": "0.1.8",
"react-native-fbsdk": "^0.5.0",
"react-native-keyboard-aware-scroll-view": "0.2.7",
"react-native-maps": "^0.13.0",
"react-native-modalbox": "^1.3.9",
“react-native-onesignal”:“^3.0.3”。

对于这两个,你使用 CocoaPods 吗?
因为实际上,当您使用 Cocoapods 时会发生初始错误,因为对于 react-native-onesignal 的 3.0.3 版本,他们已经停止使用可可豆荚。
您收到重复错误是因为您有 cocoapods 版本的 onesignal + 3.0.3 的 react native onesignal 现在集成了相同的 Sdk 文件(它们是重复的)。
要么继续使用没有 cocoapods 的 3.0.3 版本,要么使用 cocoapods 转到 3.0.2

对我来说,理解这一点让我能够解决同样的问题......

@superquest您可以做的是使用 pod 安装 oneSignal,然后获取 oneSignal 框架文件。 然后删除 pod 并手动将 onesignal 框架与 libonesignal 一起链接到您的项目。 这不会显示任何问题。 我已经以同样的方式完成了。但还没有测试它在移动设备中的通知。一旦我会这样做。我会在这里更新。

尝试降级到 3.0.2,现在看到与@superquest相同,截图

现在要尝试@GeekRishabh最新...

编辑:仍然没有得到它的工作,将通知何时/如果是...... 😬

搞定了! 这是我们所做的:

  1. 从依赖项中删除了react-native-onesignal
  2. 删除了应用程序node_modules文件夹。
  3. 在项目上安装并运行cocoapods-deintegrate 。 (这可能并不适用于所有情况;但是在我们的例子中,我们在这个项目中使用 pod 的唯一原因是为了 onesignal)。
  4. 再次运行安装过程,确保将任何导入更新为< X > (我们从 rn 的 v0.20 左右更新到 0.42 😅)
  5. 清理项目,退出/重新启动 xCode。
  6. ????
  7. 利润!!!

@Pampounet - 您的解决方案对我

我安装了其他 pod,所以这是我为干净地移除 OneSignal pod 所做的:

  1. sudo gem install cocoapods-deintegrate
  2. sudo gem install cocoapods-clean
  3. 从项目内的 ios 目录,运行pod deintegrate
  4. pod clean
  5. 删除 podfile 中的pod 'OneSignal'
  6. 运行pod install
  7. 假设您已遵循 OneSignal 最新版本(对我而言为 3.0.3)中的所有其他安装和配置说明,然后再次运行 build 应该可以工作,并且您将保留其他现有的 pod(情况与 @breadadams 略有不同)

正如@Pampounet指出的那样,3.0.3 要求您从 Cocoapods 中删除 OneSignal 并遵循新的 iOS 设置说明。
https://github.com/geektimecoil/react-native-onesignal#ios -installation

@GeekRishabh @avishayil我想我们现在可以关闭这个问题了。

README.md的Running Example项目部分没有提到这部分,浪费了几个小时。 获取有关如何运行它的文档更新是否有帮助?

你好呀,

我遇到了同样的问题

ld: 233 duplicate symbols for architecture x86_64

我正在使用 3.0.2 进行编译,然后转到最后一个 3.2.3,按照本线程中的说明摆脱了 cocoapods。 我仔细检查了每个与 pod 相关的文件,它们都消失了。 基本上我得到以下几个文件

duplicate symbol _OBJC_METACLASS_$_OSRequestSubmitNotificationOpened in: /[...]/ios/OneSignal.framework/OneSignal(Requests.o) /[...]/Library/Developer/Xcode/DerivedData/[AppName]-fmxhrnwitpecshtmi/Build/Products/Debug-iphonesimulator/libRCTOneSignal.a(Requests.o)

我还尝试从 Library/... 中删除所有内容,但错误不断出现。

提前感谢任何帮助

@grafosecondo这确实意味着以某种方式在您的项目中复制了本机 OneSignal SDK。 我建议运行pod deintegrate ,然后按照当前的安装指南通过 npm 安装 OneSignal(链接后你应该看到一个 RCTOneSignal Xcode 子项目)。

不知何故, OneSignal.framework仍在您的项目中,它导致了这个问题。

@Nightsd01

不知何故,OneSignal.framework 仍然在你的项目中,它导致了这个问题。

这拯救了我的一天,谢谢!

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