Jelaskan lingkungan dev Anda di sini, berikan detail sebanyak mungkin. Jika Anda memilikinya, pastikan untuk menyertakan:
2019.3.6f1
7.19.1
iOS
versi 10+
XCode 11.3.1'Bangun untuk iOS menggunakan Unity 2019.3
Berhasil membangun
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
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
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.
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.