Jelaskan lingkungan dev Anda di sini, berikan detail sebanyak mungkin. Jika Anda memilikinya, pastikan untuk menyertakan:
2018.4.23
7.21.0
Saya ingin dapat memperbarui SDK Facebook tanpa pemecahan masalah yang konstan.
XCode akan dengan rapi membangun klien setelah memperbarui SDK.
XCode gagal untuk membangun
Perbarui dari 7.20.0 -> 7.21.0 dan bangun di atas XCode
Menampilkan Pesan Terbaru
Simbol tidak terdefinisi: __swift_FORCE_LOAD_$_swiftCompatibilityDynamicReplacements
Simbol tidak terdefinisi: __swift_FORCE_LOAD_$_swiftCompatibility50
Solusi saat ini adalah menambahkan use_framework!
ke Podfile di proyek XCode yang Anda ekspor
Solusi saat ini adalah menambahkan
use_framework!
ke Podfile di proyek XCode yang Anda ekspor
Terima kasih @KylinChang itu berhasil untuk saya!
Terima kasih @KylinChang ,
Akan sangat membantu jika ini ditambahkan ke catatan rilis versi yang disadap di halaman unduhan SDK.
Wow terima kasih banyak, Anda pasti harus menambahkan sesuatu ke log perubahan.
Juga, itu use_frameworks!
(jamak)👍
setelah menambahkan use_frameworks! proyek dibangun, tetapi mogok saat dimulai dengan kesalahan ini:
[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
Menambahkannya ke daftar framework yang disematkan tidak membantu.
Ada lagi yang perlu saya lakukan?
Ini tidak bekerja untuk saya! Saya menambahkan "use_frameworks!" tapi buildnya masih gagal. Apakah saya perlu sesuatu yang lain?
setelah menambahkan use_frameworks! proyek dibangun, tetapi mogok saat dimulai dengan kesalahan ini:
[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
Menambahkannya ke daftar framework yang disematkan tidak membantu.
Ada lagi yang perlu saya lakukan?
Saya mendapatkan hal yang sama :/
@KylinChang dapatkah Anda membagikan seperti apa podfile Anda?
Saya dapat membuatnya sekarang, tetapi gagal dengan kesalahan yang sama saat dijalankan. Ada yang bisa membuatnya bekerja?
Masalah yang sama di sini dengan Unity 2019.4.1, Facebook SDK 7.21.1.
Menggunakan use_frameworks!
hanya akan menggunakan pustaka dinamis alih-alih yang statis. Itu mengkompilasi, tentu saja, tetapi kemudian kerangka kerja itu harus disematkan entah bagaimana. Masih mencari ini, tetapi dalam hal apa pun saya perlu ruang kerja / proyek XCode yang dihasilkan Unity untuk sudah disiapkan atau sistem CI kami akan gagal ...
Harus memodifikasi podfile secara manual dan kemudian proyek adalah sesuatu yang seharusnya tidak kita lakukan untuk tugas yang mudah seperti hanya mengintegrasikan SDK Facebook ...
Masalah yang sama di sini dengan Unity 2019.4.1, Facebook SDK 7.21.1.
Menggunakan
use_frameworks!
hanya akan menggunakan pustaka dinamis alih-alih yang statis. Itu mengkompilasi, tentu saja, tetapi kemudian kerangka kerja itu harus disematkan entah bagaimana. Masih mencari ini, tetapi dalam hal apa pun saya perlu ruang kerja / proyek XCode yang dihasilkan Unity untuk sudah disiapkan atau sistem CI kami akan gagal ...Harus memodifikasi podfile secara manual dan kemudian proyek adalah sesuatu yang seharusnya tidak kita lakukan untuk tugas yang mudah seperti hanya mengintegrasikan SDK Facebook ...
Di sini Anda dapat mengatur skrip pembuatan posting sederhana untuk memodifikasi podfile secara terprogram, saya menggunakannya dalam proyek saya dan berfungsi dengan baik
Buat file MonoBehaviour baru (misalnya: PostProcessBuild_Podfile.cs) dan taruh di folder Assets/Editor
menggunakan System.Collections;
menggunakan System.Linq;
menggunakan System.Collections.Generic;
menggunakan UnityEngine;
menggunakan UnityEditor;
menggunakan UnityEditor.Callbacks;
menggunakan System.IO;
PostProcessBuild_Podfile kelas publik : MonoBehaviour
{
[PostProcessBuildAttribute (45)] // harus antara 40 dan 50 untuk memastikan bahwa itu tidak diganti oleh pembuatan Podfile (40) dan ditambahkan sebelum "pod install" (50)
private static void PostProcessBuild_iOS (target BuildTarget, string buildPath)
{
jika (target == BuildTarget.iOS)
{
var namafile = buildPath + "/Podfile";
var endTag = "platform :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 terima kasih atas kodenya, itu sangat berguna, tetapi tetap saja ini membuat proyek dikompilasi maka kerangka kerja tidak tertanam dalam biner secara otomatis dan aplikasi macet saat startup seperti yang disebutkan oleh @NumaNumaNuma. Saya telah mencoba menyematkan kerangka kerja FB secara manual ke build tetapi sejujurnya saya tidak tahu file mana dari proyek mana yang harus saya tambahkan ke target mana. Semua usaha saya gagal... Ada petunjuk tentang itu? (dan juga, ada petunjuk tentang cara membuatnya bekerja menggunakan skrip proses pasca?)
Saya telah kembali menggunakan versi sdk yang lebih lama untuk saat ini (7.19.2 adalah yang terbaru yang tidak menggunakan sdk iOS cepat 7.0).
Saya juga kembali ke 7.19.2 sebagai use_frameworks! Tampaknya telah menyebabkan masalah dengan pod lain yang saya gunakan.
Kami akan menunggu Facebook SDK yang diperbarui untuk mencoba lagi :(
@NumaNumaNuma ya itu sepertinya satu-satunya pilihan untuk saat ini, ini dikompilasi dan berjalan tanpa masalah! Terima kasih telah berbagi ini!
Solusi saat ini di sini adalah dengan menambahkan "use_frameworks!" ke Podfile atau tambahkan file swift kosong ke proyek iOS yang diekspor. Masalah ini diperbaiki di https://github.com/facebook/facebook-sdk-for-unity/commit/8fdb57a76d2f5a14c168e91663280d40f274c74c dan akan dikirimkan pada rilis berikutnya.
@KylinChang Dan ini sudah 6 hari sejak komit itu, apa yang terjadi? Mengapa masih ada kesalahan di travis dan mengapa belum dirilis?
@Thaina Jika Anda sedang terburu-buru mungkin Anda bisa mencoba dan memperbaikinya secara manual. Jika Anda melihat komit itu adalah perubahan yang sangat kecil, Anda dapat mencoba mengimplementasikannya sendiri. Tambahkan file Swift kosong itu dan 2 properti build ke proyek xcode Anda dalam skrip post-build dalam kesatuan. Menyebalkan karena harus melakukannya secara manual, tetapi mungkin menghemat beberapa hari (minggu?) saat mereka merilisnya.
Atau mungkin mereka melakukan rilis mingguan dan akan keluar besok :D
@NumaNumaNuma Pertama, karena itu tidak berhasil
Jadi saya sebenarnya tidak tahu saya melakukan sesuatu yang salah atau perbaikannya tidak benar-benar berfungsi. Atau memiliki beberapa persyaratan yang harus atau harus diperbaiki dari paket SDK facebook secara langsung atau alasan lainnya
Kedua, itu tidak resmi sehingga mencemari kode saya dan harus benar-benar menghapusnya di masa mendatang ketika perbaikan sebenarnya keluar, jadi saya mencoba menghindarinya. Dan itulah mengapa saya tidak suka melakukan itu sebelum mengkonfirmasi bahwa facebook tidak akan segera merilisnya
Ketiga, itu benar-benar tidak berhasil, setidaknya di unity 2020.2
.swift
tidak dapat ada di folder Editor
atau jika tidak, itu tidak akan disalin ke proyek xcode yang sebenarnyaALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
ke YES
hanya dalam satu target utama tidak memperbaiki masalahInvalid bundle… contains disallowed file 'frameworks'
Dalam kasus saya, saya perlu memindahkan .swift
ke luar ke dalam folder Assets
. Kemudian buat proses build seperti ini
```C#
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");
}
``
Solusi saat ini di sini adalah dengan menambahkan "use_frameworks!" ke Podfile atau tambahkan file swift kosong ke proyek iOS yang diekspor. Masalah telah diperbaiki di 8fdb57a dan akan dikirimkan pada rilis berikutnya.
Hai! Bisakah Anda memberi tahu kapan Anda akan merilis perbaikan?
@KylinChang Perbaikannya benar untuk versi Unity yang lebih lama, tetapi Unity 2019.3 dan yang lebih baru memerlukan target yang berbeda untuk "diperbaiki":
https://github.com/YousicianGit/facebook-sdk-for-unity/commit/878fc7b73d9a2c3751bb36792f0276cdfacf9495
Saya akan mengirimkan perbaikan dalam PR segera.
Masalah ini diperbaiki dalam rilis terbaru
Komentar yang paling membantu
@Khaled-Wolf terima kasih atas kodenya, itu sangat berguna, tetapi tetap saja ini membuat proyek dikompilasi maka kerangka kerja tidak tertanam dalam biner secara otomatis dan aplikasi macet saat startup seperti yang disebutkan oleh @NumaNumaNuma. Saya telah mencoba menyematkan kerangka kerja FB secara manual ke build tetapi sejujurnya saya tidak tahu file mana dari proyek mana yang harus saya tambahkan ke target mana. Semua usaha saya gagal... Ada petunjuk tentang itu? (dan juga, ada petunjuk tentang cara membuatnya bekerja menggunakan skrip proses pasca?)