Kunci CFBundleExecutable tak terduga

98

Setelah menghabiskan beberapa waktu untuk googling, sesuatu memberi tahu saya bahwa masalahnya baru.

Kami memiliki proyek yang berfungsi penuh yang mendukung iOS7-8. Tentu saja sudah berkali-kali berhasil dikirimkan ke AppStore.

Kami menggunakan pod, banyak pelacakan dan pemantauan, seperti GA dan Instabug.

Sekarang kami memutuskan untuk mengirimkan versi aplikasi yang dibangun pada Xcode 7 di iOS 9 ke TestFlight.

Kami menonaktifkan bitcode, karena banyak pod, seperti Flurry dan library bawaan lainnya tidak menyertakannya.

Build berhasil, setelah pengiriman ke iTunesConnect kita mendapatkan ini: masukkan deskripsi gambar di sini

Kami memiliki pustaka yang sama untuk GoogleAppIndexing (dalam pod juga), tetapi kami menghapusnya, hanya untuk membuatnya berfungsi. Sekarang - Instabug. Ini berjalan terlalu jauh, jadi saya mencoba untuk memahami apa yang sedang terjadi di iOS 9 dan apa saja perubahan yang membuat proyek berfungsi penuh untuk mulai melakukan kesalahan seperti itu.

Pikiran dan ide apa pun disambut! Silakan bagikan pengalaman Anda, dan jika saya melewatkan sesuatu, saya dengan senang hati akan membagikan langkah saya.

Dumoko
sumber
2
Sudahkah Anda memecahkan masalah ini? Saya menghadapi masalah ini juga, tapi ini adalah GoogleMaps.bundle ...
Johnny
1
Tidak, belum. Sepertinya ini masalah umum.
Dumoko
Ini sangat menjengkelkan :(, saya telah bertanya di forum Pengembang Apple, lihat apakah ada orang lain yang mendapat masalah ini. Forums.developer.apple.com/message/42851#42851
Johnny
Kami juga melihat ini dalam integrasi baru dengan Startapp. Juga iOS 9 dan Xcode 7 beta 5.
Trey Bean
2
Moataz dari Instabug di sini. Dapatkah Anda mengganti Instabug.bundle yang Anda miliki dengan dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , beri tahu saya bagaimana kelanjutannya
Moataz Soliman

Jawaban:

112

Saya mengalami masalah yang sama hari ini dengan pesan kesalahan yang sama persis ketika mencoba mengirimkan aplikasi kami (menggunakan Xcode 7 beta 5) tetapi bukannya instabug.bundlesedikit, itu untuk saya TencentOpenApi_IOS_Bundle.bundle.

Saya memecahkan masalah dengan menemukan bundel bernama dalam proyek kemudian - seperti yang disarankan pesan kesalahan - mengedit Info.plistyang ada dalam bundel dengan menghapus CFBundleExecutablekuncinya. The CFBundlePackageTypekey sudah ditetapkan untuk BNDLjadi saya tidak menyentuhnya.

Setelah perubahan ini saya lakukan Product> Clean dan kemudian tidak ada masalah mengirimkan aplikasi ke App store.

Saya harap ini membantu.

Sleiman
sumber
2
terima kasih telah membagikan pengalaman Anda! Jadi ADALAH masalah penulis perpustakaan. Tapi kami, developer, tidak boleh melakukan trik ini ... Misalnya, saya menggunakan pod dan sistem CI. Saya tidak bisa pergi ke CI dan setiap kali setelah pemasangan pod lakukan perubahan manual ini. Tapi setidaknya kita akan membuatnya bekerja. Sejauh ini saya sedang mencari solusi umum. Jika tidak segera datang, saya akan menandai jawaban Anda sebagai yang membantu. Terima kasih lagi!
Dumoko
Saya tidak bisa melakukan ini. Jika saya mencoba membuka info.plist di dalam pod di Xcode, saya diberitahu bahwa file terkunci dan perubahan tidak akan disimpan (dan tidak). Jika saya menggunakan editor teks eksternal, saya dapat melihat bahwa konten file plist entah bagaimana dikodekan, itu bukan teks biasa.
Mike Keskinov
@MikeKeskinov, dapatkah tautan ini bermanfaat: [ apple.stackexchange.com/questions/68646/… ? Ini menyarankan menemukan info.plist di Finder dan mengedit izin file untuk memungkinkan Anda mengeditnya di Xcode.
Sleiman
Saya juga mengalami masalah serupa dan melapor ke Apple. Langkah Anda benar-benar benar seperti yang disarankan oleh Apple. bugreport.apple.com/problem/viewproblem
Avinash
Saya menulis skrip shell untuk menghapus ini sebagai solusi. Anda menambahkan ini sebagai skrip yang dijalankan selama Fase Build proyek Anda: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying
52

Menemukan ini dengan AviarySDKdi Xcode 7 GM, saat mengirimkan ke App Store.

Pertama saya akan memeriksa untuk melihat apakah Anda menggunakan versi terbaru dari perpustakaan Anda - vendor mungkin sudah memperbaikinya. Namun, jika Anda masih menghadapi masalah ini, seperti yang dijelaskan Sleiman, Anda perlu menghapus CFBundleExecutablekunci dari file plist untuk pustaka yang melanggar.

Cmd + Shift + O dan ketik "Info.plist", Anda dapat menemukan file yang sesuai:

masukkan deskripsi gambar di sini

Setelah mengedit plist, Anda mungkin melihat nama deskriptif (bukan CFBundleExecutablekunci dan lainnya. Saya tidak dapat mengedit file ini di editor eksternal, jadi saya harus beralih untuk melihat kunci / nilai mentah dengan mengklik kanan daftar:

masukkan deskripsi gambar di sini

Sekarang Anda dapat melihat CFBundleExecutablekunci (yang memiliki deskripsi "File yang dapat dieksekusi") yang dapat Anda hapus.

Untuk AviarySDK saya melakukan ini dua kali, sekali untuk setiap yang Info.plistterlihat pada gambar di atas, dan kemudian berhasil mengirimkan.

Adam S.
sumber
Tahukah Anda apa efek sampingnya? Saya mengalami masalah yang sama dengan bundel Polljoy. Apakah menurut Anda entri itu hanya di plist secara keliru?
Stoff81
1
"Xcode secara otomatis menambahkan kunci ini ke file daftar properti informasi dari proyek yang sesuai." Maaf saya tidak bisa memberi tahu Anda efek sampingnya, namun saya curiga itu karena menggunakan pustaka lama yang belum didistribusikan dengan dukungan untuk Kerangka, dan kemudian Xcode mencoba memperlakukannya sama dengan yang memang memiliki dukungan untuk Kerangka.
Adam S
Sayangnya untuk beberapa perpustakaan (yaitu AppIndexing dll) konten file plist tampaknya dienkripsi. Ini memungkinkan Anda untuk melihat tetapi tidak menyimpan perubahan apa pun. Saat mencoba membuka file di luar XCode, jelas bahwa file tersebut dienkripsi (tidak ada teks biasa).
Mike Keskinov
ini berfungsi untuk masuk google, dan memungkinkan saya untuk mengunggah ke App store
James
2
Saya baru saja mengemukakan masalah yang sama dengan Aviary dan Cocoapods 0.39. Perbaikan yang Anda sarankan tampaknya berhasil. Sepertinya sudah waktunya untuk mengambil risiko dan beralih ke AdobeCreativeSDK :(
Keab42
11

Saya memecahkan masalah ini sebagai berikut: Kami harus menghapus semua "file yang dapat dieksekusi" dari paket berikut:

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

Pastikan "Kode jenis paket" sama dengan BNDL

Penting: Jangan edit apa pun di info.plist proyek utama.

Layar terlampir sebagaimana mestinya adalah "info.plist" -nya yang tercantum di atas setiap paket.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Jonathan Nolasco Barrientos
sumber
9

Inilah yang berhasil untuk saya

  1. Apple-Shift-F, cari CFBundleExecutable
  2. Klik masing-masing kecuali "PODS" atau target utama Anda
  3. Hapus itu (hapus kunci)

masukkan deskripsi gambar di sini

William Entriken
sumber
Bisakah Anda membantu saya dalam hal ini: stackoverflow.com/questions/39512387/…
NaXir
5

Jika build dikirimkan melalui Less than (<) Xcode 7.0 maka itu akan dikirimkan dan juga saya telah menyelesaikannya dengan cara berikut untuk Xcode 7 :

Dicari info.plistdi proyek Project Navigator seperti gambar berikut:

masukkan deskripsi gambar di sini

Sekarang buka info.plistfile - file ini satu per satu dan hapus BundleExecutablekuncinya KECUALI targetinfo.plist

Sekarang bersihkan proyek dan tercapai dan itu diserahkan dengan Tidak ada masalah.

Manab Kumar Mal
sumber
4

Saya memiliki masalah yang sama di Google Maps Library, saya menghapus CFBundleExecutablekunci inside GMSCoreResources.bundle( Info.plist) yang merupakan proyek bersih info.plist SDK dan mengunggah ke appstore.

Selamat Programming.

masukkan deskripsi gambar di sini

Umar Farooq
sumber
1

Cukup periksa Pengaturan Build Anda => Aktifkan Bitcode, dan setel NO

InitialC
sumber
0

Satu catatan tambahan: terkadang jika Anda memiliki target tambahan akan ada properti target yang mungkin juga menyertakan kunci (di bagian "Info"), jadi pastikan untuk memeriksa dan menghapusnya dari sana juga. Saya menemukan ini dengan salah satu bundel yang saya coba masukkan. Saya menghapus info dari plist, tetapi terus mendapatkan kesalahan.

jimejim
sumber
0

Jika Anda melihat kesalahan ini dari pustaka yang dipasang melalui CocoaPods, coba pod update <OFFENDING POD NAME>

Itu memecahkan masalah saya.

Quentin
sumber
0

Saya baru saja menambahkan kata "BNDL" ke tempat yang sesuai di plist"Kode Jenis OS pembuat Bundel".

Itulah masalahnya

Oleksiy Dudarev
sumber
0

Dalam kasus saya, saya hanya Seret dan Jatuhkan. SDKDalam folder termasuk info.plistfile yang tidak digunakan. Itu menimbulkan masalah bagi saya. Jadi temukan info.plistfile yang tidak digunakan dan hapus dari kode Sumber.

Krunal Nagvadia
sumber