Background
LCC Unity SDK, önceden derlenmiş DLL'ler olarak yayımlanır. iOS platformu yerel eklentilerin dinamik olarak yüklenmesini (dlopen) değil, statik kütüphane (__Internal) olarak bağlanmasını gerektirir. Bu nedenle bir iOS uygulaması derlemeden önce bu belgede açıklanan ek yapılandırma adımlarını tamamlamanız gerekir. iOS ile diğer platformlar arasında yerel eklenti yükleme mekanizması açısından temel bir fark vardır; diğer platformlarda (Windows, macOS, Android, Linux) ek bir işlem gerekmez.
Bu SDK, DLL olarak derlendiğinde P/Invoke hedefi olarak "libwebp" kullanır. SDK'nın yerleşik Editor/RewriteWebpDllImport.cs betiği, iOS derlemeleri sırasında bunu otomatik olarak "__Internal" şeklinde yeniden yazar ve IL2CPP'nin doğru doğrudan sembol çağrılarını üretmesini sağlar.
Not:
Bir iOS cihaz uygulaması derlerken, betiğin etkin olması için önce SDK paketindeki
Editor/RewriteWebpDllImport.txtdosyasınıEditor/RewriteWebpDllImport.csolarak yeniden adlandırın. Alternatif olarak, SDK paketinde betiğin uzantısını doğrudan değiştirip projenin Assets/Editor/ dizinine kopyalayabilirsiniz.
Ön Koşullar
RewriteWebpDllImport.cs betiği, derleme sırasında IL yeniden yazma kütüphanesi Mono.Cecil kullanır. Bu nedenle önce bunu projeye bağımlılık olarak eklemeniz gerekir. İki yöntem vardır; birini seçin.
Yöntem 1: Package Manager ile Ekleme (Önerilir)
Unity menü çubuğunda Window → Package Manager yolunu açın, sol üst köşedeki + düğmesine tıklayın, Add package by name... seçeneğini seçin, ad olarak com.unity.nuget.mono-cecil, sürüm olarak 1.11.5 girin, Add düğmesine tıklayın ve Package Manager kurulumu tamamlayana kadar bekleyin. Adımlar aşağıda gösterilmiştir.

Package Manager'da com.unity.nuget.mono-cecil paketini ada göre ekleme
Yöntem 2: manifest.json Dosyasını Elle Düzenleme
Projenin Packages/manifest.json dosyasını doğrudan düzenleyin ve dependencies bölümüne bir satır ekleyin:
{
"dependencies": {
"com.unity.nuget.mono-cecil": "1.11.5"
}
}
Kaydettikten sonra Unity'ye dönün; Editor bağımlılığı otomatik olarak çözümler ve kurar.
Derleme İş Akışı
Ön koşul yapılandırmasını tamamladıktan sonra standart iOS derleme iş akışını izleyin; RewriteWebpDllImport derleme sırasında otomatik olarak devreye girer.
Editor/RewriteWebpDllImport.txtdosyasınıEditor/RewriteWebpDllImport.csolarak yeniden adlandırın (henüz yapılmadıysa).- Unity menü çubuğunda File → Build Settings yolunu seçin, platform listesinden iOS seçeneğini seçin ve Switch Platform düğmesine tıklayın.
- Build (veya Build And Run) düğmesine tıklayın, bir çıktı dizini seçin ve Xcode projesini oluşturun.
- Derleme sırasında betik, SDK içinde
"libwebp"hedefleyen tümDllImportgirdilerini otomatik olarak"__Internal"şeklinde yeniden yazar. Derleme başarılı olduktan sonra Console'da şuna benzer bir günlük görüntülenir:
[RewriteWebpDllImport] Rewrote 77 P/Invoke entries from "libwebp" to "__Internal".
- Oluşturulan projeyi Xcode ile açın ve hedefin Build Phases → Link Binary With Libraries bölümünde
libwebp.a,libwebpdemux.avelibsharpyuv.akütüphanelerinin bağlandığını doğrulayın. - iOS cihazı bağlayın, Xcode'da imzalayın ve çalıştırın.
Not:
Console'da
[RewriteWebpDllImport]günlüğü görünmüyorsa genellikle betik etkin olmamıştır. Dosya uzantısının.txtyerine.csolarak değiştirildiğini ve Mono.Cecil bağımlılığının doğru kurulduğunu kontrol edin.
Sorun Giderme
| Hata Mesajı | Neden | Çözüm |
|---|---|---|
Unable to load DLL 'libwebp' | Betik etkin olmadı ve DllImport hâlâ dinamik kütüphane adına işaret ediyor | RewriteWebpDllImport.txt dosyasının .cs olarak yeniden adlandırıldığını doğrulayın, yeniden derleyin ve Console günlüğünü kontrol edin |
Cannot find LCCSDK.dll in staging area | Derleme sırasında SDK'nın ana DLL'i bulunamadı ve yeniden yazma hedefi eksik | SDK'nın projeye doğru şekilde aktarıldığını ve DLL'in Exclude Platform ile iOS'tan hariç tutulmadığını doğrulayın |
Mono.Cecil ile ilgili derleme hataları (Mono.Cecil ad alanı bulunamıyor) | Kurulu değil veya sürüm uyumsuzluğu var | "Ön Koşullar" bölümüne göre com.unity.nuget.mono-cecil@1.11.5 paketini ekleyin ve derleyicinin yeniden çözümlemesini bekleyin |
Notlar
- Unity 2022.3 LTS veya üzeri (Unity 6 dahil) kullanmanız önerilir; çok eski sürümlerde Mono.Cecil ve IL2CPP ile uyumluluk kesin olarak sağlanamaz.
- iOS Simülatörü üzerinde çalıştırmanız gerekiyorsa, bağlanan statik kütüphanenin
arm64-simulatormimari dilimini içerdiğini doğrulayın; aksi takdirde simülatör bağlama yapamaz. - Yukarıdaki yapılandırma yalnızca iOS platformunu etkiler. Windows, macOS, Android ve Linux derleme iş akışları hiç etkilenmez; betiği yeniden adlandırmanız veya Mono.Cecil bağımlılığını eklemeniz gerekmez.
Bu bölüm XGRIDS'in resmî kullanım kılavuzundan Türkçeye çevrildi; ekran görüntüleri ve arayüz adları özgün haliyle İngilizcedir. İngilizce aslı (yeni sekmede açılır) · Güncelleme:

