Aracılığıyla paylaş


Objective Sharpie ile Çalışmaya Başlama

Önemli

Objective Sharpie, deneyimli Xamarin geliştiricileri için gelişmiş bilgiye Objective-C (ve uzantıya göre C) sahip bir araçtır. Bir Objective-C kitaplığı bağlamaya çalışmadan önce, komut satırında yerel kitaplığın nasıl derlenmesi gerektiği konusunda sağlam bilgiye sahip olmanız gerekir (ve yerel kitaplığın nasıl çalıştığını iyi anlayın).

Objective Sharpie'yi yükleme

Objective Sharpie şu anda Mac OS X 10.10 ve daha yeni sürümler için tek başına bir komut satırı aracıdır ve tam olarak desteklenen bir Xamarin ürünü değildir. Yalnızca üçüncü taraf Objective-C kitaplığına bağlama projesi oluşturmaya yardımcı olmak için gelişmiş geliştiriciler tarafından kullanılmalıdır.

Objective Sharpie, standart bir OS X paket yükleyicisi olarak indirilebilir. Yükleyiciyi çalıştırın ve yükleme sihirbazındaki tüm ekran istemlerini izleyin:

İpucu

Komutunu kullanarak sharpie update en son sürüme güncelleştirin.

Temel İzlenecek Yol

Objective Sharpie, Xamarin tarafından sağlanan ve 3. taraf Objective-C kitaplığını C# öğesine bağlamak için gereken tanımların oluşturulmasına yardımcı olan bir komut satırı aracıdır. Objective Sharpie kullanırken bile, objective Sharpie tamamlandıktan sonra geliştiricinin araç tarafından otomatik olarak işlenemeyen sorunları gidermek için oluşturulan dosyaları değiştirmesi gerekir.

Mümkün olduğunda Objective Sharpie, nasıl düzgün bir şekilde bağlanacağı konusunda şüphesi olan API'lere açıklama ekler (yerel koddaki birçok yapı belirsizdir). Bu ek açıklamalar öznitelik olarak [Verify] görünür.

Objective Sharpie'nin çıkışı, Xamarin uygulamalarında kullanabileceğiniz bir kitaplıkta derlenen bir bağlama projesi oluşturmak için kullanılabilen bir çift dosyadır StructsAndEnums.csApiDefinition.cs .

Önemli

Objective Sharpie, doğru kullanım için önemli bir kuralla birlikte gelir: Düzgün ayrıştırma sağlamak için kesinlikle doğru clang derleyicisi komut satırı bağımsız değişkenlerini geçirmeniz gerekir. Bunun nedeni Objective Sharpie ayrıştırma aşamasının yalnızca clang libtooling API'sine karşı uygulanan bir araç olmasıdır.

Bu, Objective Sharpie'nin Clang'in (bağlayacağınız yerel kitaplığı gerçekten derleyen C//Objective-CC++ derleyicisi) ve bağlama için üst bilgi dosyalarıyla ilgili tüm iç bilgisine sahip olduğu anlamına gelir. Objective Sharpie, ayrıştırılan AST'yi nesne koduna çevirmek yerine AST'yi ve btouch Xamarin bağlama araçlarına bmac giriş için uygun bir C# bağlama "iskelesine" çevirir.

Objective Sharpie ayrıştırma sırasında hata verirse bu, clang'nin AST'yi oluşturmaya çalışırken ayrıştırma aşamasında hata verdiği anlamına gelir ve bunun nedenini öğrenmeniz gerekir.

YENI! sürüm 3.0, Xcode projelerini doğrudan destekleyerek bu karmaşıklığın bir bölümünü ele alır. Yerel bir kitaplığın geçerli bir Xcode projesi varsa Objective Sharpie, gerekli giriş üst bilgisi dosyalarını ve derleyici bayraklarını almak için projeyi belirtilen hedef ve yapılandırma için değerlendirebilir.

Kullanılabilir Xcode projesi yoksa, doğru giriş üst bilgisi dosyalarını, üst bilgi dosyası arama yollarını ve diğer gerekli derleyici bayraklarını çıkararak projeyi daha iyi tanımanız gerekir. Yerel kitaplığı derlemek için kullanılan derleyici bayraklarının Objective Sharpie'ye geçirilmesi gerekenle aynı olduğunu fark etmek önemlidir. Bu daha el ile gerçekleştirilen bir işlemdir ve Clang araç zinciriyle komut satırında yerel kod derleme konusunda biraz bilgi sahibi olmayı gerektirir.