Beklenmeyen CFBundleExecutable anahtarı


98

Google'da biraz zaman geçirdikten sonra, bir şey bana sorunun yeni olduğunu söylüyor.

İOS7-8'i destekleyen tamamen işlevsel bir projemiz vardı. Elbette AppStore'a birden çok kez başarıyla gönderildi.

GA ve Instabug gibi kapsüller, çok sayıda izleme ve izleme kullanıyoruz.

Şimdi iOS 9 üzerinde Xcode 7 üzerine kurulu uygulamanın bir sürümünü TestFlight'a göndermeye karar verdik.

Flurry ve diğer önceden oluşturulmuş kitaplıklar gibi birçok bölme bunu içermediğinden, bit kodunu devre dışı bıraktık.

Yapı başarılı oldu, iTunesConnect'e gönderildikten sonra şunu anlıyoruz: görüntü açıklamasını buraya girin

Aynı GoogleAppIndexing kitaplığı için de vardı (bölmelerde de), ancak çalışmasını sağlamak için kaldırdık. Şimdi - Instabug. Çok ileri gidiyor, bu yüzden iOS 9'da neler olup bittiğini ve bu tür hataları atmaya başlamak için tam olarak çalışan bir projeyi yapan değişikliklerin neler olduğunu anlamaya çalışıyorum.

Herhangi bir düşünce ve fikir memnuniyetle karşılanır! Lütfen deneyiminizi paylaşın ve bir şeyi kaçırırsam, adımlarımı memnuniyetle paylaşırım.


2
Bu sorunu çözdünüz mü? Ben de bu sorunla karşılaşıyorum, ancak GoogleMaps.bundle ...
Johnny

1
Hayır henüz değil. Görünüşe göre genel bir sorun.
Dumoko

Bu gerçekten can sıkıcı :(, Apple Developer forumunda sordum, başka birinin bu sorunu yaşayıp
Johnny

Bunu da Startapp ile yeni bir entegrasyonda görüyoruz. Ayrıca iOS 9 ve Xcode 7 beta 5.
Trey Bean

2
Instabug'dan Moataz burada. Sahip olduğunuz Instabug.bundle'ı bu dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 ile değiştirebilir misiniz, nasıl gittiğini bana bildirin
Moataz Soliman

Yanıtlar:


112

Bugün uygulamamızı göndermeye çalışırken (Xcode 7 beta 5 kullanarak) aynı hata mesajıyla aynı problemle karşılaştım, ancak instabug.bundlebit yerine benim içindi TencentOpenApi_IOS_Bundle.bundle.

Sorunu projede adlandırılmış paketi bularak çözdüm ve sonra - hata mesajının önerdiği gibi - anahtarı Info.plistkaldırarak paketteki paketi düzenledim CFBundleExecutable. CFBundlePackageTypeAnahtar zaten ayarlandı BNDLbunu dokunmadı yüzden.

Bu değişikliklerden sonra Ürün> Temizle'yi yaptım ve ardından uygulamayı App store'a gönderirken herhangi bir sorun yaşamadım.

Umarım bu yardımcı olur.


2
deneyiminizi paylaştığınız için teşekkür ederiz! Yani bu, kütüphane yazarının problemidir. Ama biz geliştiriciler bu hileleri yapmamalıyız ... Mesela ben kapsüller ve bir CI sistemi kullanıyorum. CI'ye gidemiyorum ve pod kurulumundan sonra her defasında bu manuel değişikliği yapın. Ama en azından onu çalıştıracağız. Şimdiye kadar genel bir çözüm arıyorum. Yakında gelmezse, cevabınızı yardımcı olan olarak işaretleyeceğim. Tekrar teşekkürler!
Dumoko

Bunu yapamam Xcode'da kapsülün içindeki info.plist'i açmaya çalışıyorsam, bana dosyanın kilitlendiğini ve değişikliklerin kaydedilmeyeceğini söyledi (ve kaydetmiyor). Harici metin editörü kullanırsam, plist dosyasının içeriğinin bir şekilde kodlanmış olduğunu görebilirim, bunun düz metin olmadığını.
Mike Keskinov

@MikeKeskinov, bu bağlantı yardımcı olabilir mi : [ apple.stackexchange.com/questions/68646/… ? Finder'da info.plist'i bulmanızı ve dosyayı Xcode'da düzenlemenize izin verecek şekilde dosyanın izinlerini düzenlemenizi önerir.
Sleiman

Ben de benzer bir sorun yaşadım ve Apple'a bildirdim. Adımlarınız, Apple tarafından önerildiği gibi kesinlikle doğrudur. bugreport.apple.com/problem/viewproblem
Avinash

Bunu geçici çözüm olarak kaldırmak için bir kabuk komut dosyası yazdım. Bunu, projenizin Derleme Aşamaları sırasında bir çalıştırma komut dosyası olarak eklersiniz: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying

52

Bu Karşılaşılan AviarySDKApp Store'a gönderirken, Xcode 7 GM üzerinde.

Öncelikle kitaplığınızın en son sürümünde olup olmadığınızı kontrol ederim - satıcı bunu zaten düzeltmiş olabilir. Yine de bu sorunla karşı karşıyaysanız, Sleiman'ın açıkladığı gibi, sorun CFBundleExecutableteşkil eden kitaplık için anahtarı plist dosyasından kaldırmanız gerekir .

Cmd + Shift + O ve "Info.plist" yazın, ardından uygun dosyayı bulabilirsiniz:

görüntü açıklamasını buraya girin

Plist'i CFBundleExecutabledüzenledikten sonra, açıklayıcı adlar görüyor olabilirsiniz ( ve diğer anahtarlar yerine . Bu dosyayı harici bir düzenleyicide düzenleyemedim, bu yüzden listeyi sağ tıklayarak ham anahtarları / değerleri görüntülemeye geçmek zorunda kaldım:

görüntü açıklamasını buraya girin

Artık CFBundleExecutablesilebileceğiniz anahtarı ("Yürütülebilir dosya" açıklamasına sahip olan) görebilirsiniz.

AviarySDK için bunu Info.plist, yukarıdaki resimde görülen her biri için bir kez olmak üzere iki kez yaptım ve ardından başarıyla gönderebildim.


Bunun yan etkilerinin ne olduğunu biliyor musunuz? Polljoy paketiyle aynı sorunu yaşıyorum. Girişin sadece plistte hatalı olduğunu mu düşünüyorsunuz?
Stoff81

1
"Xcode, bu anahtarı otomatik olarak uygun projelerin bilgi özellik listesi dosyasına ekler." Ne var ki ben nedeniyle çerçeveleri desteği ile dağıtılan edilmemiştir eski kütüphaneyi kullanmaya, ve sonra Xcode biri olarak bunu aynı tedavi etmeye çalışır şüpheli, sana yan etkileri söyleyemem üzgünüm yapar desteği Çerçeveler için.
Adam S

Maalesef bazı kitaplıklar için (yani AppIndexing vb.) Plist dosyası içeriği kodlanmış gibi görünmektedir. Görüntülemenize izin verir, ancak herhangi bir değişikliği kaydetmez. XCode dışında dosya açmaya çalışırken, dosyanın şifreli olduğu açıktır (düz metin yok).
Mike Keskinov

bu google oturum açma için çalıştı ve App store'a yüklememe izin verdi
James

2
Aviary ve Cocoapods 0.39 ile aynı sorunu ele aldım. Önerilen düzeltmeniz işe yarıyor gibi görünüyor. Mermiyi ısırıp AdobeCreativeSDK'ya geçmenin zamanı gelmiş gibi görünüyor :(
Keab42

11

Bu sorunu şu şekilde çözüyorum: Aşağıdaki paketlerin tüm "Yürütülebilir dosyalarını" kaldırmamız gerekiyor:

  • GooglePlus.bundle
  • GPPCommonSharedResources.bundle
  • GPPShareboxSharedResources.bundle

"Paket türü kodunun" BNDL'ye eşit olduğundan emin olun

Önemli: info.plist ana projedeki hiçbir şeyi düzenlemeyin.

Her paketin üzerinde listelenen "info.plist" olması gerektiği için ekli ekranlar.

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin



5

Yapı, (<) Xcode 7.0'dan Küçük ile gönderilmişse, o zaman gönderilecek ve ayrıca Xcode 7 için aşağıdaki yolu izleyerek çözdüm. :

info.plistProje Gezgini projelerinde aşağıdaki görsel gibi arandı :

görüntü açıklamasını buraya girin

Şimdi bu info.plistdosyaları birer birer açıp , hedefin DIŞINDABundleExecutable anahtarı silindi.info.plist

Şimdi proje temizlendi ve gerçekleştirildi ve Sorun yok ile gönderildi.


4

Google Haritalar Kitaplığı'nda da aynı sorunu yaşadım , SDK'nın info.plist temiz projesi olan ve uygulama mağazasına yükleyen ( ) CFBundleExecutableiçindeki anahtarı kaldırdım .GMSCoreResources.bundleInfo.plist

Mutlu Programlama.

görüntü açıklamasını buraya girin


1

Yapım Ayarlarınızı kontrol edin => Bitcode'u Etkinleştirin ve HAYIR olarak ayarlayın


0

Ek bir not: Bazen ek hedefleriniz varsa, anahtarı da içerebilecek hedef özellikler olabilir ("Bilgi" bölümünde), bu nedenle bunları kontrol ettiğinizden ve oradan da kaldırdığınızdan emin olun. Bunu dahil etmeye çalıştığım paketlerden biriyle keşfettim. Bilgileri plistten sildim, ancak hatayı almaya devam ettim.


0

Bu hatayı CocoaPods aracılığıyla yüklenen bir kitaplıkta görüyorsanız, pod update <OFFENDING POD NAME>

Bu benim için sorunu çözdü.



0

Benim durumumda sadece Sürükle ve Bırak SDKIn klasörü info.plistkullanımda olmayan dosyayı içerir. Bu benim için sorunu yaratır. Öyleyse kullanılmayan info.plistdosyayı bulun ve Kaynak kodundan silin.

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.