MAUI ve Xamarin ile Çalışmaya Başlama
Önemli
Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.
Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.
App Center SDK'sı modüler bir mimari kullanarak hizmetlerin herhangi birini veya tümünü kullanabilirsiniz.
App Center Analytics ve App Center Kilitlenmelerini kullanmak için uygulamanızda App Center .NET SDK'sını ayarlamaya başlayalım. Uygulamanıza App Center Distribute eklemek için App Center Distribute belgelerine göz atın.
1. Önkoşullar
Başlamadan önce aşağıdaki önkoşulların karşılandığından emin olun:
- Projeniz Visual Studio veya Mac için Visual Studio'da ayarlanır.
- iOS 11.0 veya üzeri ya da Android 5.0 (API düzeyi 21) veya üzerini çalıştıran cihazları hedefliyorsunuz.
- Kilitlenme Raporlama işlevselliği sağlayan başka bir SDK kullanmıyorsunuz.
Desteklenen platformlar:
- MAUI iOS
- MAUI Android
- MAUI Windows
- .NET 6.0 macOS
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Mac
- Xamarin.Forms (iOS, macOS Android, UWP ve Windows Masaüstü uygulamaları)
1.1 MAUI
Not
Şu anda App Center portalında MAUI platformu yoktur. Lütfen iOS ve Android için Xamarin ve Windows için UWP kullanın.
1.2 Xamarin.Android Hakkında
App Center portalında android işletim sistemi ve Xamarinplatform olarak bir uygulama oluşturun.
1.3 Xamarin.iOS Hakkında
App Center portalında işletim sistemi olarak iOS ve platform olarak Xamarin ile bir uygulama oluşturun.
1.4 Xamarin.Mac Hakkında
App Center portalında işletim sistemi olarak macOS ve platform olarak Xamarin içeren bir uygulama oluşturun.
Uyarı
Bir uygulamanın App Store yüklenmesini engelleyen bilinen bir sorun vardır. Github'da ilerleme durumunu izleyin.
1.5 Xamarin.Forms Hakkında (iOS, macOS, Android, UWP ve Windows Masaüstü)
App Center'da her işletim sistemi için bir tane olacak şekilde 5 uygulama oluşturun.
Android, iOS ve macOS uygulamalarının platformu olarak Xamarin'i seçmeniz gerekir (UWP ve Masaüstü uygulamalarının Xamarin seçeneği yoktur).
Windows Masaüstü ve macOS uygulamaları için projenizi Xamarin.Forms platformuyla uyumluluk için yapılandırmanız gerekir.
2. Uygulama Gizli Dizisini almak için uygulamanızı App Center Portalı'nda oluşturun
Uygulamanızı App Center portalında zaten oluşturduysanız bu adımı atlayabilirsiniz.
- appcenter.ms'a gidin.
- Kaydolun veya oturum açın ve portalın sağ üst köşesindeki Yeni ekle yazan mavi düğmeye basın ve açılan menüden Yeni uygulama ekle'yi seçin.
- Uygulamanız için bir ad ve isteğe bağlı bir açıklama girin.
- Yukarıda açıklandığı gibi projenize bağlı olarak uygun işletim sistemini ve platformu seçin.
- Sağ alttaki Yeni uygulama ekle yazan düğmeye basın.
Bir uygulama oluşturduktan sonra Uygulama Gizli Dizisi'ni App Center Portalı'nın Ayarlar sayfasından edinebilirsiniz. Ayarlar sayfasının sağ üst köşesindeki üç dikey noktaya tıklayın ve Uygulama Gizli Dizinizi almak için öğesini seçinCopy app secret
.
3. App Center SDK'sını çözümünüze ekleme
App Center SDK'sı Visual Studio veya Paket Yöneticisi Konsolu kullanılarak tümleştirilebilir.
Not
App Center SDK'sı, tanımlayıcı adlı işareti kullanan uygulamalarla uyumluluk için tanımlayıcı adlandırılmış derlemeler kullanır.
Mac için Visual Studio
- Visual Studio'yu açın.
- Dosya>Aç'a tıklayın ve çözümünüzü seçin.
- Çözüm gezgininde Paketler bölümüne sağ tıklayın ve NuGet paketleri ekle...'yi seçin.
- App Center'ı arayın ve App Center Analytics ve App Center Kilitlenmeleri'ne tıklayın.
- Paket Ekle'ye tıklayın.
Windows için Visual Studio
- Visual Studio'yu açın.
- Dosya>Aç'a tıklayın ve çözümünüzü seçin.
- Çözüm gezgininde Başvurular'a sağ tıklayın ve NuGet Paketlerini Yönet'i seçin.
- App Center'ı arayın ve Microsoft.AppCenter.Analytics ve Microsoft.AppCenter.Crashes paketlerini yükleyin.
Paket Yöneticisi Konsolu
- Visual Studio'da konsolunu açın. Bunu yapmak için Araçlar>NuGet Paket Yöneticisi Paket Yöneticisi>Konsolu'nu seçin.
- Mac için Visual Studio üzerinde çalışıyorsanız NuGet Paket Yönetimi Uzantıları'nı yüklediğinizden emin olun. Bunun için Visual Studio>Uzantıları'nı seçin, NuGet araması yapın ve gerekirse yükleyin.
- Konsola aşağıdaki komutu yazın:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
SDK'yı uygulamanıza tümleştirdiğinize göre artık SDK'yı başlatmanın ve App Center hizmetlerinden yararlanmanın zamanı geldi.
Not
App Center SDK'sını taşınabilir bir projede ( Xamarin.Forms gibi) kullanıyorsanız paketleri projelerin her birine yüklemeniz gerekir: taşınabilir, Android ve iOS olanlar. Bunu yapmak için her alt projeyi açmanız ve Mac için Visual Studio veya Windows için Visual Studio bölümlerinde açıklanan ilgili adımları izlemeniz gerekir.
4. SDK'yi başlatın
App Center'ı kullanmak için kullanmak istediğiniz modülleri kabul etmeniz gerekir. Varsayılan olarak, hiçbir modül başlatılmaz ve SDK'yı başlatırken bunların her birini açıkça çağırmanız gerekir.
4.1 using deyimlerini ekleme
Aşağıdaki dosyalara uygun ad alanlarını ekleyin:
- MAUI ve Xamarin.Forms -
App.xaml.cs
- Xamarin.iOS ve Xamarin.Mac -
AppDelegate.cs
- Xamarin.Android -
MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
4.2 Yöntemini ekleme Start()
4.2.1 MAUI ve Xamarin.Forms
App Center portalında her platform için farklı uygulamalar oluşturmanız gerekir. Her uygulama için farklı bir uygulama gizli dizisine sahip olursunuz. Projenin App.xaml.cs dosyasını açın ve oluşturucuya (veya Xamarin.Forms yöntemine OnStart()
) aşağıdaki satırı ekleyin.
AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics), typeof(Crashes));
App Center hizmetlerini ayrı olarak başlatmanız gerekiyorsa şunları yapmalısınız:
- Uygulama Gizli Dizisi ile yapılandırın veya başlatın.
- Kod birden çok kez çağrılabiliyorsa App Center'ın zaten yapılandırılmış olup olmadığını denetleyin.
- Uygulama Gizli Anahtarı olmadan gerekli hizmetleri başlatın.
AppCenter.Configure("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}");
if (AppCenter.Configured)
{
AppCenter.Start(typeof(Analytics));
AppCenter.Start(typeof(Crashes));
}
4.2.2 Xamarin.Android
Not
Android için HockeyApp SDK'sını kullanıyorsanız App Center SDK'sı sonrasında HockeyApp SDK'sını başlatmayı unutmayın.
Projenin MainActivity.cs dosyasını açın ve çağrıyı Start()
yönteminin OnCreate()
içine ekleyin
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Not
Uygulamanızın arka plan hizmetleri veya yayın alıcısı, dışarı aktarılan etkinlikler veya içerik sağlayıcıları gibi birden çok giriş noktası varsa, bunun yerine geri aramayla Application.OnCreate
başlamanız AppCenter
önerilir.
4.2.3 Xamarin.iOS ve Xamarin.Mac
Not
Uygulamanızda birden fazla etkin kilitlenme raporlama SDK'sı olması mümkün değildir. App Center'ın kilitlenmeleri yakalamasını sağlamak için diğer SDK'ların kilitlenme raporlama işlevini devre dışı bırakın.
Projenin AppDelegate.cs
dosyasını açın ve yönteminin Start()
içine çağrıyı FinishedLaunching()
ekleyin
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Not
Kilitlenmeler kullanıyorsanız, ui/main iş parçacığında bu yöntemi çağırmanız ve yöntem dönene kadar Start
arka plan görevlerini başlatmaktan kaçınmanız gerekir.
Bunun nedeni, Kilitlenmeler başlatılırken başka bir iş parçacığından yakalanan herhangi bir null başvuru özel durumunun yerel bir kilitlenmeyi tetikleyebileceği ve catch yan tümcesini yoksayabileceğidir.
Yöntem döndürdüğünde AppCenter.Start
null başvuru özel durumlarını yeniden denemek/yakalamak güvenlidir.
Sinyaller ve üçüncü taraf kilitlenme muhabirleri makalesinde bu zamanlama sorununun nedeni hakkında daha fazla bilgi edinebilirsiniz.
Uyarı
Uygulama Gizli Dizinizi kaynak koduna eklemek önerilmez.
Önemli
Küme ayraçları gerçek uygulama gizli dizilerinin nereye yerleştirileceği gösterilir; çağrıya küme ayracı koymayın Start
.
Not
Bir iOS uygulaması için, uygulamanızda birden fazla etkin kilitlenme raporlama SDK'sı olması mümkün değildir. App Center'ın kilitlenmeleri yakalamasını sağlamak için diğer SDK'ların kilitlenme raporlama işlevini devre dışı bırakın.
4.3 Yer tutucuyu Uygulama Gizli Dizinizle değiştirin
Metni uygulamanızın gerçek değeriyle değiştirdiğinden {Your App Secret}
emin olun. Uygulama Gizli Dizisi, App Center portalındaki Başlarken sayfasında veya Ayarlar sayfasında bulunabilir.
Başlarken sayfası, uygulama gizli dizinizin bulunduğu yukarıdaki kod örneğini içerir; örneğin tamamını kopyalayıp yapıştırabilirsiniz.
Yukarıdaki örnekte yönteminin Start()
nasıl kullanılacağı ve hem App Center Analytics hem de App Center Kilitlenmeleri'nin nasıl dahil olduğu gösterilmektedir.
İki hizmetten birini kullanmak istemiyorsanız yukarıdaki yöntem çağrısından ilgili parametreyi kaldırın.
Başlangıç yönteminde her modülü parametre olarak açıkça belirtmediğiniz sürece, bu App Center hizmetini kullanamazsınız. Buna ek olarak, API uygulamanızın Start()
yaşam döngüsünde yalnızca bir kez kullanılabilir; diğer tüm çağrılar konsola bir uyarı kaydeder ve yalnızca ilk çağrıya dahil edilen modüller kullanılabilir.
Örneğin - App Center Analytics'e eklemek istiyorsanız, aramayı aşağıdaki gibi değiştirmeniz Start()
gerekir:
4.3.1 MAUI ve Xamarin.Forms
AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics));
4.3.2 Xamarin Native
AppCenter.Start("{Your App Secret}", typeof(Analytics));
Harika, SDK'nın otomatik olarak topladığı portalda Analytics ve Crashes verilerini görselleştirmeye hazırsınız.
Her iki hizmetin de daha gelişmiş işlevlerini özelleştirmeyi ve kullanmayı öğrenmek için App Center Analytics ve App Center Kilitlenmeleri belgelerine bakın.
Uygulama içi güncelleştirmeleri kullanmaya başlamayı öğrenmek için App Center Distribute belgelerini okuyun.
Not
Xamarin Forms'daki taşınabilir API'leri kullanarak tüm modüllerdeki API'leri görürsünüz, ancak tüm bu API'ler UWP ve Windows Masaüstü platformlarında desteklenmez ve UWP ve Windows Masaüstü uygulamalarınızda çalışırken hiçbir şey yapmıyorlar. Özellikle UWP ve Windows Masaüstü şu modülü desteklemez: Dağıt. Dönüş türüne sahip herhangi bir yöntem UWP ve Windows Masaüstü uygulamasında (nesneler için), 0
(sayılar için) veya false
(booleanlar için) döndürür null
.
5. Yedekleme kuralları (yalnızca Android)
Not
Android 6.0 (API düzeyi 23) veya üzerini hedefleyen uygulamalarda Otomatik Yedekleme otomatik olarak etkinleştirilir.
Not
Yedekleme kuralları içeren özel bir dosyanız zaten varsa üçüncü adıma geçin.
Cihazlar hakkında yanlış bilgi almaktan kaçınmak için otomatik yedekleme kullanıyorsanız, sonraki adımları izleyin:
5.1. Android 11 (API düzeyi 30) veya daha düşük sürümler için.
- Resources/xml klasöründe appcenter_backup_rule.xml dosyası oluşturun.
- Projenin AndroidManifest.xml dosyasını açın. özniteliğini
android:fullBackupContent
<application>
öğesine ekleyin. appcenter_backup_rule.xml kaynak dosyasına işaret etmelidir.
android:fullBackupContent="@xml/appcenter_backup_rule"
- appcenter_backup_rule.xml dosyasına aşağıdaki yedekleme kurallarını ekleyin:
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</full-backup-content>
5.2. Android 12 (API düzeyi 31) veya üzeri için.
- Resources/xml klasöründe appcenter_backup_rule.xml dosyası oluşturun.
- Projenin AndroidManifest.xml dosyasını açın. özniteliğini
android:dataExtractionRules
<application>
öğesine ekleyin. appcenter_backup_rule.xml kaynak dosyasına işaret etmelidir.
android:dataExtractionRules="@xml/appcenter_backup_rule"
- appcenter_backup_rule.xml dosyasına aşağıdaki yedekleme kurallarını ekleyin:
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
<cloud-backup>
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</cloud-backup>
<device-transfer>
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</device-transfer>
</data-extraction-rules>