Facebook-sdk-for-unity: يتعطل التطبيق عند التشغيل عند استخدام SDK v7.21.2 على جهاز iOS 11

تم إنشاؤها على ١٨ أغسطس ٢٠٢٠  ·  8تعليقات  ·  مصدر: facebook/facebook-sdk-for-unity

بيئة

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

  • إصدار محرر الوحدة: 2018.4.26f1
  • إصدار Unity SDK: 7.21.2
  • XCode: 11.6
  • منصة التثبيت والإصدار: iPad4,4 تشغيل [iOS] الإصدار 11.3.1

نتائج متوقعة

لا تحطم

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

تعطل اللعبة عند الإطلاق:

dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /var/containers/Bundle/Application/6A540FA0-A178-4762-BE4D-1A32AC021D5C/XX.app/XX Reason: image not found

نفس الإصدار يعمل بشكل جيد على الجهاز الذي يعمل بنظام iOS 12.4.4 و 13.6

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

فقط قم ببناء بسيط باستخدام الإصدار المحدد

bug

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

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

// Fixed Facebook SDK 7.21.2 issue for iOS < 12.2
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

ال 8 كومينتر

يمكن استنساخه بسهولة باستخدام محاكي iOS أيضًا :(

أنا أستخدم النص البرمجي التالي لإنشاء المنشور كحل بديل لعدم تعطل نظام التشغيل iOS 11:

public class FacebookCrashIOS11 : ScriptableObject
{
    [PostProcessBuild]
    public static void OnPostProcess(BuildTarget buildTarget, string buildPath)
    {
        // Only for iOS
        if (buildTarget != BuildTarget.iOS)
        {
            return;
        }

        string projectPath = PBXProject.GetPBXProjectPath(buildPath);
        PBXProject project = new PBXProject();

        // Read.
        project.ReadFromString(File.ReadAllText(projectPath));
        string targetGUID = project.GetUnityMainTargetGuid();

        project.SetBuildProperty(targetGUID, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES"); // Facebook 7.21.2 crashed on iOS 11.0 without this line

        // Write.
        File.WriteAllText(projectPath, project.WriteToString());
    }
}

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

// Fixed Facebook SDK 7.21.2 issue for iOS < 12.2
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

واجهت نفس المشكلة مع ios <12.2 ووجدت نفس الحل البديل مع LD_RUNPATH_SEARCH_PATHS بالإضافة إلى ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES.

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

أواجه أيضًا "تعطل التطبيق عند التشغيل" مع لعبة Unity الخاصة بي ، لكن جهاز iPhone XS يعمل بنظام iOS 13.6.1

الوحدة 2019.4.9f1.2
Facebook SDK 7.21.2
iOS 13.6.1

=> تحطم

قبل الترقية إلى FBSDK 7.21.2 ، كان المشروع يحتوي على FBSDK 7.19.0 وكانت اللعبة تعمل دون تعطل.

حاولت:

project.SetBuildProperty (targetId، "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES"، "YES") ؛
project.AddBuildProperty (targetGuid، "LD_RUNPATH_SEARCH_PATHS"، "$ (موروث) @ exable_path / Frameworks") ؛

لكن حصلت على هذا الخطأ عند التحميل:

خطأ ITMS-90206: "حزمة غير صالحة. تحتوي الحزمة الموجودة في" xxxxx.app/Frameworks/UnityFramework.framework "على ملف" Frameworks "غير مسموح به."
كانت حالة إرجاع iTunes Transporter هي 1: خطأ ITMS-90206: "حزمة غير صالحة. تحتوي الحزمة في" xxxxx.app/Frameworks/UnityFramework.framework "على ملف غير مسموح به" Frameworks "."

أعتقد أن ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES يتسبب في هذا الخطأ لـ Unity 2019.4.9f1 لأنني عندما أزلت السطر الثاني (LD_RUNPATH_SEARCH_PATHS) وأعدت الإنشاء ، ما زلت أحصل على نفس خطأ الحزمة غير الصالحة.

حاليًا لا بد لي من العودة إلى FBSDK 7.19.0 ولا مزيد من التعطل.

لدي نفس المشكلة مع FBSDK 8.1.0 أيضًا.
ios 11 <= تعطل بعد ترقية FBSDK من 7.18.1

أواجه أيضًا "تعطل التطبيق عند التشغيل" مع لعبة Unity الخاصة بي ، لكن جهاز iPhone XS يعمل بنظام iOS 13.6.1

الوحدة 2019.4.9f1.2
Facebook SDK 7.21.2
iOS 13.6.1

=> تحطم

قبل الترقية إلى FBSDK 7.21.2 ، كان المشروع يحتوي على FBSDK 7.19.0 وكانت اللعبة تعمل دون تعطل.

حاولت:

project.SetBuildProperty (targetId، "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES"، "YES") ؛
project.AddBuildProperty (targetGuid، "LD_RUNPATH_SEARCH_PATHS"، "$ (موروث) @ exable_path / Frameworks") ؛

لكن حصلت على هذا الخطأ عند التحميل:

خطأ ITMS-90206: "حزمة غير صالحة. تحتوي الحزمة الموجودة في" xxxxx.app/Frameworks/UnityFramework.framework "على ملف" Frameworks "غير مسموح به."
كانت حالة إرجاع iTunes Transporter هي 1: خطأ ITMS-90206: "حزمة غير صالحة. تحتوي الحزمة في" xxxxx.app/Frameworks/UnityFramework.framework "على ملف غير مسموح به" Frameworks "."

أعتقد أن ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES يتسبب في هذا الخطأ لـ Unity 2019.4.9f1 لأنني عندما أزلت السطر الثاني (LD_RUNPATH_SEARCH_PATHS) وأعدت الإنشاء ، ما زلت أحصل على نفس خطأ الحزمة غير الصالحة.

حاليًا لا بد لي من العودة إلى FBSDK 7.19.0 ولا مزيد من التعطل.

أنا أيضا حصلت
Return status of iTunes Transporter was 1: ERROR ITMS-90206: "Invalid Bundle. The bundle at 'xxxxx.app/Frameworks/UnityFramework.framework' contains disallowed file 'Frameworks'."

لحلها ، قمت للتو بحذف الأرشيف الحالي الخاص بي وأعد أرشفته ، ثم تم قبوله

لقد وجدت نموذجًا للعمل ، يرجى التحقق من هذا الرابط:
https://github.com/facebook/facebook-sdk-for-unity/issues/193#issuecomment -754953304

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