Bu kılavuzda, uygulama içi reklamların güncellemelerine bakın. Her biri 100'den az gösterim alan uygulamanızda Kotlin programlamasının kullanıldığı durumlar için ayrı kılavuzlar veya Java programlama dili ve dilbilginizin uygulamada yerel kod (C/C++).
Geliştirme ortamınızı ayarlama
Play Uygulama İçi Güncelleme Unity Eklentisinin en son sürümünü şunun için Google paketlerinden indirin: Unity'yi tıklayın.
Unity SDK'ya genel bakış
Play uygulama içi güncelleme API'si, Play Core'un bir parçasıdır.
SDK ailesi. Birlik
Eklenti,
AppUpdateManager
sınıfını kullanın. Şunu yapmalısınız:
uygulama içi güncellemeleri yönetmek için kullanmadan önce bu sınıfı örneklendirin:
AppUpdateManager appUpdateManager = new AppUpdateManager();
Güncelleme kullanılabilirliğini kontrol etme
Güncelleme isteğinde bulunmadan önce
uygulamasını indirin. Güncelleme olup olmadığını kontrol etmek için AppUpdateManager
kullanın.
eş yordam:
IEnumerator CheckForUpdate()
{
PlayAsyncOperation<AppUpdateInfo, AppUpdateErrorCode> appUpdateInfoOperation =
appUpdateManager.GetAppUpdateInfo();
// Wait until the asynchronous operation completes.
yield return appUpdateInfoOperation;
if (appUpdateInfoOperation.IsSuccessful)
{
var appUpdateInfoResult = appUpdateInfoOperation.GetResult();
// Check AppUpdateInfo's UpdateAvailability, UpdatePriority,
// IsUpdateTypeAllowed(), etc. and decide whether to ask the user
// to start an in-app update.
}
else
{
// Log appUpdateInfoOperation.Error.
}
}
Döndürülen
AppUpdateInfo
örneği, güncelleme kullanılabilirlik durumunu içerir. Halihazırda bir uygulama içi güncelleme
devam ediyorsa örnek, devam etmekte olan güncellemenin durumunu da bildirir.
Güncelleme eskiliğini kontrol etme
Bir güncelleme olup olmadığını kontrol etmenin yanı sıra, kullanıcıya bir güncellemenin bildirilmesinden bu yana ne kadar süre geçtiğini kontrol etme Play Store üzerinden satın alabilirsiniz. Bu, bir risk yönetimi planı başlatmanız gerekip gerekmediğine Esnek güncelleme veya anında güncelleme. Örneğin, proje ekibinin Kullanıcıya esnek bir güncellemeyle bildirmeden önce ve bunun ardından birkaç gün ve hemen bir güncelleme gerektirmeden çalışır.
Tekliflerinizi otomatikleştirmek ve optimize etmek için
ClientVersionStalenessDays
güncellemenin Play üzerinden kullanıma sunulmasından bu yana geçen gün sayısını kontrol etmek için
Sakla:
var stalenessDays = appUpdateInfoOperation.ClientVersionStalenessDays;
Güncelleme önceliğini kontrol edin
Google Play Developer API, her güncellemenin önceliğini belirlemenize olanak tanır. Bu, uygulamanızın kullanıcıya ne kadar önemli bir güncelleme önereceğine karar vermesine olanak tanır. Örneğin, güncelleme önceliğini ayarlamak için aşağıdaki stratejiyi göz önünde bulundurun:
- Kullanıcı arayüzünde küçük iyileştirmeler: Düşük öncelikli güncelleme; ne esnek ne de veya hemen bir güncelleme olması gerekir.
- Performans iyileştirmeleri: Orta öncelikli güncelleme; esnek bir şekilde güncelleyin.
- Kritik güvenlik güncellemesi: Yüksek öncelikli güncelleme; derhal istekte bulunma güncelleyin.
Google Play, önceliği belirlemek için 0 ile 5 arasında bir tam sayı değeri (0) kullanır
5 en yüksek önceliğe sahiptir. Bir
güncellemek için Edits.tracks.releases
altındaki inAppUpdatePriority
alanını kullanın
Google Play Geliştirici API'si. Bu sürüme eklenen tüm yeni sürümler
yayınla aynı önceliğe sahip olduğunu kabul eder. Öncelik yalnızca şu durumlarda ayarlanabilir:
ve daha sonra değiştirilemez.
Önceliği Google Play Geliştirici API'sini kullanarak Play
Geliştirici API'sı
dokümanlarına göz atın.
Uygulama içi güncelleme önceliği
Edit.tracks
kaynak
Edit.tracks: update
yöntemidir. Aşağıdaki örnekte, sürüm kodu 88 olan bir uygulamanın yayınlanması gösterilmektedir
ve inAppUpdatePriority
5:
{ "releases": [{ "versionCodes": ["88"], "inAppUpdatePriority": 5, "status": "completed" }] }
Uygulamanızın kodunda, belirli bir güncellemenin öncelik düzeyini kontrol etmek için aşağıdakileri kullanabilirsiniz:
UpdatePriority
:
var priority = appUpdateInfoOperation.UpdatePriority;
Güncelleme başlatın
Bir güncelleme olduğundan emin olduktan sonra şunu kullanarak güncelleme isteğinde bulunabilirsiniz:
AppUpdateManager.StartUpdate()
.
Güncelleme isteğinde bulunmadan önce bilgilerinizin güncel olduğundan emin olun.
AppUpdateInfo
nesne algılandı. Ayrıca bir
AppUpdateOptions
nesnesini tanımlayın.
Aşağıdaki örnekte, hemen kullanmak için bir AppUpdateOptions
nesnesi
güncelleme akışı:
// Creates an AppUpdateOptions defining an immediate in-app
// update flow and its parameters.
var appUpdateOptions = AppUpdateOptions.ImmediateAppUpdateOptions();
Aşağıdaki örnekte bir esnek değer için AppUpdateOptions
nesnesi oluşturulur
güncelleme akışı:
// Creates an AppUpdateOptions defining a flexible in-app
// update flow and its parameters.
var appUpdateOptions = AppUpdateOptions.FlexibleAppUpdateOptions();
AppUpdateOptions
nesnesi ayrıca bir AllowAssetPackDeletion
alanı içeriyor
güncellemenin öğe silmesine izin verilip verilmediğini tanımlayan
paketlerini kullanıma sunmaya dikkat edin. Bu
alanı varsayılan olarak false
değerine ayarlanır, ancak
allowAssetPackDeletion
ImmediateAppUpdateOptions()
için isteğe bağlı bağımsız değişken veya
Bunun yerine FlexibleAppUpdateOptions()
tarafından true
olarak ayarlanmalıdır:
// Creates an AppUpdateOptions for an immediate flow that allows
// asset pack deletion.
var appUpdateOptions =
AppUpdateOptions.ImmediateAppUpdateOptions(allowAssetPackDeletion: true);
// Creates an AppUpdateOptions for a flexible flow that allows asset
// pack deletion.
var appUpdateOptions =
AppUpdateOptions.FlexibleAppUpdateOptions(allowAssetPackDeletion: true);
Sonraki adımlar, esnek teklif isteğinde bulunup bulunmadığınıza bir güncelleme veya anında güncelleme yapılması gerekir.
Esnek güncellemeleri yönetme
Güncel bir AppUpdateInfo
nesneniz ve uygun şekilde yapılandırılmış bir öğeniz olduğunda
AppUpdateOptions
nesnesini çağırarak AppUpdateManager.StartUpdate()
öğesini çağırabilirsiniz.
eşzamansız olarak güncelleme akışı isteyebilir.
IEnumerator StartFlexibleUpdate()
{
// Creates an AppUpdateRequest that can be used to monitor the
// requested in-app update flow.
var startUpdateRequest = appUpdateManager.StartUpdate(
// The result returned by PlayAsyncOperation.GetResult().
appUpdateInfoResult,
// The AppUpdateOptions created defining the requested in-app update
// and its parameters.
appUpdateOptions);
while (!startUpdateRequest.IsDone)
{
// For flexible flow,the user can continue to use the app while
// the update downloads in the background. You can implement a
// progress bar showing the download status during this time.
yield return null;
}
}
Esnek güncelleme akışı için uygulama güncellemesinin yüklenmesini tetiklemeniz gerekir
indirme işlemini tekrarlar. Bunun için şu numarayı arayın:
AppUpdateManager.CompleteUpdate()
aşağıdaki örnekte gösterildiği gibi:
IEnumerator CompleteFlexibleUpdate()
{
var result = appUpdateManager.CompleteUpdate();
yield return result;
// If the update completes successfully, then the app restarts and this line
// is never reached. If this line is reached, then handle the failure (e.g. by
// logging result.Error or by displaying a message to the user).
}
Anlık güncelleme yapma
Güncel bir AppUpdateInfo
nesneniz ve uygun şekilde yapılandırılmış bir öğeniz olduğunda
AppUpdateOptions
nesnesini çağırarak AppUpdateManager.StartUpdate()
öğesini çağırabilirsiniz.
eşzamansız olarak güncelleme akışı isteyebilir.
IEnumerator StartImmediateUpdate()
{
// Creates an AppUpdateRequest that can be used to monitor the
// requested in-app update flow.
var startUpdateRequest = appUpdateManager.StartUpdate(
// The result returned by PlayAsyncOperation.GetResult().
appUpdateInfoResult,
// The AppUpdateOptions created defining the requested in-app update
// and its parameters.
appUpdateOptions);
yield return startUpdateRequest;
// If the update completes successfully, then the app restarts and this line
// is never reached. If this line is reached, then handle the failure (for
// example, by logging result.Error or by displaying a message to the user).
}
Google Play, anında güncelleme akışı için kullanıcı onay iletişim kutusu gösterir. Kullanıcı isteği kabul ettiğinde Google Play otomatik olarak indirme işlemini ve güncellemeyi yükler, ardından emin olun.
Hata işleme
Bu bölümde, sık karşılaşılan hataların çözümleri açıklanmaktadır.
StartUpdate()
,ArgumentNullException
atarsa şu anlama gelir:AppUpdateInfo
, null.AppUpdateInfo
nesnesinin şuradan döndürüldüğünden emin olun: Güncelleme akışı başlatılmadan önceGetAppUpdateInfo()
boş değerli değildir.PlayAsyncOperation
,ErrorUpdateUnavailable
hata kodunu döndürürse aynı uygulamaya sahip güncellenmiş bir uygulama sürümü bulunduğundan emin olun. Kimlik ve imzalama anahtarı.PlayAsyncOperation
,ErrorUpdateNotAllowed
hata kodunu döndürürseAppUpdateOptions
nesnesinin kullanılabilir güncelleme için izin veriliyor.AppUpdateInfo
nesnesinin olup olmadığını kontrol edin seçilen güncelleme türüne güncelleme başlamadan önce izin verildiğini gösterir akışı sağlar.
Sonraki adımlar
Doğrulamak için uygulamanızın uygulama içi güncellemelerini test edin doğru çalıştığından emin olun.