React-native-onesignal: لم يتم العثور على ملف OneSignal / OneSignal.h

تم إنشاؤها على ٢٤ يناير ٢٠١٧  ·  44تعليقات  ·  مصدر: OneSignal/react-native-onesignal

كان هناك وإصدار تم فتحه وإغلاقه بالفعل ، لكن هذا لا يزال يمثل مشكلة. انظر العدد 133 .

تعليقي على القضية يصف المشكلة.

React Native 0.40.0 OneSignal 3.0

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

مدمجة ومختبرة وثابتة.

ال 44 كومينتر

يعني ذلك في الأساس أن إطار العمل لم يتم تحديثه على الوحدة ، إذا اخترت عدم استخدام CocoaPods. هل انا صائب؟

نعم ، أعتقد أن هذا صحيح. أنا لا أستخدم CocoaPods.

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

مرحبًا ، وجدت الريبو مع تلميحات لك. جعل الكود الخاص بي يعمل مرة أخرى.
https://github.com/eriksape/react-native-onesignal#faq-repeating-issues

avishayil ،

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

في هذه الأثناء ، قمت بنسخ دليل OneSignal.framework إلى مشروع ios الخاص بي باستخدام دليل "Header" الصحيح وملف "OneSignal" وقمت بتغيير "Framework Search Paths" للإشارة إليه.

سأضطر إلى متابعة التحديثات والعناية بها ، لكن هذا يعمل بالنسبة لي في الوقت الحالي. شكرا!

haxtrujillo أيضًا

dguillamot تأكد من تعيين "مسارات بحث الرأس" و "مسارات بحث الرأس" ، وانسخ الملفات من الإصدار "ب" (الحالي) بمستويين لأعلى.

screen shot 2017-01-25 at 11 13 26 pm

ما زلت أتساءل عن كيفية حلها بدون هذه الطريقة "القبيحة". @ jkasten2 هل يمكنك المساعدة هنا؟

لدي نفس المشكلة ، بالإضافة إلى React / <...>. h غير موجود.
screen shot 2017-01-26 at 2 31 54 pm

screen shot 2017-01-26 at 7 37 18 pm

لدي أيضًا نفس المشكلة مع React-Native 0.4.0 ،

بعد تثبيت بعض المكونات الإضافية (رد فعل - أصلي - فايرستاك) ، يحدث ذلك فجأة.

تضمين التغريدة

اضطررت إلى القيام بأمرين منفصلين حتى تعمل:

0 - لقد أنشأت مجلدًا فرعيًا في مجلد مشروعي الرئيسي (حيث يكون ملف مساحة عمل xcode) يسمى / ios / OneSignal

1 - بعد ذلك ، على غرار ما قاله haxtrujillo أعلاه ، في مجلد node_modules / رد فعل أصلي واحد / ios / Frameworks ، يمكنك النقر نقرًا مزدوجًا فوق ملف OneSignal.framework / توسيعه. يوجد بالداخل مجلد فرعي Versions / B. حدد ملفات "Headers" و "OneSignal" هناك ، وانسخ (CMD-C) ثم حدد ملف OneSignal.framework مرة أخرى والصقه.

بعد ذلك ، قمت بنسخ ملف OneSignal.framework الجديد هذا في المجلد / ios / OneSignal الذي قمت بإنشائه أعلاه في الخطوة 0.

2 - بعد ذلك ، قمت بنسخ ملف node_modules / رد فعل أصلي-نيسينال / ios / RCTOneSignal.xcodeproj ومجلد RCTOneSignal إلى مجلد ios / OneSignal الذي قمت بإنشائه في الخطوة 0.

ثم في Xcode ، أضفت ملف OneSignal.Framework إلى مجلد Frameworks في مساحة عمل xcode الخاصة بي ، وأضفت RCTOneSignal.xcodeproj إلى مجلد المكتبات. بعد ذلك ، قمت بتحديد ملف xcodeproj في مجلد Libraries في xcode. للتحقق من أن الهدف كان RCTOneSignal ، ذهبت إلى BuildSettings وقمت بتغيير مسارات بحث الإطار إلى '$ (PROJECT_DIR) / OneSignal' .. وبهذه الطريقة يمكن العثور على OneSignal.framework الجديد الذي قمت بإنشائه. لقد غيرت أيضًا مسارات Header Search في نفس منطقة إعدادات البناء للتأكد من أنها كانت تلتقط React. في حالتي ، كان من الأسهل القيام بذلك بالنسبة إلى PROJECT_DIR كـ "$ (PROJECT_DIR) /../ node_modules / رد فعل أصلي / React"

بعد هذه التغييرات ، أصبح كل شيء الآن في مجلد ios / OneSignal ولا أحتاج حقًا إلى مجلد node_modules على الإطلاق. ما زلت أستخدمه على الرغم من ذلك ، لنظام Android. ولكن إذا كنت تستخدم نظام ios فقط ، فلن تحتاج إلى مجلد node_module لأن هذا الحل البديل قد صنع بشكل أساسي نسخة محلية.

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

شكرا لك dguillamot !

لقد فعلت ذلك بطريقة مختلفة قليلاً ولكن المعنى هو نفسه على ما أعتقد
package.json :

"scripts": {
     ...
    "fix-onesignal-ios-issue-161": "cd node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework && cp -R Versions/B/* . && cd ../../../../..",
    "run-ios": "npm run fix-onesignal-ios-issue-161 && echo '.env.local' > /tmp/envfile && react-native run-ios",
     ...
}

ملاحظة:
تضمين التغريدة
لقد لاحظت في مسارات بحث رأس مشروع RCTOneSignal سطرًا مثل هذا "$(SRCROOT)/../../../ios/Pods/Headers/Public/OneSignal" .
يبدو أن المكتبة تتطلب مني الحصول على مجلدات node_modules و ios على نفس المستوى. في بعض الحالات (عندما يكون هيكل المشروع مختلفًا بعض الشيء) لن يعمل لأنه لا يوجد مجلد $(SRCROOT)/../../../ios .

PS 2:
أيضًا ، واجهت مشكلة مثل React/RCT<...>.h file not found . لقد أصلحت من خلال بناء React أولاً من XCode (راجع https://github.com/facebook/react-native/issues/12042#issuecomment-275025960).

react-native run-ios لا يعمل حتى الآن (فقط من XCode.

لم يكن هناك مجلد Versions/B منذ الإصدار 2.1.5 من iOS OneSignal SDK الأصلي. هل يمكنك التحقق للتأكد من سحب أحدث إطار عمل OneSignal.framework؟ حاليًا 2.3.5 هو الأحدث.

@ jkasten2 صحيح ، إصدار 2.3.5 الآن
أنا متأكد لأنني أجري مرات عديدة

rm -rf node_modules/react*
rm -rf ios/build/* && rm -rf ios/Pods/*
rm -rf ~/Library/Developer/Xcode/DerivedData/*

بالمناسبة،

react-native-cli: 2.0.1
react-native: 0.40.0

بودفيلي:

pod 'OneSignal', '~> 2.0'

لكنه في الواقع يقوم بتثبيت 2.3.5 ، أراه في إخراج وحدة التحكم

@ jkasten2 ،
أنا أستخدم React Native 0.40.0 و OneSignal 3.0 ولا يوجد CocoaPods.

@ jkasten2
انت على حق. لا يوجد مجلد Versions/B في ios/Pods/OneSignal/iOS_SDK/Framework/OneSignal.framework/Versions/ :

Current -> A

لكن Versions/B لا يزال هنا node_modules/react-native-onesignal/ios/Frameworks/OneSignal.framework/Versions/

package.json
"react-native-onesignal": "3.0.0",

يبدو أن المشكلة تفتقد إلى ارتباطات رمزية من علامة الإصدار 3.0.0.

avishayil لقد لاحظت أن علامة v3.0.0 تفتقدهم ولكن
https://github.com/geektimecoil/react-native-onesignal/tree/v3.0.0/ios/Frameworks/OneSignal.framework
https://github.com/geektimecoil/react-native-onesignal/tree/master/ios/Frameworks/OneSignal.framework

يحتوي مستودع iOS SDK الأصلي أيضًا على روابط رمزية هنا.
https://github.com/OneSignal/OneSignal-iOS-SDK/tree/2.3.5/iOS_SDK/Framework/OneSignal.framework

هل يمكنك إصدار تحديث لهذه الملفات المفقودة؟

@ jkasten2 ها أنت examples :
https://github.com/geektimecoil/react-native-onesignal/tree/examples/examples/RNOneSignalFramework

حاول بناء هذا المشروع ، يقول إنه يفتقد ملفات الرأس.

avishayil لقد قمت باستنساخ جديد واتباع الإرشادات أدناه ولكن لم .h مفقودة.
https://github.com/geektimecoil/react-native-onesignal#running -example-project

ملاحظة: يجب أن تكون التعليمات cd OneSignalRN بدلاً من cd OneSignalRNExample .

قم بتشغيل المشروع من كلا الجهازين كما هو موضح بالتعليمات وتم بناؤه من Xcode مباشرة عن طريق فتح الملف RNOneSignal.xcworkspace .

مرحبًا @ jkasten2 ، لا مشكلة عند إنشاء مشروع باستخدام CocoaPods. تكمن المشكلة عند محاولة بناء مشروع بإطار عمل بدون CocoaPods.

لقد ذكرت هذا من قبل ، سامحني إذا كان هذا مكررًا ولكن: إحدى المشكلات هي أن ملف الرأس OneSignal.h موجود في الريبو ، لكنهم ليسوا ضمن مجلد يسمى "OneSignal" وهو ما يحدث المشار إليها.

avishayil ما زالت المشكلة بدون الكاكاو؟ ، آسف لم ألاحظ ذلك ، دعني أرى الرجال

تضمين التغريدة

avishayil لا أعرف ما يحدث ، لا تزال طريقة الإدراج جيدة ، حيث أرى أن حبات الكاكاو تفعل نفس الشيء ولكن تلقائيًا وتنزيل الكثير من الحزم مع الإصدار الأخير من OneSignal-iOS-SDK كما قال @ jkasten2 هو 2.3.5 ، أعلم أنك خفضت إصدار sdk الآن؟

لدي مشكلة في الرأس عند استخدام الإصدار 2 و Cocoapods يا رفاق: / هل هناك أي تلميح حول السبب؟ هل يجب علي إنشاء عدد مخصص؟

سألقي نظرة على الإصدار 2 هذا الأسبوع.

أنا على RN40 و OneSignal3.0 ، وأستخدم الإطار وما زلت أتلقى "OneSignal / OneSignal.h غير موجود". تم تعيين مسارات الرأس / إطار العمل الخاصة بي بشكل صحيح ، وقد تم ربط المكتبة برابط التفاعل الأصلي ، لذلك لا أرى أي مشكلة تتعلق بالإعداد.

كان لدي نفس الشيء مع Cocoapods رغم ذلك.

كنت أواجه هذا الخطأ للإصدار 3.0.0 وكان رد فعل أصلي 0.41. لقد حصلت عليه للبناء عن طريق تشغيل رابط رد الفعل الأصلي.

تصحيح: استمرار ظهور خطأ في البناء :(

هل أنتم تستخدمون CocoaPods؟

avishayil لا ، أنا لا أستخدم Cocoapods ولن أستخدمها. لقد حصلت للتو على أحدث تغييراتك في الإصدار 3.0.2 وما زالت لم تتطور. أي تحديثات على إصلاح هذا؟

larryranches لا يزال هذا شيئًا أتطلع إليه جنبًا إلى جنب مع فريق OneSignal. @ jkasten2 وسوف أقوم بالتحديث عندما يكون لدينا حل لذلك.

avishayil شكرا للنظر في هذا! سيكون من الجيد الحصول على هذا العمل حيث يتعين علينا الترقية إلى أحدث إصدار من React Native 0.41. يرجى إخبارنا بمجرد أن يكون هناك إصلاح.

نفس المشكلة عند تشغيل Xcode. يبدأ التطبيق بـ node node_modules/react-native/local-cli/cli.js run-ios ولكنه تعطل لأن RNOneSignal هو undefined .

avishayil لقد حاولت استخدام Coca والإطار ، نفس النتيجة.

@ edo1493 هل يمكنك مشاركة الريبو مع تكرار الخطأ؟

لقد نجح طلب السحب هذا بالنسبة لي ✌️:
https://github.com/geektimecoil/react-native-onesignal/pull/184

مثير للاهتمام ، كيف قمت ببنائه؟ من الصفر أم إلى مشروع قائم؟

avishayil في مشروع قائم (مع المشكلة الموضحة هنا) واتبع برنامج README المحدث على https://github.com/jkasten2/react-native-onesignal.
(اضطررت إلى إزالة Podfile والملفات ذات الصلة)

PR # 184 مناسب لي أيضًا

مدمجة ومختبرة وثابتة.

لقد فعلت كل الأشياء ولا تزال غير موجودة :(

لدي هذا الخطأ أيضًا مع Cacaopods ... RN 0.50 والإشارة الأصلية للتفاعل ^ 3.0.5

أي شخص يصلح هذا الخطأ؟ أواجه على RN 0.51 وإشارة تفاعلية أصلية ^ 3.0.5

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

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