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)

アーキテクチャは異なりますが、 ます

私はObjectiveCにかなり慣れていませんが、必要に応じてガイドできる場合は、PRを発行できる場所を喜んでお手伝いします。 うまくいけば、誰かが私を助けてくれるでしょう!

ありがとう
Ollie

最も参考になるコメント

私は@olliebrennanとまったく同じ問題を抱えていましたが、

  1. node_modules/react-native-onesignal/ios/FrameworksフォルダーをXCodeの左側のパネルの下にあるRCTOneSignal.xcodeprojにドラッグします
  2. 左側のパネルで、OneSignal.frameworkをライブラリとのリンクバイナリにドラッグします

全てのコメント25件

@olliebrennanこの問題を解決できましたか? 私は#5のコミットを調べて、何をすべきかを理解しています。 私はiOS開発者ではなくJS開発者なので、さまざまな設定に慣れていません。

たぶん@ jkasten2はここで役立つことができますか?

@jamiemchale私はしませんでした。 あなたと同じ問題があったので、修正が来るまで解析を使用して私のアプリを残しました。 できれば喜んでお手伝いしますが、あなたが言ったように、私はiOSの言語/設定にも慣れていません。

@olliebrennan @avishayil
Cocoaポッドを使用してOneSignalプラグインをインストールした場合、OneSignalネイティブフレームワークをメインプロジェクトに参照しない場合があります。 OneSignal.frameworkをFinderからXCodeにドロップアンドドラッグすると、リンカーエラーが修正されます。 それがないと機能しない場合は、「必要に応じてアイテムをコピーする」を選択する必要がある場合があります。

image

image

最後に、Xcode 7.0以降を使用していることを確認してください。古いバージョンのXcodeでは、ここでまったく同じエラーが発生します。

ありがとう@ jkasten2
今後数日でリリースがリリースされます。これを試して報告します。

乾杯

OSXで同様の問題を抱えている+1

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をライブラリとのリンクバイナリにドラッグします

ねえ@ hyperh @ olliebrennanこれを解決できましたか?

@avishayil私はこれを解決することができませんでした。 私はAPNを処理するためにapnagentを使用することにしました。

誰かが同じエラーに遭遇した場合は、報告してください。 私は今のところこの問題を閉じています。

@avishayil私はこの問題を抱えています。 @whollacsekの指示に従って試しましたが、XCodeで同じエラーが発生します。

screenshot 2016-06-03 15 40 31

@ chrissm79などと同じ問題

私はちょうどここに着きました、そしてはい、同じ問題。

+1

それを調べます。 再現手順はありますか?

私はこの問題を経験し、ios / Pods / OneSignal / iOS_SDK / Framework /OneSignal.frameworkをクリックしてFinderからXCodeプロジェクトのFrameworksフォルダーにドラッグすることで修正できました。

@ chrissm79とまったく同じ問題

編集:node_modulesフォルダー内のフレームワークを使用するのではなく、フレームワークをダウンロードして、文書化されたリンクからリンクすることで解決しました。

参照して遊ぶサンプルプロジェクトがあります。必ず確認してください。
すべての注文に従っているので、エラーは発生しません。
2016年7月2日午前0時37分、「CharlesHulcher」 [email protected]は次のように書いています。

@ 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」、参照元:
toucanTests.oの_OBJC_CLASS_ $ __TtC6Camera11toucanTests
「_OBJC_METACLASS_ $ _ XCTestCase」、参照元:
toucanTests.oの_OBJC_METACLASS_ $ __TtC6Camera11toucanTests
ld:アーキテクチャx86_64のシンボルが見つかりません
clang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)

私はreact-native0.37を使用していますが、これを機能させる方法は次のとおりです(readmes /ドキュメントはreactnativeより少し遅れていると思います)。

  1. onesignalが機能しないクリーンなブランチで...
  2. npm install react-native-onesignal --save実行します
  3. react-native link実行します
  4. iOSの場合は、podfileの指示に従ってください(react Nativeバージョンのメモに注意深く従ってください)
  5. iOSの場合は、手順のコード追加に従ってください
  6. androidの場合は、androidの指示に従います(ほとんどのコードはlinkコマンドからそこにあるはずですが、すべてを再確認してください)
  7. Androidの場合import com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage;import com.geektime.rnonesignal.ReactNativeOneSignalPackage;ではなくimport com.geektime.reactnativeonesignal.ReactNativeOneSignalPackage;を使用してください(一部の古いドキュメントにはrnonesignalがあり、それ以降は更新されています)
  8. 次に、構成とセットアップ、およびすべてのファイルを完了します
  9. うまくいけば、それはあなたのためのトリックをします...私がこれを機能させるためにいくつかのブランチでアンドロイドとiOSの両方でしばらく過ごしたので問題があれば返信してください。

RNのv0.37より前のものを使用している場合はYMMV。 幸運を。

問題が解決しました!!

プロジェクトナビゲータから、ポッドセクションに移動し、oneSignal.frameworkを見つけて、ターゲットの下にある「ライブラリとバイナリをリンク」にドラッグします。 したがって、基本的には、ポッドファイルではなくフレームワークのみを使用する方が適切です。

私の場合、 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がバイナリのリンクライブラリにありませんでした。追加して問題を解決しました。

ここで2番目のステップに従うことができますhttps://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual-linking

このページは役に立ちましたか?
0 / 5 - 0 評価