React-native-onesignal: React-native 0.60-lPods-OneSignalNotificationExtensionが見つかりません

作成日 2019年09月02日  ·  20コメント  ·  ソース: OneSignal/react-native-onesignal

説明:

React-native 0.60にアップグレードし、次のようにonesignalのインストール手順に従いました: https ://documentation.onesignal.com/docs/react-native-sdk-setup

xcodeアプリケーションを実行すると、OnesignalNotificationExtensionに関連するエラーが発生します。
エラーld: library not found for -lPods-OneSignalNotificationServiceExtension

OneSignalNotificationServiceExtensionターゲットには、次の設定があります。

  • ヘッダー検索パス: "${PODS_ROOT}/Headers/Public/react-native-onesignal"
  • フレームワーク検索パス: "${PODS_ROOT}/OneSignal/iOS_SDK/OneSignalSDK/Framework"

環境

  • react-native-onesignalバージョン:3.3.2
  • 反応ネイティブ:0.60.5

問題を再現する手順:

  1. RNセットアップに従いました: https
  2. xcodeプロジェクトを実行する
  3. 期待してください: ld: library not found for -lPods-OneSignalNotificationServiceExtension
Help Wanted

最も参考になるコメント

RNバージョンを0.63.2にアップグレードしてアプリをアーカイブしようとしたときに同じ問題が発生し、修正されました
これで。

Podfileで指定したバージョンとターゲットバージョンの間のバージョンの不一致でした
OneSignal拡張機能を設定しました。 これらの2つの値を互いに一致するように変更するとすぐに、
問題はなくなりました。

Podfile
image

OneSignalNotificationExtension(または通知拡張機能に名前を付けたもの)
image

全てのコメント20件

ハウディ、
昨日、新しいバージョンをリリースしました。 更新してもう一度お試しください。 また、/ Users /にあるDerivedDataフォルダーをクリアしてみてください/ Library / Developer / Xcode / DerivedData

最後に試すのは、 iosディレクトリからのポッドの更新です。

@jamesoneこの問題を解決しましたか? @rgomezpからの回答は

@rgomezp最新リリース3.4.1を使用した場合、上記の提案はいずれも

次の+1!

ハウディ、
プロジェクトのiosディレクトリからpod deintegrate && pod installを実行してみてください

上記の提案は機能していません。 すでに最新リリースv3.4.1に更新されており、派生データをクリーンアップし、ポッドをクリーンアップして再インストールしますが、それでもエラーが発生します。

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

Podfile.lock

  - react-native-onesignal (3.4.1):
    - OneSignal (= 2.11.0)
    - React (< 1.0.0, >= 0.13.0)

更新:
私の悪い。 NotificationService.m内容をDOCの最新のコードに置き換える必要があることがわかりました。 私はまだRCTOneSignalExtensionService.h 。 更新すると、エラーはなくなります。

聞いてよかった! あなたがまだこの問題に苦労しているならコメントしてください、そして私は再開することができます

ポッドを使用したRN:0.60.10でもまだ問題があります。
ポッドを一緒に使用する方法は?

こんにちは、
同じ問題がありますld: library not found for -lPods-OneSignalNotificationServiceExtension
私はreact-native0.61.4とonesignal3.6.1を使用しています

ポッドの分解とクリーニングおよびDerivedDataを使用

見つけましたが、構成リストに「リリース」構成がない場合、ライブラリが見つからずに「アーカイブ」が失敗する理由がわかりません。

アーカイブが失敗する:
Capture d’écran 2020-01-08 à 17 07 06

アーカイブは成功します👍
Capture d’écran 2020-01-08 à 17 16 44

参考までに、Dev、Preprod、Prodはリリースに基づいています。 それはonesignalで私の古いプロジェクトで「リリース」なしで働いていました

@rgomezpを更新し

  • 新しいreact-nativeプロジェクトを作成する
  • Onesignalを追加する
  • ビルドとアーカイブ>大丈夫です
  • 「リリース」構成の名前を別の名前(Devなど)に変更します
  • ビルドとアーカイブ> ld:-lPodsのライブラリが見つかりません-OneSignalNotificationServiceExtension

上記の提案は機能していません。 すでに最新リリースv3.4.1に更新されており、派生データをクリーンアップし、ポッドをクリーンアップして再インストールしますが、それでもエラーが発生します。

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

Podfile.lock

  - react-native-onesignal (3.4.1):
    - OneSignal (= 2.11.0)
    - React (< 1.0.0, >= 0.13.0)

更新:
私の悪い。 NotificationService.m内容をDOCの最新のコードに置き換える必要があることがわかりました。 私はまだRCTOneSignalExtensionService.h 。 更新すると、エラーはなくなります。

これは私のために働いていません

  • 1信号(3.6.2)
  • react-native(0.60.0)

現在同じ問題が発生しています。 新しいスキームを追加したときに-lPods-OneSignalNotificationServiceExtension失敗しました。 それに関する更新はありますか?

同じ

react-nativeをアップグレードした後も同じ問題が発生しました
これで私の問題が修正されましたhttps://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment-429062289

RNバージョンを0.63.2にアップグレードしてアプリをアーカイブしようとしたときに同じ問題が発生し、修正されました
これで。

Podfileで指定したバージョンとターゲットバージョンの間のバージョンの不一致でした
OneSignal拡張機能を設定しました。 これらの2つの値を互いに一致するように変更するとすぐに、
問題はなくなりました。

Podfile
image

OneSignalNotificationExtension(または通知拡張機能に名前を付けたもの)
image

私は同じ問題を抱えていますが、上記のヒントのどれも私の問題を解決しませんでした。

非常によく似た2つのプロジェクトがあります。1つは機能し、もう1つは機能しません。

xcodeのビルドとアーカイブの手順は問題ありませんが、CIまたはコンピューターでは、以下のコマンドは1つのプロジェクトでは成功しますが、他のプロジェクトでは失敗します。

xcodebuild "-workspace" "/Users/vagrant/git/packages/mobile-pro/ios/WecasaPro.xcworkspace" "-scheme" "WecasaPro" "-configuration" "Staging" "COMPILER_INDEX_STORE_ENABLE=NO" "archive" "-archivePath" "/var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/__archive__581470914/WecasaPro.xcarchive" "-destination" "generic/platform=iOS" | xcpretty

コマンドのログを見ると。 うまくいくプロジェクトのために私は持っています

▸ Building Pods/Pods-OneSignalNotificationServiceExtension [Staging]
▸ Check Dependencies
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Building library libPods-OneSignalNotificationServiceExtension.a
▸ Building library libPods-OneSignalNotificationServiceExtension.a
▸ Building WecasaPro/OneSignalNotificationServiceExtension [Staging]
▸ Check Dependencies
▸ Processing Info.plist
▸ Running script '[CP] Check Pods Manifest.lock'
▸ Compiling NotificationService.m
▸ Linking OneSignalNotificationServiceExtension
▸ Generating 'OneSignalNotificationServiceExtension.appex.dSYM'
▸ Touching OneSignalNotificationServiceExtension.appex
▸ Signing /Users/vagrant/Library/Developer/Xcode/DerivedData/WecasaPro-fuytaarwfdjqjucxpzvnzgjrhcvd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/OneSignalNotificationServiceExtension.appex
▸ Touching OneSignalNotificationServiceExtension.appex.dSYM

うまくいかないプロジェクトのために私は持っています

▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Compiling Pods-OneSignalNotificationServiceExtension-dummy.m
▸ Running script 'Copy generated compatibility header'
▸ Building library libPods-OneSignalNotificationServiceExtension.a

両方のプロジェクトの構成を数回確認しましたが、類似しているようです。

誰かがこれを引き起こす可能性があるものについての手がかりを持っていますか?

2つのプロジェクトのログを比較したところ、成功したプロジェクトはレガシービルドシステムを使用し、もう1つは新しいビルドシステムを使用していることがわかりました。

プロジェクトをレガシービルドシステムに切り替えましたが、問題はまだ残っています。

成功したプロジェクトについて私は

CompileC /Users/scesbron/Library/Developer/Xcode/DerivedData/WecasaPro-guwmidkqvxjubvhfovvxnfhourjd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/Pods.build/Staging-iphoneos/Pods-OneSignalNotificationServiceExtension.build/Objects-normal/arm64/Pods-OneSignalNotificationServiceExtension-dummy.o Target\ Support\ Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension-dummy.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler

その後

Libtool /Users/scesbron/Library/Developer/Xcode/DerivedData/WecasaPro-guwmidkqvxjubvhfovvxnfhourjd/Build/Intermediates.noindex/ArchiveIntermediates/WecasaPro/IntermediateBuildFilesPath/Pods.build/Staging-iphoneos/Pods-OneSignalNotificationServiceExtension.build/Objects-normal/armv7/libPods-OneSignalNotificationServiceExtension.a normal armv7

しかし、コンパイル後の他のプロジェクトでは、Ldコマンドがあります

Ld /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/OneSignalNotificationServiceExtension normal armv7

これらのコマンドの違いがわからないし、シーケンスが同じでない理由もわからない

私の問題についての最後のコメント。 OneSignalNotificationServiceExtensionターゲット、関連するObjective-cファイル、およびポッドファイル内のOneSignalへの参照を削除しました。 xcodebuildコマンドは成功します。

ドキュメントhttps://documentation.onesignal.com/docs/react-native-sdk-setupで説明されているすべての手順を実行して、1つのシグナルを追加し直しました

その後、私のxcodebuildコマンドはまだ失敗します

Ld /Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binary/OneSignalNotificationServiceExtension` normal armv7

/Users/scesbron/Library/Developer/Xcode/DerivedData/wecasa-hcsnerxmdxdzhhhetgrrfvjexliq/Build/Intermediates.noindex/ArchiveIntermediates/wecasa/IntermediateBuildFilesPath/wecasa.build/Release-iphoneos/OneSignalNotificationServiceExtension.build/Objects-normal/armv7/Binaryフォルダーは空であり、 OneSignalNotificationServiceExtensionファイルは含まれていません。

私は同じ問題を抱えています

そう...

これは追跡するのが非常に難しいものでした。問題の修正を実際に見つけるには、新しいRN064.1プロジェクトを再作成する必要がありました。 私は自分のプロジェクトでスキームを使用しており、M1で正しくビルドされるように修正を適用していました。

プロジェクトが古いfatフレームワークの代わりに新しいOneSignalXCFrameworkを使用するように更新されたので、Podfileでもそれを使用するようにNSEを更新することにしました。

モジュールが見つからないという多くの問題に直面していました。これには、リリースビルドのビルド中、またはシミュレーターやデバイスへのビルド中の問題が含まれます。

私のコードを台無しにして問題全体が機能しない原因となった部分は、Podfileの次のセクションです。

installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[iphonesimulator=*]"] = "arm64"
end

結局、私はそれをデバッグビルドにのみ適用し、リリースビルドには適用する必要がありませんでした。 私はiOS開発者ではないので、アーキテクチャーからシミュレーターを除外すると、NSEでポッドが検出されなくなるという複雑さはわかりませんが、それが私の問題でした。

ブロック全体を削除することが私にとってそれを修正したものでした。 少なくとも私のプロジェクトではもう必要ないようです。

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