Facebook-sdk-for-unity: Unity 2019.3 - لم يتم العثور على مكتبة لـ -lFBSDKCoreKit

تم إنشاؤها على ٢٤ مارس ٢٠٢٠  ·  16تعليقات  ·  مصدر: facebook/facebook-sdk-for-unity

قائمة تدقيق

بيئة

صِف بيئة التطوير الخاصة بك هنا ، مع إعطاء أكبر قدر ممكن من التفاصيل. إذا كان لديك ، فتأكد من تضمين:

  • إصدار محرر الوحدة: 2019.3.6f1
  • إصدار Unity SDK: 7.19.1
  • منصة التثبيت والإصدار: iOS الإصدار 10+ XCode 11.3.1 '

الأهداف

أنشئ لنظام iOS باستخدام Unity 2019.3

نتائج متوقعة

بناء ناجح

النتائج الفعلية

فشل التجميع بسبب عدم العثور على مكتبة -lFBSDKCoreKit.
تم إغلاق المشكلات الأخرى ولكن لم يتم إصلاحها على Facebook SDK 7.19+:

https://github.com/facebook/facebook-sdk-for-unity/issues/352
https://github.com/facebook/facebook-sdk-for-unity/issues/350

خطوات التكاثر

أنشئ مشروعًا جديدًا في وحدة
تثبيت حزمة FB SDK (7.19.1)
مشروع بناء الوحدة (2019.3.6f1)
حاول بناء مشروع Xcode على Xcode (الإصدار 11.3.1)
تحقق من الأخطاء

bug

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

كان لي نفس القضية. على الرغم من أنني قمت بتعيين جيل cocoapod الخاص بي في Unity Play Services Resolver ، لم يتم إنشاء مساحة .xcworkspace.

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

ال 16 كومينتر

لدي نفس المشكلة بالضبط.
الوحدة: 2019.3.6f1
FB SDK: (7.19.1)
XCode: 11.3.1

نفس المشكلة بالضبط.
الوحدة: 2018.4.5f1 (LTS)
FB SDK: 7.19.1
XCode: 11.3.1

أعتقد أنني اكتشفت ما هي المشكلة. كنت أقوم ببناء مشروع الوحدة من ملف المشروع ، بينما مع cocoapods تحتاج إلى فتح المشروع في xcode من ملف مساحة العمل لأنه يتضمن مشروع الوحدة ومشروع cocoapods. لم تقم مطلقًا ببناء أي شيء من ملف مساحة العمل من قبل باستخدام Unity. خطأي.

تضمين التغريدة
هذا حل المشكلة بالنسبة لي أيضًا. :-)
لست مألوفًا على الإطلاق مع XCode ، لكنني أعتقد أن مساحة العمل قابلة للمقارنة مع حل Visual Studio. حتى الآن كنت دائمًا أقوم بالنقر نقرًا مزدوجًا فوق ملف .xcodeproj.

كان لي نفس القضية. على الرغم من أنني قمت بتعيين جيل cocoapod الخاص بي في Unity Play Services Resolver ، لم يتم إنشاء مساحة .xcworkspace.

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

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

يبدو أن هذه مشكلة حيث يتم تضمين FBSDKCOCOAPODS=1 كماكرو معالج مسبق للهدف الرئيسي ( Unity-iPhone ) بدلاً من UnityFramework ، وهو الذي يستهدفه IOSResolver ويتضمن تم تصدير جميع التعليمات البرمجية المصدر عند إنشاء مساحة عمل XCode.

بدون هذا الماكرو ، سينتهي الأمر FBSDKCoreKitImport.h بالإشارة إلى تضمين / استيراد خاطئ:

#if defined BUCK
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#elif defined __cplusplus
#import <FBSDKCoreKit.h>
#elif defined FBSDKCOCOAPODS
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#else
<strong i="13">@import</strong> FBSDKCoreKit;
#endif

بالنظر إلى الكود المصدري لـ Facebook SDK ، أعتقد أن المشكلة تكمن في
ج #
AddBuildFlag عام ثابت باطل (مسار سلسلة)
{
string projPath = Path.Combine (path، Path.Combine ("Unity-iPhone.xcodeproj"، "project.pbxproj"))؛
PBXProject proj = new PBXProject () ؛
proj.ReadFromString (File.ReadAllText (projPath)) ،
سلسلة targetGUID = proj.TargetGuidByName ("Unity-iPhone") ؛
proj.AddBuildProperty (targetGUID، "GCC_PREPROCESSOR_DEFINITIONS"، "$ (موروث) FBSDKCOCOAPODS = 1") ؛
proj.AddBuildProperty (targetGUID، "OTHER_LDFLAGS"، "-ObjC") ؛
proj.AddFrameworkToProject (targetGUID، "Accelerate.framework"، true) ؛
File.WriteAllText (projPath، proj.WriteToString ()) ؛
}

It's still looking for the `Unity-iPhone` target when it should be looking for `UnityFramework` instead for Unity 2019.3.

I can submit a pull request with a quick workaround for the issue like the following, just let me know if I'm in the right direction. Also, I don't have much knowledge on this repo source code, so there could be better solutions than this one.

**PBXProject.cs:**
```c#
        /// <summary>
        /// Returns the default main target name in Unity project.
        /// The returned target name can then be used to retrieve the GUID of the target via TargetGuidByName
        /// function. This function can only be used in Unity-generated projects.
        /// </summary>
        /// <returns>The default main target name.</returns>
        public static string GetUnityTargetName()
        {
#if UNITY_2019_3_OR_NEWER
            return "UnityFramework";
#else
            return "Unity-iPhone";
#endif
        }

FixupFiles.cs:
c# public static void AddBuildFlag(string path) { string projPath = Path.Combine(path, Path.Combine("Unity-iPhone.xcodeproj", "project.pbxproj")); PBXProject proj = new PBXProject(); proj.ReadFromString(File.ReadAllText(projPath)); string targetGUID = proj.TargetGuidByName(GetUnityTargetName()); proj.AddBuildProperty(targetGUID, "GCC_PREPROCESSOR_DEFINITIONS", " $(inherited) FBSDKCOCOAPODS=1"); proj.AddBuildProperty(targetGUID, "OTHER_LDFLAGS", "-ObjC"); proj.AddFrameworkToProject(targetGUID, "Accelerate.framework", true); File.WriteAllText(projPath, proj.WriteToString()); }

كانت تصارع مع مشكلة مجاورة في 2019.3 ، فهي تبني لكنها لا تعمل. نقدر أي توجيه. مشكلة مشابهة جدًا لـ OPs لذلك لست متأكدًا من أنها تستدعي مشكلة منفصلة.

felippeduran جربت الإصلاح وأنشأت ملفات DLL SDK من المصدر ، وما زلت أتلقى نفس الخطأ الذي كنت

2020-04-15 03:25:54.105800+0300 offroad3[35344:6034574] Error loading /var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit Referenced from: /private/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework Reason: image not found 2020-04-15 03:25:54.268034+0300 offroad3[35344:6034574] Error loading /var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit Referenced from: /private/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework Reason: image not found

تعديل:

تبين أن هذه مشكلة مع وسيط إعلان يدمج Facebook Audience Network ، وليس Facebook Unity SDK. إذا كان لديك إخراج مماثل لي ، فقد كان المكون الإضافي Appodeal mediation هو الذي تسبب في ذلك. خلاف ذلك ، يرجى تجاهل هذا التعليق.

تحرير 2:

بالنسبة إلى مرجع googling المستقبلي ، نظرًا لأنني لم أتمكن من العثور على هذه المشكلة المحددة ، كان الحل لمشكلتي هو ببساطة إضافة إطارات العمل مباشرة إلى قسم Embed Frameworks في مراحل البناء لهدف Unity-iPhone.

aVolnov ، هل عمل الإصلاح المقترح من أجلك بعد ذلك؟

@ Felipeuran لست متأكدًا بالفعل لأن مشكلتي تحولت إلى وحش مختلف تمامًا.

flamepygmy لقد أنقذت حياتي للتو. فقدت الكثير من الساعات في هذا :(

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

التعليق على اقتراح @ flo-wolf قد أصلح هذه المشكلة لي في 2019.3.9f1.

ومع ذلك ، فإن الطريقة التي اتبعتها هي إلغاء تثبيت cocoapods تمامًا وإعادة تثبيته بحيث يكون تثبيتًا جديدًا. لقد أغلقت أيضًا Unity في العملية للتأكد من تثبيتها بشكل نظيف من خلال Play Services Resolver.

كنت أستخدم تثبيتات cocoapods القديمة في المشاريع القديمة. لست متأكدًا مما تغير في العام الماضي لجعله ، لذا كان التثبيت الجديد هو أفضل طريقة - مجرد ترقية تثبيت cocoapods المحلي عبر المحطة قد يعمل أيضًا ، لكنني كنت في نهاية ذكاء ؛).

أعتقد أنني اكتشفت ما هي المشكلة. كنت أقوم ببناء مشروع الوحدة من ملف المشروع ، بينما مع cocoapods تحتاج إلى فتح المشروع في xcode من ملف مساحة العمل لأنه يتضمن مشروع الوحدة ومشروع cocoapods. لم تقم مطلقًا ببناء أي شيء من ملف مساحة العمل من قبل باستخدام Unity. خطأي. تضمين التغريدة

هذا عمل معي. شكرا لك!

فتح وإنشاء Unity-iPhone.xcworkspace بدلاً من Unity-iPhone.xcodeproj

ما زلت غير قادر على إنشاء بنية العمل مع Unity 2019.3.
تم إرسال هذه الإصلاحات بالفعل عن طريق "طلب السحب" وهناك بعض التقديرات للإفراج عنها؟ تم إصدار Unity 2019.3 في 28 يناير ، وهو حوالي 6 أشهر وما زال Facebook SDK غير متوافق معها.

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