صِف بيئة التطوير الخاصة بك هنا ، مع إعطاء أكبر قدر ممكن من التفاصيل. إذا كان لديك ، فتأكد من تضمين:
2018.4.23
7.21.0
أريد أن أكون قادرًا على تحديث Facebook SDK دون حل مشكلة مستمر.
سيقوم XCode ببناء العميل بشكل نظيف بعد تحديث SDK.
فشل إنشاء XCode
التحديث من 7.20.0 -> 7.21.0 والبناء على XCode
إظهار الرسائل الأخيرة
رمز غير محدد: __swift_FORCE_LOAD _ $ _ swiftCompatibilityDynamicReplacements
رمز غير محدد: __swift_FORCE_LOAD _ $ _ swiftCompatibility50
الحل الحالي هو إضافة use_framework!
إلى Podfile في مشروع XCode الذي تم تصديره
الحل الحالي هو إضافة
use_framework!
إلى Podfile في مشروع XCode الذي تم تصديره
شكرا KylinChang عملت بالنسبة لي!
شكرا KylinChang ،
سيكون من المفيد إذا تمت إضافة هذا إلى ملاحظات الإصدار الخاصة بالنسخة التي بها أخطاء في صفحة تنزيل SDK.
واو ، شكرًا جزيلاً ، يجب عليك بالتأكيد إضافة شيء ما إلى سجل التغيير.
أيضًا ، إنه use_frameworks!
(جمع) 👍
بعد إضافة use_frameworks! يبني المشروع ، لكنه يتعطل عند البدء بهذا الخطأ:
[13858:5861271] Error loading /var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit
Referenced from: /private/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework
Reason: image not found
لم تساعد إضافته إلى قائمة الأطر المضمنة.
أي شيء آخر يجب أن أفعله؟
لا يعمل بالنسبة لي! أضفت "use_frameworks!" لكن البناء لا يزال يفشل. هل أحتاج شيئًا آخر؟
بعد إضافة use_frameworks! يبني المشروع ، لكنه يتعطل عند البدء بهذا الخطأ:
[13858:5861271] Error loading /var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit Referenced from: /private/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework Reason: image not found
لم تساعد إضافته إلى قائمة الأطر المضمنة.
أي شيء آخر يجب أن أفعله؟
أحصل على نفس الشيء :/
KylinChang هل يمكنك مشاركة شكل ملف podfile الخاص بك من فضلك؟
لقد تمكنت من إنشائه الآن ، لكنه فشل مع نفس الخطأ عند التشغيل. أي شخص كان قادرا على جعلها تعمل؟
نفس المشكلة هنا مع Unity 2019.4.1 ، Facebook SDK 7.21.1.
باستخدام use_frameworks!
سيستخدم المكتبات الديناميكية فقط بدلاً من المكتبات الثابتة. إنه يجمع ، بالطبع ، ولكن بعد ذلك يجب تضمين تلك الأطر بطريقة ما. ما زلت أبحث في هذا الأمر ، ولكن على أي حال ، أحتاج إلى مساحة عمل / مشروع XCode الذي تم إنشاؤه من Unity ليتم إعداده بالفعل وإلا سيفشل نظام CI الخاص بنا ...
الاضطرار إلى تعديل ملف podfile يدويًا ثم المشروع هو شيء لا ينبغي علينا القيام به لمهمة سهلة مثل دمج Facebook SDK ...
نفس المشكلة هنا مع Unity 2019.4.1 ، Facebook SDK 7.21.1.
باستخدام
use_frameworks!
سيستخدم المكتبات الديناميكية فقط بدلاً من المكتبات الثابتة. إنه يجمع ، بالطبع ، ولكن بعد ذلك يجب تضمين تلك الأطر بطريقة ما. ما زلت أبحث في هذا الأمر ، ولكن على أي حال ، أحتاج إلى مساحة عمل / مشروع XCode الذي تم إنشاؤه من Unity ليتم إعداده بالفعل وإلا سيفشل نظام CI الخاص بنا ...الاضطرار إلى تعديل ملف podfile يدويًا ثم المشروع هو شيء لا ينبغي علينا القيام به لمهمة سهلة مثل دمج Facebook SDK ...
هنا يمكنك إعداد نص بسيط لإنشاء منشور لتعديل ملف podfile برمجيًا ، وأنا أستخدمه في مشروعي ويعمل بشكل جيد
قم بإنشاء ملف MonoBehaviour جديد (على سبيل المثال: PostProcessBuild_Podfile.cs) وضعه في مجلد الأصول / المحرر
باستخدام System.Collections.
باستخدام System.Linq ؛
باستخدام System.Collections.Generic ؛
باستخدام UnityEngine ؛
باستخدام UnityEditor ؛
باستخدام UnityEditor.Callbacks ؛
باستخدام System.IO ؛
فئة عامة PostProcessBuild_Podfile: MonoBehaviour
{
[PostProcessBuildAttribute (45)] // يجب أن يكون بين 40 و 50 للتأكد من أنه لم يتم تجاوزه من خلال إنشاء Podfile (40) وأنه تمت إضافته قبل "تثبيت pod" (50)
PostProcessBuild_iOS الخاصة باطلة ثابتة (هدف BuildTarget ، سلسلة buildPath)
{
إذا (الهدف == BuildTarget.iOS)
{
var fileName = buildPath + "/ Podfile" ؛
var endTag = "النظام الأساسي: ios ، '9.0'" ؛
var lineToAdd = "use_frameworks!"؛
Debug.Log("PostProcess: Adding use_frameworks! to podfile, this fix for new Facebook SDK");
var txtLines = File.ReadAllLines(fileName).ToList();
txtLines.Insert(txtLines.IndexOf(endTag)+1, lineToAdd);
File.WriteAllLines(fileName, txtLines);
Debug.Log("PostProcess: Adding use_frameworks! to podfile Completed successfully!");
}
}
}
@ Khaled-Wolf شكرًا على الكود ، هذا مفيد حقًا ، ولكن لا يزال حتى لو أدى ذلك إلى تجميع المشروع ، فلن يتم تضمين إطار العمل في النظام الثنائي تلقائيًا ويتعطل التطبيق عند بدء التشغيل كما هو مذكور من قبلNumaNumaNuma. لقد حاولت تضمين أطر عمل FB يدويًا في الإنشاء ولكني بصراحة لا أعرف أي ملف من أي مشروع يجب أن أضيف إلى أي هدف. كل محاولاتي باءت بالفشل ... أي دليل على ذلك؟ (وأيضًا ، أي دليل حول كيفية جعله يعمل باستخدام برنامج نصي لعملية النشر؟)
لقد عدت إلى استخدام إصدار أقدم من sdk في الوقت الحالي (7.19.2 هو الأحدث الذي لا يستخدم 7.0 swift iOS sdk).
لقد عدت أيضًا إلى 7.19.2 كـ use_frameworks! يبدو أنه تسبب في حدوث مشكلات مع البودات الأخرى التي أستخدمها.
سننتظر تحديث Facebook SDK للمحاولة مرة أخرى :(
NumaNumaNuma نعم يبدو أنه الخيار الوحيد في الوقت الحالي ، فهو يجمع ويعمل دون مشاكل! شكرا لتقاسم هذا!
الحل الحالي هنا هو إضافة "use_frameworks!" إلى Podfile أو إضافة ملف سريع فارغ لمشروع iOS المُصدَّر. تم إصلاح المشكلة في https://github.com/facebook/facebook-sdk-for-unity/commit/8fdb57a76d2f5a14c168e91663280d40f274c74c وسيتم شحنها في الإصدار التالي.
KylinChang وهذه 6 أيام بالفعل من هذا الالتزام ، ماذا حدث؟ لماذا لا يزال هناك خطأ في ترافيس ولماذا لم يتم إصداره بعد؟
Thaina إذا كنت في عجلة من إصلاحه يدويًا. إذا نظرت إلى الالتزام ، فإنه تغيير صغير جدًا يمكنك محاولة تنفيذه بنفسك. أضف ملف swift الفارغ وخصائص البناء 2 إلى مشروع xcode الخاص بك في نص ما بعد الإنشاء في الوحدة. تمتص الاضطرار إلى القيام بذلك يدويًا ، ولكن قد يوفر عليك بضعة أيام (أسابيع؟) أثناء إطلاقه.
أو ربما يقومون بإصدارات أسبوعية وستخرج غدًا: د
NumaNumaNuma أولاً ، لأن هذا لا يعمل
لذلك لا أعرف في الواقع أنني أفعل شيئًا خاطئًا أو أن الإصلاح لا يعمل حقًا في المقام الأول. أو لديها بعض المتطلبات التي يجب أو يجب أن تكون إصلاحًا من حزمة facebook SDK مباشرة أو لأي سبب آخر
ثانيًا ، إنه ليس رسميًا ، لذا فهو يلوث الكود الخاص بي ويحتاج إلى إزالته فعليًا في المستقبل عند ظهور الإصلاح الحقيقي ، لذا أحاول تجنب ذلك. ولهذا السبب لا أحب أن أفعل ذلك قبل أن أؤكد أن فيسبوك لن يصدره قريبًا
ثالثًا ، لم ينجح الأمر حقًا ، على الأقل في وحدة 2020
.swift
لا يمكن أن تكون موجودة في Editor
مجلد وإلا لن يتم نسخها إلى مشروع Xcode الفعليALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
على YES
في هدف رئيسي واحد فقط وهو عدم حل المشكلةInvalid bundle… contains disallowed file 'frameworks'
في حالتي ، أحتاج إلى نقل هذا .swift
إلى الخارج إلى المجلد Assets
. ثم جعل عملية البناء مثل هذا
ج #
string target = proj.GetUnityMainTargetGuid();
string targetName = PBXProject.GetUnityTargetName();
string target = proj.TargetGuidByName(targetName);
////
foreach(var framework in new [] { target,proj.GetUnityFrameworkTargetGuid() })
foreach(var framework in new [] { target })
{
proj.SetBuildProperty(framework, "ENABLE_BITCODE", "NO");
proj.SetBuildProperty(framework, "EMBEDDED_CONTENT_CONTAINS_SWIFT", "YES");
proj.SetBuildProperty(framework, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
proj.SetBuildProperty(framework, "SWIFT_VERSION", "5.0");
}
""
الحل الحالي هنا هو إضافة "use_frameworks!" إلى Podfile أو إضافة ملف سريع فارغ لمشروع iOS المُصدَّر. تم إصلاح المشكلة في 8fdb57a وسيتم شحنها في الإصدار التالي.
أهلا! هل تريد أن تقول جودًا عندما تنوي إصدار الإصلاح؟
KylinChang الإصلاح صحيح للإصدارات الأقدم من Unity ، لكن Unity 2019.3 والإصدارات الأحدث تتطلب هدفًا مختلفًا ليتم "إصلاحه":
https://github.com/YousicianGit/facebook-sdk-for-unity/commit/878fc7b73d9a2c3751bb36792f0276cdfacf9495
سأرسل الإصلاح في العلاقات العامة قريبًا.
تم إصلاح المشكلة في أحدث إصدار
التعليق الأكثر فائدة
@ Khaled-Wolf شكرًا على الكود ، هذا مفيد حقًا ، ولكن لا يزال حتى لو أدى ذلك إلى تجميع المشروع ، فلن يتم تضمين إطار العمل في النظام الثنائي تلقائيًا ويتعطل التطبيق عند بدء التشغيل كما هو مذكور من قبلNumaNumaNuma. لقد حاولت تضمين أطر عمل FB يدويًا في الإنشاء ولكني بصراحة لا أعرف أي ملف من أي مشروع يجب أن أضيف إلى أي هدف. كل محاولاتي باءت بالفشل ... أي دليل على ذلك؟ (وأيضًا ، أي دليل حول كيفية جعله يعمل باستخدام برنامج نصي لعملية النشر؟)