İOS 8'de Kurumsal Uygulama Güncelleme Dağıtımı


111

itmsURL aracılığıyla dağıttığım bir kurumsal uygulamam var :

itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist

İOS 7'de hem indirmeler hem de güncellemeler sorunsuz çalışıyor. Ancak iOS 8'de şu hatayı alıyorum:

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp

Plistimde var

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

ve iOS 8'deki uygulamamda 0.2.1 sürümünü çalıştırıyorum


1
İOS8'in hangi sürümünü çalıştırıyorsunuz? Beta 5 ile buna benzer sorunlar yaşayan insanlar olduğunu duydum.
Anil Natha

7
Aynı sorun. iOS 8 GM. Bu uygulamalar şimdi indirmeyi reddediyor.
Carl Sjogreen

3
Şimdi resmi olarak yayınlanan ios8.0'ı çalıştırıyorum ve kurulum başlamıyor. Konsule bir göz attım ve şöyle bir mesaj var: "<Warning>: LoadExternalDownloadManifestOperation: Manifest indirmeyi yoksay, zaten bundleID: MYBUNDLENAME var" ... cihazı geri yüklemek veya paket kimliğini değiştirmek işe
yarayacak


1
@pcperini Diğer gönderideki cevapların daha fazla bilgi içerdiğini düşünüyorum. Suç amaçlanmadı.
Kristopher Johnson

Yanıtlar:


91

Uygulama dağıtımımızda da bu sorunla karşılaştım. Bu sorunu, ipa paket tanımlayıcımızı aynı tutarak indirme dağıtımı için kullanarak .plist içindeki paket tanımlayıcısını 'taklit ederek' çözebildik.

Örneğin, plistinizde:

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

değiştirmek com.mycom.MyApp için com.mycom.MyApp.ios8fix

Uygulama, kurulumdan sonra kaybolacak yeni bir uygulama simgesi kullanılarak yüklenecektir.

Uygulamayı zaten yüklediyseniz, yükleme sırasında yeni bir uygulama simgesi bile göreceksiniz. Kurulumdan sonra bu simge kaybolur, ancak uygulamanın mevcut sürümü güncellenecektir. Temiz bir kurulumla kurulum simgesi kaybolacak ve kurulu uygulama simgesi yerinde görünecektir.

Görünüşe göre iOS 8, paket tanımlayıcılarını önbelleğe alıyor ve istenen yüklemeleri bu önbelleğe alınmış olanlarla karşılaştırıyor. Çoğu zaman yalnızca kurulum isteyen bir açılır pencere görürsünüz, ancak hiçbir şey olmaz.

Sean'ın daha önce fark ettiği gibi, bu xCode 6 GM ve resmi iOS 8 sürümünde görünüyor. Uygulamanızı daha önce hiç yüklememiş olan cihazlar, uygulamayı yüklemede sorun yaşamayacaktır.


3
Bazı cihazlarda çalışır, ancak diğer bazıları syslog hala önceki paket kimliğini gösteriyor, hatta plist dosyasını değiştirdim.
tapınak

Aslında resim sağlamak doğru çözümdür - bu yanıtı kontrol edin stackoverflow.com/a/26283611/276656
mspasov

3
Benim durumumda paket tanımlayıcısını değiştirmek bazı cihazlarda işe yaradı - hepsi değil. Pliste giden yolu değiştirdikten sonra kendisi benim için çözdü.
pawi

1
Uygulamayı Xcode Server'dan indiriyorsanız düzenlenecek .plist nerede?
Collin

1
Bu yanıt stackoverflow.com/a/28727958/108040 bizim için daha iyi çalıştı çünkü .plist'i değiştirmek zorunda değilsiniz
Robin

24

Bu benim için daha iyi çalıştı, bildiriminize veya diğer hilelere dokunmanıza gerek yok ( plistotomatik olarak oluşturulduğu Xcode Sunucusu için mükemmel ):

  1. İExplorer'ı indirin ( http://www.macroplant.com/iexplorer/ )
  2. Cihazınızın fişini takın
  3. "Medya> İndirilenler" içindeki tüm dosyaları silin
  4. Cihazı yeniden başlat

Bu, cihaz önbelleklerini sıfırlar, artık uygulamanızı her zamanki gibi yükleyebilirsiniz.


3
Teşekkürler, sen bir hayat kurtarıcısın. Macroplant'dan ücretsiz olan iBrowse ( ibrowseapp.com ) kullanıyorum
Min Soe

2
Bu bizim için harika çalıştı ... Medya içeriğini sildikten sonra cihazı yeniden başlatmayı unutmayın -> Yüklemeler
Robin

teşekkürler İş yaptım! Ancak yine de bunun her kullanıcının telefonunda yapılması gerektiğini düşünüyorum!
Ammar Mujeeb

"Tüm İçeriği ve Ayarları Sil" (Ayarlar uygulamasının altında) çalışıyor mu?
onmyway133

İndirilenler klasörünün içeriği nedir?
HamzaGhazouani

16

Ben de aynı sorunu yaşıyorum. Bunu şu şekilde yeniden ürettim:

1) iOS 7'den iOS 8 GM'ye yükseltirken uygulamamın kurulu olması

2) iOS 8'de kaldırmak

3) itms hizmetleri aracılığıyla yüklemeye çalışıyorum: aynı paket adı ile

Sunucu plistindeki paket tanımlayıcısını değiştirmeye çalıştığımda (Info.plist uygulamalarında değil) işe yaradı (uygulama indirildi ve "gölge" simgesi kalmadı). Ama bir elma böceğine benziyor.


1
Ancak uygulamadaki paket adını da değiştirmeniz gerekiyor, değil mi? Yalnızca sunucu listesini değiştirmeyi denedim ve sonuç: Eylül 18 09:59:20 XXX-iPhone dosya koordinasyonu d [123] <Uyarı>: korumalı alan, com.mo2o.XXX kategorisinde ilerlemek için aboneliği reddetti (paket kimliği com.apple.iaptransportd , 037BE63A-8737-4A4B-9C9D-B8FAF8DC0D40) Eylül 18 09:59:20 XXX-iPhone dosya koordinasyonud [123] <Uyarı>: korumalı alan oluşturma, com.mo2o.XXX kategorisinde ilerleme aboneliği reddedildi (paket kimliği (boş), 0B9D3B2A- 2B5D-4882-8771-61784326E507) ve uygulama yüklenmiyor
Eva Madrazo

mmm haklı değilim, uyarıyı kaydediyor ama aynı zamanda uygulamayı yüklüyor.
Eva Madrazo

Bu iyi çalışıyor, ancak küçük bir dezavantaj var. Kurulum sırasında cihaz hangi uygulamayı güncellediğinizi bilmez, bu nedenle kurulum sırasında ikinci bir uygulama simgesi görürsünüz. Kurulumdan sonra bu otomatik olarak düzeltilir.
Ivo Jansch

4
Bu bulldozer.io makalesinde "bir geliştirici sertifikası yüklü cihazların etkilenmediği görülüyor" ifadesinin bulunduğunu belirtmek gerekir. "Geliştirici sertifikası" ile ne kastedildiği net değil (sanırım söz konusu uygulamayı "kapsayan" bir geliştirme ön hazırlık profili), ancak bu, sorunu farklı cihazlarda yeniden oluştururken karşılaşılan sorunları açıklayabilir.
astletron

11

Kabul edilen çözüm artık iOS9'da çalışmıyor.

Anladığım kadarıyla Apple, adhoc ikili dosyaların App Store'dan indirilen stok uygulamaları veya uygulamaları değiştirmesini önleyerek ciddi bir iOS güvenlik açığını kapattı. Arka plan için bu makaleye bakın (CVE-2015-3722 / 3725 ve CVE-2015-3725):

https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html

Güvenlik etkilerini dikkate aldığımızda, bu davranışın gelecekteki IOS sürümlerinde değişmesini beklemem. Alternatif seçenekler şöyle görünüyor:

  • adhoc'u yüklemeden önce App Store sürümünü silin
  • Hem uygulamada hem de dağıtım plistinde paket kimliğini değiştirerek adhoc'u 'yeni' uygulama olarak dağıtın
  • TestFlight'ı kullanın

Görünüşe göre haklısın. Yeni yüklemelerde veya uygulamanın önceki bir anlık sürümünün güncellenmesinde iyi çalışır, ancak yüklenen sürüm App Store'dan yüklendiğinde çalışmaz.
Charles

Apple'ın neden bu değişikliği yaptığına dair başka bir ipucu: loopinsight.com/2015/10/05/…
Frans

Güvenliği kapatma ihtiyacını anlasam da, bu bizi TestFlight'a gitmeden konuşlandırılmış sürümde bir sürümden diğerine yükseltmeleri test edemeyeceğimiz ilginç bir senaryoya sokuyor. Görünüşe göre geçici bir profil ve aynı geliştirici için sertifika ile imzalanan bir uygulama yükseltilebilir.
lidsinker

@charles , "Yeni yüklemelerde veya uygulamanın önceki bir anlık sürümünün güncellenmesinde iyi çalışıyor", test ettiniz mi? çünkü IOS9'da bu adhock güncellemesi adhoc sorunuyla karşılaşıyoruz .....
flypig

@flypig O zamanlar iOS 9'da denedim ve işe yaradı. O zamandan beri denemedim, üzgünüm.
charles

9

Gil'in söylediği doğru görünüyor, ancak daha spesifik olarak, server.plist'teki paket sürüm dizesini artırmam gerektiğini fark ettim:

    <key>bundle-version</key>
    <string>3.2.2</string>

Bu, en azından bir OTA kurulumu gerçekleştirmenize izin verir.

(Üzgünüm ... Yorumlara ekleyebilirdim, ama ben çok fazla n00b.)


9

Bu yanıta ve bu yanıta bir göz atın .

Bu sorunu herhangi bir hack olmadan çözebilirsiniz, iOS8 assetsiçin manifest .plistdosyasının anahtarına display-imageve full-size-imageanahtarlarını eklemeniz gerekir . Kurumsal ve eklenti dağıtım için bir arşiv kaydederken Xcode 5'te mevcuttu, ancak gerekli değildi.

İnstall-manifet.plist dosyası için şablonla github'da bir özet oluşturdum .


7
Aslında bu sorunu her iki anahtarla da yaşıyordum.
Sean Danzeiser

ya paket tanımlayıcısını değiştirdim ve işe yaradı. Onun için heyecanlanmadım.
Sean Danzeiser

Harika! Ayrıca her şeyi bir alt klasöre taşıdım ve yalnızca ipa dosyasının MD5'ini ayarlıyorum.
Felipe FMMobile

3

Bu, ilk olarak iOS8 Beta5'te bulunan bir hata. Ve yine de Apple tarafından GM tohumunda ve resmi iOS8.0 sürümünde düzeltilmedi. Daha fazla disket burada bulunabilir

Kendim tarafından test edilen mevcut geçici çözüm:

  • Cihazınızdaki içeriği önemsemiyorsanız: cihazın DFU modunda temiz bir geri yükleme yapın
  • Eşyalarını geri istiyorsan
    1. Geri yüklemeden önce iOS Aygıtınızı iTunes'da yedekleyin (Ad-Hoc / kurumsal uygulama olmadan)
    2. Cihazınızı temiz bir şekilde geri yükledikten sonra, Ad-Hoc / kurumsal uygulamanızı yükleyin
    3. Yedeklemenizi iTunes'dan geri yükleyin
    4. Artık bu Ad-Hoc / kurumsal uygulamaları silmekte ve yeniden yüklemekte özgürsünüz.

1
Hala 8.1'de düzeltilmedi
Kevin

2
Hala 8.2'de sabitlenmedi ....... Belki de dünyadaki 15 kişi kurumsal uygulamalar yapıyoruz.
Karl Heinz Brehme Arredondo

3

Plist'teki paket tanımlayıcısını değiştirerek sorun çözüldü.

Normalde, itms bağlantısına dokunduktan sonra, simge kurulumunu gösteren masaüstünü gösterecektir. Bununla birlikte, iOS 8.0 cihazım için, itms bağlantısına dokunduktan sonra kurulum sayfasına geçmeyecek, ancak kurulum zaten arkada çalışıyor.


2

Bu aşırı bir durumdur, ancak paket tanımlayıcınızı değiştiremezseniz, iPhone'unuzu iTunes aracılığıyla en son iOS 8'e geri yüklemek ve bir yedeklemeden geri yüklemek sorunu çözer.



1

İOS 10 beta 1'de de aynı sorun var.

31 Aralık 19:01:32 iphone-6s itunesstored [98]: LoadExternalDownloadManifestOperation: Manifest indirmeyi yoksay, zaten bundleID var: com. ***************. Fazlı ios: SSDownloadPhaseWaiting

Burada anlamadığım bir şey, XCode cihaz günlüğündeki tarihin 31 Aralık olması, ancak cihazda doğru tarih ve saat yapılandırılmış.

Güncelleme: HockeyApp'ten arkadaşlar WWDC sırasında Apple'ı bu sorun hakkında bilgilendirdi ve düzeltmenin bir sonraki tohumda gelmesi gerekiyor.


1
iOS 10'da aynı sorun
Crossle Song

0

İOS uygulamalarınızı bir derleme komut dosyasıyla oluşturduysanız ve daha önce --sign bayrağına sahip PackageApplication kullanıyorsanız, bu sorunlara neden olabilir. --Sign bayrağı artık 10.10'da derlenirken çalışmıyor ve kaldırıldığında tüm iOS uygulamalarımız yeniden yükleniyor.

bkz: https://devforums.apple.com/thread/251624?tstart=0


Bu, farklı bir konuyu ele alıyor ve OP'nin istediği gibi kurmakla değil kurmakla ilgili.
wottle

Katılmıyorum. B5'te, imzalı IPA'ların yüklenememesine neden olan bir davranış değişikliği vardı. OP'nin manifest dosyasında herhangi bir hata bulunmadığını varsayarsak, imzalı bir IPA'nın tam olarak sağladıkları hatayla yüklenememesi neredeyse garanti edilir. IPA'larını nasıl oluşturduklarından bahsetmedikleri için neden başarısız olduğunu kesin olarak söyleyemem. Öte yandan, IPA'larımızdan işaretlerin kaldırılması hepsinin yeniden yüklenmesini sağladı.
James Moore

Bu doğru olabilir, ancak orijinal soruda belirtilen hataya bakarsanız: "Manifest indirmeyi yoksay, zaten bundleID var:", bu açık bir şekilde kurumsal uygulamalarda yaygın olarak tartışılan iOS8 hatası ve bir uygulamanın yüklenememesiyle ilgilidir iOS8'e yükseltmeden önce yüklenmiş, ardından iOS8'e yükselttikten sonra kaldırılmıştır. Bir sorunu ele alıyor olabilirsiniz, ancak bu OP'nin sahip olduğu sorun değildir.
2014

0

Tam bir internet erişiminiz olduğundan emin olun.

OTA kurulumu ve IOS8 ile aynı problemle karşılaşıyordum. Kurumsal bir proxy'nin arkasında olduğumdan, bu sorunu çözmek için manuel proxy ayarlarını (IOS7'de gerekli değildir) yapana kadar yukarıdaki çözümler işe yaramadı.


0

Bu sorunla az önce 8.1 çalıştıran bir cihazda karşılaştım, cihazı 8.3'e yükseltmek sorunu çözdü. Yani ya hata 8.3 .... 'te artık mevcut değil ya da yükseltme eylemi önbelleğe alınan verileri yine de temizledi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.