Uygulamaları güncelleme hakkında

Updater sınıfı (flash.desktop paketinde), geçerli olarak çalışan uygulamayı farklı bir sürüme güncellemek için kullanabileceğiniz bir yöntemi, update() öğesini içerir. Örneğin, kullanıcının masaüstünde bir AIR dosyası sürümü ("Sample_App_v2.air") bulunuyorsa, aşağıdaki kod uygulamayı günceller.

ActionScript örneği:

var updater:Updater = new Updater(); 
var airFile:File = File.desktopDirectory.resolvePath("Sample_App_v2.air"); 
var version:String = "2.01"; 
updater.update(airFile, version);

JavaScript örneği:

var updater = new air.Updater(); 
var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air"); 
var version = "2.01"; 
updater.update(airFile, version);

Bir uygulama Updater sınıfını kullanmadan önce kullanıcı veya uygulama AIR dosyasının güncellenmiş sürümünü bilgisayara indirmelidir. Daha fazla bilgi için bkz. Kullanıcının bilgisayarına bir AIR dosyası indirme .

Updater.update() yöntem çağrısının sonuçları

Çalışma zamanındaki bir uygulama update() yöntemini çağırdığında, çalışma zamanı uygulamayı kapatır ve daha sonra AIR dosyasından yeni sürümü yüklemeye çalışır. Çalışma zamanı, AIR dosyasında belirtilen uygulama kimliği ve yayıncı kimliğinin update() yöntemini çağıran uygulamaya ilişkin uygulama kimliği ve yayıncı kimliğiyle eşleşip eşleşmediğini kontrol eder. (Uygulama kimliği ve yayıncı kimliği hakkında bilgi için bkz. AIR uygulama tanımlayıcı dosyaları ). Çalışma zamanı ayrıca, sürüm dizesinin update() yöntemine iletilen version dizesiyle eşleşip eşleşmediğini kontrol eder. Yükleme başarıyla tamamlanırsa, çalışma zamanı uygulamanın yeni sürümünü açar. Aksi halde (yükleme tamamlanamazsa), uygulamanın var olan (yükleme öncesi) sürümünü yeniden açar.

Mac OS'de uygulamanın güncellenmiş bir sürümünü yüklemek için, kullanıcının uygulama dizinine yüklemek için yeterli sistem ayrıcalıklarına sahip olması gerekir. Windows ve Linux'ta, kullanıcı yönetici ayrıcalıklarına sahip olmalıdır.

Uygulamanın güncellenmiş sürümü çalışma zamanının güncellenmiş sürümünü gerektiriyorsa, yeni çalışma zamanı sürümü yüklenir. Kullanıcı, çalışma zamanını güncellemek için bilgisayara ilişkin yönetici ayrıcalıklarına sahip olmalıdır.

ADL kullanarak uygulama test edilirken update() yönteminin çağrılması bir çalışma zamanı istisnasına neden olur.

Sürüm dizesi hakkında

update() yönteminin version parametresi olarak belirtilen dize, yüklenecek AIR dosyasına ilişkin uygulama tanımlayıcı dosyasında bulunan version veya versionNumber öğesindeki dizeyle eşleşmelidir. Sürüm parametresinin belirtilmesi, güvenlik nedenleri için gereklidir. AIR dosyasında sürüm sayısını doğrulamayı gerektirdiğinden, uygulaması kasıtsız olarak daha eski bir sürüm yüklemeyecektir. (Uygulamanın eski sürümü, şu an kurulu olan uygulamada giderilmiş olan bazı güvenlik açıkları içerebilir.) Uygulama, indirgeme saldırılarını engellemek için yüklenmiş uygulamadaki sürüm dizesiyle AIR dosyasındaki sürüm dizesinin eşleşip eşleşmediğini de kontrol etmelidir.

AIR 2.5'ten önceki sürümlerde sürüm dizesi herhangi bir biçimde olabilir. Örneğin, "2.01" veya "sürüm 2" olabilir. AIR 2.5 veya sonraki sürümlerde, sürüm dizesi noktalarla ayrılmış en fazla üç basamaktan oluşan sıralamalar olmalıdır. Örneğin, “.0”, “1.0” ve “67.89.999” geçerli sürüm numaralarıdır. Uygulamayı güncellemeden önce güncelleme sürümü dizesini doğrulamanız gerekir.

Adobe AIR uygulaması web üzerinden bir AIR dosyası indirirse, web servisinin Adobe AIR uygulamasını indirilen sürüme ilişkin bilgilendirebileceği bir mekanizmaya sahip olmak, iyi bir uygulamadır. Bu şekilde, uygulama dizeyi update() yönteminin version parametresi olarak kullanabilir. AIR dosyası sürümünün bilinmediği diğer yöntemlerle elde edildiyse, AIR uygulaması sürüm bilgisini belirlemek için AIR dosyasını inceleyebilir. (AIR dosyası, sıkıştırılmış bir ZIP arşividir ve uygulama tanımlayıcı dosyası arşivdeki ikinci kayıttır.)

Uygulama tanımlayıcı dosyası ile ilgili ayrıntılar için bkz. AIR uygulama tanımlayıcı dosyaları .

Uygulama güncellemeleri için iş akışını imzalama

Güncellemeleri geçici bir şekilde yayınlama birden fazla uygulama sürümünü yönetme görevlerini karmaşıklaştırır ve sertifika sona erme tarihlerini izlemeyi zorlaştırır. Sertifikaların süresi siz bir güncelleme yayınlamadan önce sona erebilir.

Adobe AIR çalışma zamanı, geçiş imzası olmadan yayınlanmış uygulama güncellemelerini yeni bir uygulama olarak değerlendirir. Kullanıcılar uygulama güncellemesini yüklemeden önce geçerli AIR uygulamalarını kaldırmalıdır.

Sorunu çözmek için her güncellenen uygulamayı en güncel sertifikayla birlikte ayrı bir dağıtım URL'sine yükleyin. Sertifikanız 180 günlük yetkisiz kullanım süresindeyken geçiş imzası uygulamanızı hatırlatacak bir mekanizma dahil edin. Daha fazla bilgi için bkz. Bir AIR uygulamasının güncellenmiş sürümünü imzalama .

Nasıl imza uygulanacağıyla ilgili bilgi için bkz. ADT komutları .

Geçiş imzası uygulama sürecini kolaylaştırmak için aşağıdaki görevleri gerçekleştirin:

  • Her güncellenmiş uygulamayı ayrı bir dağıtım URL'sine yükleyin.

  • Yükseltme tanımlayıcı XML dosyasını ve güncellemenin en son sertifikasını aynı URL'ye yükleyin.

  • Güncellenmiş uygulamayı en son sertifikayla imzalayın.

  • Farklı bir URL'de bulunan önceki sürümü imzalamak için kullanılmış sertifikayla güncellenmiş uygulamaya bir geçiş imzası uygulayın.