Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Visual Studio App Center, 30 Haziran 2026'ya kadar desteklenmeye devam edecek Analiz ve Tanılama özellikleri dışında 31 Mart 2025'te kullanımdan kaldırılmıştır. Daha fazla bilgi edinin.
App Center Dağıtımı, app Center aracılığıyla dağıttıktan sonra kullanıcılarınızın/test edicilerinizin uygulamanın yeni sürümlerini yüklemesini sağlar. Etkinleştirildikten sonra SDK, kullanıcılara en son güncelleştirmenin yüklenmesini indirmeleri veya ertelemeleri için bir güncelleştirme iletişim kutusu sunar. Güncelleştirmeyi seçtikten sonra SDK uygulamanızı güncelleştirmeye başlar.
Önemli
Unity için Dağıtım SDK'sı UWP'yi desteklemez. Bu sayfadaki yönergeler yalnızca Android ve iOS'ı kapsar.
Uyarı
Google Play, uygulama içi güncelleştirme kodunu çalışma zamanında kullanılmasa bile kötü amaçlı davranış olarak kabul eder. Uygulamanızı Google Play'e göndermeden önce bu bölümde belirtildiği gibi bu kodu kaldırın. Uygulama içi güncelleştirme kodunun kaldırılmaması, uygulamanın Google Play'den uyumsuzluğuna ve kaldırılmasına neden olabilir.
Uyarı
Otomatik kullanıcı arabirimi testleri çalıştırıyorsanız, uygulama içi güncelleştirmeler App Center arka uçta kimlik doğrulaması yapmaya çalışacakları için otomatik kullanıcı arabirimi testlerinizi engeller. Kullanıcı arabirimi testleriniz için uygulama içi güncelleştirmeleri devre dışı bırakmanızı öneririz.
Uygulamanıza uygulama içi güncelleştirmeler ekleme
App Center Distribute modülünü ekleme
App Center SDK modüler bir yaklaşımla tasarlanmıştır; bir geliştiricinin yalnızca ilgilendiği hizmetlerin modüllerini tümleştirmesi gerekir.
Henüz uygulamanızda SDK'yı ayarlamadıysanız ve başlatmadıysanız Unity kullanmaya başlama belgelerini izleyin. App Center Distribute paketini içeri aktardığından emin olun. Adı şu şekilde AppCenterDistribute-v{version}.unitypackage olmalıdır.
Uyarı
Android 10 veya üzeri sürümlerde arka planda başlatma etkinliği kısıtlamaları vardır. Etkinlikleri arka planda başlatmayla ilgili kısıtlamalarla ilgili makaleye bakın.
Uyarı
Android 10 (Go sürümü) üzerinde çalışan uygulamalar SYSTEM_ALERT_WINDOW izni alamaz. Go cihazlarında SYSTEM_ALERT_WINDOW hakkındaki makaleye bakın.
Uyarı
Android 11'dan başlayarak, ACTION_MANAGE_OVERLAY_PERMISSION amaçlar kullanıcıyı her zaman üst düzey Ayarlar ekranına getirir ve burada kullanıcı uygulamalar için izinleri verebilir veya iptal SYSTEM_ALERT_WINDOW edebilir.
Android 11'de izin güncelleştirmeleri hakkındaki makaleye bakın.
Google Play derlemeleri için uygulama içi güncelleştirmeleri kaldırma
Google Play, uygulama içi güncelleştirme kodunu çalışma zamanında kullanılmasa bile kötü amaçlı davranış olarak kabul eder. Uygulamanızı Google Play'e göndermeden önce bu kodu kaldırın. Uygulama içi güncelleştirme kodunun kaldırılmaması, uygulamanın Google Play'den uyumsuzluğuna ve kaldırılmasına neden olabilir. Uygulama içi güncelleştirme yerel kodunu kaldırmak için, AppCenterBehavior ekli oyun nesnesinin Dağıt bölümünün altındaki Dağıt'ı Kullan onay kutusunun işaretini kaldırın.
Özel dağıtım grubunu kullanma
Varsayılan olarak, Distribute bir genel dağıtım grubu kullanır. Özel dağıtım grubu kullanmak istiyorsanız Özel olarak değiştirmeniz UpdateTrack gerekir.
Bunu yapmak için AppCenterBehavior'ın ekli olduğu oyun nesnesinin Dağıt bölümündeki Güncelleştirme İzleme açılan listesinde Özel'i seçin.
Gizli sekme kullanılırken, kullanıcının kimliğini doğrulamak için bir tarayıcı penceresi açılır. Sonraki tüm güncelleştirme denetimleri özel parçada en son sürümü alır.
Bir kullanıcı özel yoldaysa, başarılı kimlik doğrulamasından sonra üyesi olduğu tüm özel dağıtım gruplarından en son sürümü alacakları anlamına gelir. Bir kullanıcı genel yoldaysa, herhangi bir genel dağıtım grubundan en son sürümü edinecektir.
Güncelleştirme için Otomatik Denetimi Devre Dışı Bırak
Varsayılan olarak, SDK yeni sürümleri otomatik olarak denetler:
- Uygulama başlatıldığında.
- Uygulama arka plana geçtiğinde tekrar ön planda olur.
- Daha önce devre dışı bırakılmışsa Distribute modülünü etkinleştirirken.
Yeni sürümleri el ile denetlemek istiyorsanız, güncelleştirme için otomatik denetimi devre dışı bırakabilirsiniz.
Bunu yapmak için, AppCenterBehavior'ın ekli olduğu oyun nesnesinin Dağıt bölümündeki Güncelleştirme için Otomatik Denetle onay kutusunun işaretini kaldırın.
Ardından, aşağıdaki bölümde açıklanan API'yi kullanabilirsiniz CheckForUpdate .
Güncelleştirmeyi El ile Denetle
Distribute.CheckForUpdate();
Bu, App Center'a bir istek gönderir ve kullanılabilir yeni bir sürüm olması durumunda bir güncelleştirme iletişim kutusu görüntüler.
Uyarı
Otomatik güncelleştirmeler etkinleştirildiğinde bile güncelleştirme araması için el ile yapılan bir denetim çalışır. Başka bir denetim zaten yapılıyorsa elle yapılan güncelleme denetimi yoksayılır. Kullanıcı güncelleştirmeleri ertelediyse (en son sürüm zorunlu bir güncelleştirme olmadığı sürece) güncelleştirmeyi el ile denetleme işlemi yapılmaz.
Uygulama içi güncelleştirme iletişim kutusunu özelleştirme veya yerelleştirme
1. Metni özelleştirme veya yerelleştirme
Güncelleştirme iletişim kutusunda görüntülenen metni yerelleştirmek istiyorsanız kendi kaynak dizelerinizi sağlayabilirsiniz. Bu iOS kaynak dosyasında iOS için dize dosyalarına bakın ve bu Android kaynak dosyasında Android için dize dosyalarına bakın. Aynı dize adını/anahtarını kullanın ve kendi uygulama kaynak dosyalarınızdaki iletişim kutusuna yansıtılacak yerelleştirilmiş değeri belirtin.
2. Güncelleştirme iletişim kutusunu özelleştirme
Geri çağırmayı uygulayarak ReleaseAvailable varsayılan güncelleştirme iletişim kutusunun görünümünü özelleştirebilirsiniz.
Uyarı
İlk sahnede herhangi bir yayın geri çağırma çağrısının kaçırılmasını önlemek için uygulamanızın yüklediği Awake'nin MonoBehaviour yönteminde geri çağırmayı kaydetmeniz gerekir.
// In this example, OnReleaseAvailable is a method name in same class
Distribute.ReleaseAvailable = OnReleaseAvailable;
SDK iletişim kutusunu özel mantıkla değiştiren bir geri çağırma uygulaması aşağıda verilmiştir:
bool OnReleaseAvailable(ReleaseDetails releaseDetails)
{
// Look at releaseDetails public properties to get version information, release notes text or release notes URL
string versionName = releaseDetails.ShortVersion;
string versionCodeOrBuildNumber = releaseDetails.Version;
string releaseNotes = releaseDetails.ReleaseNotes;
Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl;
// (Do something with the values if you want)
// On mandatory update, user can't postpone
if (releaseDetails.MandatoryUpdate)
{
// Force user to update (you should probably show some custom UI here)
Distribute.NotifyUpdateAction(UpdateAction.Update);
}
else
{
// Allow user to update or postpone (you should probably show some custom UI here)
// "GetUserUpdateAction()" isn't part of the SDK; it just represents a way of getting user response.
// This blocks the thread while awaiting the user's response! This example shouldn't be used literally
UpdateAction updateAction = GetUserUpdateAction();
Distribute.NotifyUpdateAction(updateAction);
}
// Return true if you're using your own UI to get user response, false otherwise
return true;
}
Android için uygulama notları:
Örnekte gösterildiği gibi, geri aramanız Distribute.NotifyUpdateAction(UpdateAction.UPDATE); döndürüyorsa, ya Distribute.NotifyUpdateAction(UpdateAction.POSTPONE); ya da true çağırmalısınız.
Eğer NotifyUpdateAction öğesini çağırmazsanız, geri arama her etkinlik değişikliğinde yinelenir.
Kullanıcı eylemi SDK'ya bildirilmeden önce etkinlik değişirse, geri çağırma aynı sürümle yeniden çağrılabilir.
Bu davranış aşağıdaki senaryoları kapsayacak şekilde gereklidir:
- Uygulamanız arka plana gönderilir ( HOME tuşuna basma gibi) sonra farklı bir etkinlikte sürdürülür.
- Etkinliğiniz, uygulamadan çıkmadan (bazı bildirimlere tıklamak gibi) başka bir etkinlik kapsamındadır.
- Yukarıdakine benzer senaryolar.
Bu durumda, iletişim kutusunu barındıran etkinlik kullanıcı etkileşimi olmadan değiştirilebilir. Özel iletişim kutusunu geri yükleyebilmeniz için SDK dinleyiciyi yeniden çağırır.
3. Güncelleştirme bulunamazsa kodu yürüt
SDK güncellemeleri kontrol ettiğinde ve hâlihazırda kullanılan sürümden daha yeni bir güncelleme bulamadığında, bir NoReleaseAvailable geri çağırma fonksiyonu çalıştırılır. Bu, bu tür senaryolarda özel kod yürütmenize olanak tanır.
Aşağıdaki örnekte gösterildiği gibi çağırmadan AppCenter.Start önce geri çağırmayı kaydetmeniz gerekir:
// In this example OnNoReleaseAvailable is a method name in same class
Distribute.NoReleaseAvailable = OnNoReleaseAvailable;
AppCenter.Start(...);
void OnNoReleaseAvailable()
{
AppCenterLog.Info(LogTag, "No release available callback invoked.");
}
## Enable or disable App Center Distribute at runtime
You can enable and disable App Center Distribute at runtime. If you disable it, the SDK won't provide any in-app update functionality but you can still use the Distribute service in the App Center portal.
To disable the Distribute service, use the following code:
```csharp
Distribute.SetEnabledAsync(false);
App Center Distribute'ı yeniden etkinleştirmek için aynı API'yi kullanın ancak parametre olarak geçirin true .
Distribute.SetEnabledAsync(true);
Bu API zaman uyumsuzdur, hakkında daha fazla bilgiyi App Center Zaman Uyumsuz API'ler kılavuzumuzdan okuyabilirsiniz.
Diğer API çağrılarını (örneğin IsEnabledAsync) tutarlı hale getirmek için bu çağrıyı beklemeniz gerekmez.
Durum, uygulama başlatmaları arasında cihazın depolama alanında kalıcı olur.
App Center Distribute'ın etkinleştirilip etkinleştirilmediğini denetleyin
App Center Distribute'ın etkinleştirilip etkinleştirilmediğini de de kontrol edebilirsiniz:
Distribute.IsEnabledAsync();
Bu API zaman uyumsuzdur, hakkında daha fazla bilgiyi App Center Zaman Uyumsuz API'ler kılavuzumuzdan okuyabilirsiniz.
Hata ayıklama derlemeleri için uygulama içi güncelleştirmeleri etkinleştirme
Varsayılan olarak, uygulama içi güncelleştirmeler yalnızca sürüm derlemeleri için etkinleştirilir.
Android ve iOS'ta hata ayıklama derlemelerinde uygulama içi güncelleştirmeleri etkinleştirmek için AppCenterBehavior'ın ekli olduğu oyun nesnesinin Dağıt bölümündeki Hata Ayıklamada Dağıt'ı Etkinleştir onay kutusunu işaretleyin.
Unity'de hata ayıklama yapılabilen bir derleme, "Geliştirme Derlemesi" seçeneğinin işaretlendiği bir derlemedir.
Uygulama güncelleştirme için kapanmadan hemen önce temizleme işlemi gerçekleştirin
Uyarı
Bu geri çağırma yalnızca iOS'ta çalışır.
Aşağıdaki örnekte gösterildiği gibi geri arama kaydını yapın.
// In this example, OnWillExitApp is a method name in same class
Distribute.WillExitApp = OnWillExitApp;
void OnWillExitApp()
{
// Perform clean up here
}
Bununla birlikte, OnWillExitApp() Distribute kapanmak üzereyken çağrılacak.
Uygulama içi güncelleştirmeler nasıl çalışır?
Uyarı
Uygulama içi güncelleştirmelerin çalışması için bağlantıdan bir uygulama derlemesi indirilmelidir. IDE'den veya el ile yüklenirse çalışmaz.
Uygulama içi güncelleştirmeler özelliği aşağıdaki gibi çalışır:
- Bu özellik yalnızca App Center Distribute hizmeti kullanılarak dağıtılan RELEASE derlemeleriyle (varsayılan olarak) çalışır. iOS Destekli Erişim özelliği açıksa çalışmaz.
- SDK'yı tümleştirdikten sonra uygulamanızın bir yayın sürümünü derleyin ve App Center'a yükleyin. Dağıtım grubundaki kullanıcılara yeni sürüm hakkında e-posta yoluyla bildirim gönderilir.
- Her kullanıcı e-postasında bağlantıyı açtığında, uygulama kendi cihazına yüklenir. Yüklemek için e-posta bağlantısını kullanmaları önemlidir. Dışarıdan yüklemeyi desteklemiyoruz. Bir uygulama bağlantıdan indirildiğinde SDK, güncelleştirmeleri daha sonra denetlemek için tanımlama bilgilerinden önemli bilgileri kaydeder, aksi takdirde SDK'da bu anahtar bilgileri bulunmaz.
- Uygulama izlemeyi özel olarak ayarlarsa, kullanıcının kimliğini doğrulamak ve uygulama içi güncelleştirmeleri etkinleştirmek için bir tarayıcı açılır. Kimlik doğrulama bilgileri genel parçaya geri dönüp daha sonra tekrar özel duruma geçtiğinde bile geçerli kaldığı sürece tarayıcı yeniden açılmaz. Tarayıcı kimlik doğrulaması başarılı olursa, kullanıcı otomatik olarak uygulamaya yeniden yönlendirilir. Parça genelse (varsayılan değerdir), sonraki adım doğrudan gerçekleşir.
- Uygulamanın yeni bir sürümü, aşağıdaki durumlarda kullanıcıların uygulamanızı güncelleştirmesini isteyen uygulama içi güncelleştirme iletişim kutusunu gösterir:
- Ios:
-
CFBundleShortVersionStringdeğerinin daha yüksek olması -
CFBundleShortVersionStringile eşdeğer bir değere sahip, ancakCFBundleVersioniçin değeri daha yüksektir. - Sürümler aynıdır, ancak yapı benzersiz tanımlayıcısı farklıdır.
-
- Android:
-
versionCodedeğerinin daha yüksek olması -
versionCodeeşit değerde, ancakversionNamefarklı değerde.
-
- Ios:
Tavsiye
Aynı .apk/.ipa dosyasını ikinci kez yüklerseniz, ikili dosyalar aynı olduğundan iletişim kutusu GÖRÜNTÜLENMEZ. iOS'ta, aynı sürüm özelliklerine sahip yeni bir derleme yüklerseniz güncelleştirme iletişim kutusu gösterilir. Bunun nedeni, farklı bir ikili olmasıdır. Android'de her iki sürüm özelliği de aynıysa ikili dosyalar aynı kabul edilir.
Uygulama içi güncelleştirmeleri nasıl test ederim?
Uygulama içi güncelleştirmeleri test etmek ve her seferinde sürüm numaralarını artırmak için sürüm derlemelerini (App Center SDK'sının Dağıtma modülünü kullanan) App Center Portalı'na yüklemeniz gerekir.
- Henüz yapmadıysanız uygulamanızı App Center Portalı'nda oluşturun.
- Yeni bir dağıtım grubu oluşturun ve ona bir ad verin.
- Kendinizi (veya uygulama içi güncelleştirme özelliği testinize dahil etmek istediğiniz tüm kişileri) ekleyin. Bu adımda, bu uygulamayla daha önce kullanılmamış yeni veya geçici bir e-posta adresi kullanın. Bu, deneyiminizin gerçek testçilerinizin deneyimine yakın olmasını sağlar.
-
Uygulamanızın App Center Distribute içeren ve aşağıda açıklandığı gibi kurulum mantığını içeren yeni bir derleme oluşturun. Grup özelse, özelliğini kullanmaya başlamadan önce özel uygulama içi güncelleştirme izlemesini ayarlamayı
UpdateTrackunutmayın. - Portalda Yeni sürümü dağıt düğmesine tıklayın ve uygulama derlemenizi karşıya yükleyin.
- Karşıya yükleme tamamlandıktan sonra İleri'ye tıklayın ve daha önce bu uygulama dağıtımının Hedefi olarak oluşturduğunuz Dağıtım grubunu seçin.
- Dağıtım'ı gözden geçirin ve derlemeyi uygulama içi test grubunuzla dağıtın.
- Bu gruptaki kişiler, uygulamanın test edicileri olmak için bir davet alır. Daveti kabul ettikten sonra uygulamayı mobil cihazlarından App Center Portalı'ndan indirebilirler. Uygulama içi güncelleştirmeler yüklendikten sonra, uygulama içi güncelleştirmeleri test etmeye hazırsınız demektir.
- Uygulamanızın sürümünü artırın (
CFBundleShortVersionStringveyaCFBundleVersioniOS için,versionCodeAndroid için). - Uygulamanızın yayın sürümünü oluşturun ve önceki adımda yaptığınız gibi yeni bir derleme yükleyin. Daha önce oluşturduğunuz Dağıtım Grubuna dağıtın. Uygulama bir sonraki başlatıldığında Dağıtım Grubu üyelerinden yeni bir sürüm istenir.
Tavsiye
Dağıtım Grupları vb. hakkında daha ayrıntılı bilgi için App Center Distribute'ın nasıl kullanıldığına ilişkin bilgilere göz atın. App Center Distribute'ı kullanarak uygulamanızın yeni bir sürümünü kod eklemeden dağıtmak mümkün olsa da App Center Distribute'ı uygulamanızın koduna eklemek, uygulama içi güncelleştirme deneyimine sahip olan test kullanıcılarınız ve kullanıcılarınız için daha sorunsuz bir deneyim sağlar.