React-native-onesignal: React-native 0.60 -lPods-OneSignalNotificationExtension غير موجود

تم إنشاؤها على ٢ سبتمبر ٢٠١٩  ·  20تعليقات  ·  مصدر: OneSignal/react-native-onesignal

وصف:

لقد قمت بالترقية إلى الإصدار 0.60 من React-native واتبعت خطوات التثبيت أحادية الإشارة كما هو موضح هنا: 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"

بيئة

  • رد فعل - أصلية - إصدار واحد: 3.3.2
  • رد الفعل الأصلي: 0.60.5

خطوات إعادة إنتاج المشكلة:

  1. اتبعت إعداد RN: https://documentation.onesignal.com/docs/react-native-sdk-setup
  2. قم بتشغيل مشروع xcode
  3. توقع أن ترى: ld: library not found for -lPods-OneSignalNotificationServiceExtension
Help Wanted

التعليق الأكثر فائدة

واجهت نفس المشكلة عند ترقية إصدار RN إلى 0.63.2 ومحاولة أرشفة التطبيق وتم إصلاحي
بواسطة هذا.

كان هناك عدم تطابق في الإصدار بين الإصدار الذي حددته في Podfile والإصدار المستهدف
قمت بتعيين امتداد OneSignal. بمجرد أن قمت بتعديل هاتين القيمتين لمطابقة بعضهما البعض ،
اختفت المشكلة.

بودفيلي
image

OneSignalNotificationExtension (أو أي شيء قمت بتسميته في ملحق الإعلام)
image

ال 20 كومينتر

مرحبًا ،
أصدرنا نسخة جديدة أمس. هل يمكنك التحديث والمحاولة مرة أخرى؟ حاول أيضًا مسح مجلد DerivedData الموجود في / Users // Library / Developer / Xcode / DerivedData

آخر شيء يجب تجربته هو تحديث pod من دليل ios

jamesone هل حللت هذه المشكلة؟ الجواب من rgomezp لا يساعد.

rgomezp لم

+1 يتابع!

مرحبًا ،
يرجى محاولة تشغيل pod deintegrate && pod install من دليل ios في مشروعك

الاقتراحات أعلاه لا تعمل. تم التحديث بالفعل إلى أحدث إصدار 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
أنا أستخدم 0.61.4 المتفاعل الأصلي والإشارة الأحادية 3.6.1

مع pod deintegration والتنظيف و DerivedData

لقد وجدت ، ولكني لا أعرف السبب ، عندما لا يكون لدي تكوين "إصدار" في قائمة التكوينات ، يفشل "الأرشيف" مع عدم العثور على المكتبة.

فشل الأرشيف:
Capture d’écran 2020-01-08 à 17 07 06

أرشفة تنجح 👍
Capture d’écran 2020-01-08 à 17 16 44

للحصول على معلوماتك ، تستند Dev و Preprod و Prod إلى الإصدار. كان يعمل بدون "إصدار" على مشاريعي القديمة ذات الإشارة الواحدة

تحديث rgomezp :

  • أنشئ مشروعًا جديدًا يتفاعل مع المحتوى
  • أضف Onesignal
  • بناء وأرشفة> لا بأس
  • إعادة تسمية التكوين "Release" إلى اسم آخر (مثل 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 . عند التحديث ، ذهب الخطأ.

هذا لا يعمل بالنسبة لي

  • إشارة واحدة (3.6.2)
  • رد فعل أصلي (0.60.0)

تواجه نفس المشكلة الآن. فشل -lPods-OneSignalNotificationServiceExtension عندما أضفت مخططات جديدة. أي تحديثات على ذلك؟

نفس

واجهت نفس المشكلة بعد ترقية رد الفعل الأصلي
أدى هذا إلى إصلاح مشكلتي https://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment -429062289

واجهت نفس المشكلة عند ترقية إصدار RN إلى 0.63.2 ومحاولة أرشفة التطبيق وتم إصلاحي
بواسطة هذا.

كان هناك عدم تطابق في الإصدار بين الإصدار الذي حددته في Podfile والإصدار المستهدف
قمت بتعيين امتداد OneSignal. بمجرد أن قمت بتعديل هاتين القيمتين لمطابقة بعضهما البعض ،
اختفت المشكلة.

بودفيلي
image

OneSignalNotificationExtension (أو أي شيء قمت بتسميته في ملحق الإعلام)
image

لدي نفس المشكلة ولكن لم تحل أي من النصائح المذكورة أعلاه مشكلتي.

لدي مشروعان متشابهان تمامًا: أحدهما يعمل والآخر لا يعمل.

في إنشاء xcode وخطوات الأرشفة على ما يرام ولكن على CI الخاص بي أو على جهاز الكمبيوتر الخاص بي ، ينجح الأمر أدناه في مشروع واحد ولكنه فشل في الآخر

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

لقد راجعت تكوين كلا المشروعين عدة مرات ويبدو أنهما متشابهان.

هل لدى أي شخص فكرة عما يمكن أن يسبب هذا؟

بعد مقارنة سجلاتي الخاصة بالمشروعين ، وجدت أن المشروع الذي نجح يستخدم نظام الإنشاء القديم بينما يستخدم الآخر نظام الإنشاء الجديد.

لقد قمت بتحويل projet إلى نظام بناء قديم ولكن المشكلة لا تزال قائمة.

في المشروع الذي ينجح لدي

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 وملفات الهدف ذات الصلة والمرجع إلى OneSignal في ملف podfile الخاص بي. نجح الأمر xcodebuild .

لقد أضفت إشارة واحدة من خلال تنفيذ جميع الخطوات الموضحة في المستند https://documentation.onesignal.com/docs/react-native-sdk-setup

بعد ذلك ، لا يزال أمر 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 .

لدي نفس المشكلة

وبالتالي...

كان هذا أمرًا صعبًا حقًا لتتبعه ، واضطررت إلى إعادة إنشاء مشروع RN 064.1 جديد للعثور حقًا على حل لمشكلاتي. أنا أستخدم المخططات في مشاريعي وكنت أقوم بتطبيق إصلاحات حتى يتم البناء بشكل صحيح على M1.

نظرًا لأن المشروع قد تم تحديثه لاستخدام OneSignalXCFramework بدلاً من إطار العمل القديم للدهون ، فقد قررت تحديث NSE لاستخدام ذلك أيضًا في Podfile.

كنت تواجه عددًا كبيرًا من المشكلات حيث لم يتم العثور على الوحدة النمطية ، بما في ذلك هذه المشكلة أثناء إنشاء إصدار أو إنشاء جهاز محاكاة أو جهاز

تبين أن الجزء الذي كان يفسد الكود الخاص بي ويتسبب في عدم عمل المشكلة بأكملها هو هذا القسم التالي في Podfile

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

في النهاية ، كان عليّ تطبيقه فقط لتصحيح الأخطاء وليس إصدار البنيات. أنا لست مطورًا لنظام iOS ، لذلك لا أعرف التعقيدات حول كيفية استبعاد جهاز محاكاة من بنية ما سيؤدي إلى عدم اكتشاف Pods لـ NSE ولكن هذه كانت مشكلتي.

كانت إزالة الكتلة بأكملها هي ما أصلحها بالنسبة لي. يبدو أنه لم يعد مطلوبًا لمشروعي على الأقل.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات