Facebook-sdk-for-unity: Unity 2019.3 - perpustakaan tidak ditemukan untuk -lFBSDKCoreKit

Dibuat pada 24 Mar 2020  ·  16Komentar  ·  Sumber: facebook/facebook-sdk-for-unity

Daftar periksa

Lingkungan Hidup

Jelaskan lingkungan dev Anda di sini, berikan detail sebanyak mungkin. Jika Anda memilikinya, pastikan untuk menyertakan:

  • Versi Editor Unity: 2019.3.6f1
  • Versi SDK Unity: 7.19.1
  • Platform & Versi Instalasi: iOS versi 10+ XCode 11.3.1'

Gol

Bangun untuk iOS menggunakan Unity 2019.3

Hasil yang diharapkan

Berhasil membangun

Hasil nyata

Kompilasi gagal karena pustaka -lFBSDKCoreKit tidak ditemukan.
Masalah lain telah diselesaikan tetapi tidak diperbaiki di Facebook SDK 7.19+:

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

Langkah-langkah untuk Reproduksi

Buat proyek baru dalam kesatuan
Instal paket FB SDK (7.19.1)
Membangun Proyek Persatuan (2019.3.6f1)
Coba buat proyek Xcode di Xcode (versi 11.3.1)
Periksa kesalahan

bug

Komentar yang paling membantu

Saya memiliki masalah yang sama. Meskipun tidak peduli apa yang saya setel generasi cocoapod saya di Unity Play Services Resolver, .xcworkspace tidak dibuat.

Bagaimana saya memperbaikinya:
buka terminal di folder root proyek Anda dan jalankan
pod install
ini membuat file .xcworkspace. Setelah membukanya, menambahkan info penandatanganan dll seperti biasa dan kemudian membangunnya, akhirnya berhasil.

Semua 16 komentar

Saya memiliki masalah yang sama persis.
Persatuan: 2019.3.6f1
SDK FB: (7.19.1)
Kode X: 11.3.1

Masalah yang sama persis.
Unity: 2018.4.5f1 (LTS)
FB SDK: 7.19.1
Kode X: 11.3.1

Saya pikir saya baru saja menemukan apa masalahnya. Saya sedang membangun proyek Unity dari file proyek, sedangkan dengan cocoapods Anda perlu membuka proyek di xcode dari file ruang kerja karena termasuk proyek unity DAN proyek cocoapods. Jangan pernah membuat apa pun dari file ruang kerja sebelumnya dengan Unity. Salahku.

@flamepygmy
Itu memecahkan masalah bagi saya juga. :-)
Saya tidak akrab sama sekali dengan XCode, tapi saya kira ruang kerja sebanding dengan solusi Visual Studio. Sampai sekarang saya selalu hanya mengklik dua kali pada file .xcodeproj.

Saya memiliki masalah yang sama. Meskipun tidak peduli apa yang saya setel generasi cocoapod saya di Unity Play Services Resolver, .xcworkspace tidak dibuat.

Bagaimana saya memperbaikinya:
buka terminal di folder root proyek Anda dan jalankan
pod install
ini membuat file .xcworkspace. Setelah membukanya, menambahkan info penandatanganan dll seperti biasa dan kemudian membangunnya, akhirnya berhasil.

Saat ini saya memigrasikan game reguler saya ke 2019.3 juga dan saya menghadapi masalah yang sama.

Ini tampaknya menjadi masalah di mana FBSDKCOCOAPODS=1 dimasukkan sebagai makro preprosesor dari target utama ( Unity-iPhone ) alih-alih UnityFramework , yang ditargetkan oleh IOSResolver dan termasuk semua kode sumber diekspor saat membangun ruang kerja XCode.

Tanpa makro ini, FBSDKCoreKitImport.h akan mengarah ke penyertaan/impor yang salah:

#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

Melihat ke kode sumber SDK Facebook, saya pikir masalahnya ada di FixupFiles.cs :
`` c #
public static void AddBuildFlag (jalur string)
{
string projPath = Path.Combine(path, Path.Combine("Unity-iPhone.xcodeproj", "project.pbxproj"));
Proyek PBXProyek = Proyek PBX baru();
proj.ReadFromString(File.ReadAllText(projPath));
string targetGUID = proj.TargetGuidByName("Unity-iPhone");
proj.AddBuildProperty(targetGUID, "GCC_PREPROCESSOR_DEFINITIONS", " $(diwarisi) FBSDKCOCOAPODS=1");
proj.AddBuildProperty(targetGUID, "OTHER_LDFLAGS", "-ObjC");
proj.AddFrameworkToProject(targetGUID, "Accelerate.framework", benar);
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()); }

Telah bergulat dengan masalah yang berdekatan pada 2019.3, itu membangun tetapi tidak berjalan. Akan menghargai bimbingan apa pun. Masalah yang sangat mirip dengan OP jadi saya tidak yakin itu memerlukan masalah terpisah.

@felippeduran Mencoba memperbaiki dan membuat SDK DLL dari sumber, masih mendapatkan kesalahan yang sama seperti yang saya dapatkan sebelumnya:

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

EDIT:

Ini ternyata menjadi masalah dengan mediator iklan yang mengintegrasikan Facebook Audience Network, dan bukan Facebook Unity SDK. Jika Anda memiliki output yang mirip dengan saya, itu adalah plugin mediasi Appodeal yang menyebabkan ini. Jika tidak, harap abaikan komentar ini.

EDIT 2:

Untuk referensi googling di masa mendatang, karena saya tidak dapat menemukan masalah khusus ini, solusi untuk masalah saya adalah dengan menambahkan kerangka kerja secara langsung ke bagian Embed Frameworks dari Build Phases dari target Unity-iPhone.

@aVolnov , apakah perbaikan yang saya sarankan berhasil untuk Anda?

@felippeduran Saya sebenarnya tidak yakin karena masalah saya ternyata sama sekali berbeda.

@flamepygmy Anda baru saja menyelamatkan hidup saya. Kehilangan begitu banyak jam untuk ini :(

yup, saluran pipa Unity iOS benar-benar rawan kesalahan... Begitu banyak bagian yang harus bekerja sama, sama sekali tidak dapat diprediksi jika ada pembaruan paket yang merusak apa pun.

Mengomentari saran @ flo-wolf juga memperbaiki masalah ini untuk saya pada 2019.3.9f1.

Namun, cara saya melakukannya adalah dengan menghapus sepenuhnya cocoapods dan menginstalnya kembali sehingga itu adalah instalasi baru. Saya juga menutup Unity dalam proses untuk memastikannya diinstal dengan bersih melalui Play Services Resolver.

Saya telah menggunakan penginstalan cocoapods lama pada proyek yang lebih lama. Saya tidak yakin apa yang berubah pada tahun lalu sehingga instalasi baru adalah pendekatan terbaik - hanya memutakhirkan instalasi cocoapods lokal melalui terminal juga dapat berfungsi, tetapi saya kehabisan akal ;).

Saya pikir saya baru saja menemukan apa masalahnya. Saya sedang membangun proyek Unity dari file proyek, sedangkan dengan cocoapods Anda perlu membuka proyek di xcode dari file ruang kerja karena itu termasuk proyek unity DAN proyek cocoapods. Jangan pernah membuat apa pun dari file ruang kerja sebelumnya dengan Unity. Salahku. @flamepygmy

Ini berhasil untuk saya. Terima kasih!

Buka dan bangun Unity-iPhone.xcworkspace alih-alih Unity-iPhone.xcodeproj

Saya masih tidak dapat membuat Build Kerja dengan Unity 2019.3.
Perbaikan ini sudah dikirim oleh "permintaan tarik" dan ada beberapa perkiraan untuk rilis? Unity 2019.3 dirilis pada 28 Januari, sudah sekitar 6 bulan dan Facebook SDK masih belum kompatibel dengannya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

1901 picture 1901  ·  6Komentar

manofspirit picture manofspirit  ·  6Komentar

laijingfeng picture laijingfeng  ·  6Komentar

bblpny picture bblpny  ·  4Komentar

michelleran picture michelleran  ·  4Komentar