وصف:
لقد قمت بالترقية إلى الإصدار 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"
بيئة
خطوات إعادة إنتاج المشكلة:
ld: library not found for -lPods-OneSignalNotificationServiceExtension
مرحبًا ،
أصدرنا نسخة جديدة أمس. هل يمكنك التحديث والمحاولة مرة أخرى؟ حاول أيضًا مسح مجلد DerivedData الموجود في / Users /
آخر شيء يجب تجربته هو تحديث 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
لقد وجدت ، ولكني لا أعرف السبب ، عندما لا يكون لدي تكوين "إصدار" في قائمة التكوينات ، يفشل "الأرشيف" مع عدم العثور على المكتبة.
فشل الأرشيف:
أرشفة تنجح 👍
للحصول على معلوماتك ، تستند 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
. عند التحديث ، ذهب الخطأ.
هذا لا يعمل بالنسبة لي
تواجه نفس المشكلة الآن. فشل -lPods-OneSignalNotificationServiceExtension
عندما أضفت مخططات جديدة. أي تحديثات على ذلك؟
نفس
واجهت نفس المشكلة بعد ترقية رد الفعل الأصلي
أدى هذا إلى إصلاح مشكلتي https://github.com/OneSignal/react-native-onesignal/issues/651#issuecomment -429062289
واجهت نفس المشكلة عند ترقية إصدار RN إلى 0.63.2 ومحاولة أرشفة التطبيق وتم إصلاحي
بواسطة هذا.
كان هناك عدم تطابق في الإصدار بين الإصدار الذي حددته في Podfile والإصدار المستهدف
قمت بتعيين امتداد OneSignal. بمجرد أن قمت بتعديل هاتين القيمتين لمطابقة بعضهما البعض ،
اختفت المشكلة.
بودفيلي
OneSignalNotificationExtension (أو أي شيء قمت بتسميته في ملحق الإعلام)
لدي نفس المشكلة ولكن لم تحل أي من النصائح المذكورة أعلاه مشكلتي.
لدي مشروعان متشابهان تمامًا: أحدهما يعمل والآخر لا يعمل.
في إنشاء 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 ولكن هذه كانت مشكلتي.
كانت إزالة الكتلة بأكملها هي ما أصلحها بالنسبة لي. يبدو أنه لم يعد مطلوبًا لمشروعي على الأقل.
التعليق الأكثر فائدة
واجهت نفس المشكلة عند ترقية إصدار RN إلى 0.63.2 ومحاولة أرشفة التطبيق وتم إصلاحي
بواسطة هذا.
كان هناك عدم تطابق في الإصدار بين الإصدار الذي حددته في Podfile والإصدار المستهدف
قمت بتعيين امتداد OneSignal. بمجرد أن قمت بتعديل هاتين القيمتين لمطابقة بعضهما البعض ،
اختفت المشكلة.
بودفيلي
OneSignalNotificationExtension (أو أي شيء قمت بتسميته في ملحق الإعلام)