İçeriğe geç
TREN
Atlıhan Harita

LCC for Unity Kullanım Kılavuzu · Özellik Geliştirme Kılavuzu

iOS Cihaz Derleme ve Paketleme Geliştirme Kılavuzu

Bölüm 15.21 / 17Kılavuz sürümü v2.3.0Türkçe

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.txt dosyasını Editor/RewriteWebpDllImport.cs olarak 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.

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 Mono.Cecil bağımlılığını ada göre ekleme

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.

  1. Editor/RewriteWebpDllImport.txt dosyasını Editor/RewriteWebpDllImport.cs olarak yeniden adlandırın (henüz yapılmadıysa).
  2. 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.
  3. Build (veya Build And Run) düğmesine tıklayın, bir çıktı dizini seçin ve Xcode projesini oluşturun.
  4. Derleme sırasında betik, SDK içinde "libwebp" hedefleyen tüm DllImport girdilerini 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".
  1. Oluşturulan projeyi Xcode ile açın ve hedefin Build Phases → Link Binary With Libraries bölümünde libwebp.a, libwebpdemux.a ve libsharpyuv.a kütüphanelerinin bağlandığını doğrulayın.
  2. 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 .txt yerine .cs olarak 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 ediyorRewriteWebpDllImport.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 areaDerleme sırasında SDK'nın ana DLL'i bulunamadı ve yeniden yazma hedefi eksikSDK'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-simulator mimari 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:

XGRIDS Türkiye

Kurulumda ve Sahada Yanınızdayız

Atlıhan Harita; cihaz kurulumu, firmware güncellemesi, yazılım kullanımı ve saha uygulamalarında eğitim ve teknik destek verir. Sorunuzu iletin, uzmanımız size dönsün.

+90 216 546 0804