Несподіваний ключ CFBundleExecutable


98

Провівши деякий час в гугле, щось говорить про те, що питання нове.

У нас був повністю функціональний проект, що підтримує iOS7-8. Звичайно, це було багато разів успішно подано в AppStore.

Ми використовуємо стручки, багато відстеження та моніторингу, як GA та Instabug.

Тепер ми вирішили надіслати версію програми, побудованого на Xcode 7 на iOS 9, на TestFlight.

Ми відключили біткод, оскільки багато стручків, як, наприклад, Flurry та інші попередньо створені бібліотеки, не містять його.

Збірка пройшла успішно, після подання в iTunesConnect ми отримуємо наступне: введіть тут опис зображення

У нас було те ж саме для бібліотеки GoogleAppIndexing (і в стручках), але ми її видалили, просто щоб вона працювала. Тепер - Instabug. Це заходить занадто далеко, тому я намагаюся зрозуміти, що відбувається в iOS 9 і які зміни зробили цілком працюючий проект, щоб почати кидати такі помилки.

Будь-які думки та ідеї вітаються! Будь ласка, поділіться своїм досвідом, і якщо я щось пропустив, я з радістю поділюсь своїми кроками.


2
Ви вирішили цю проблему? Я теж стикаюся з цим питанням, але це GoogleMaps.bundle ...
Джонні

1
Ні, ще ні. Схоже, це загальна проблема.
Думоко

Це насправді дратує :(, я запитав на форумі Apple Developer, чи дізнався хтось ще про цю проблему. Forums.developer.apple.com/message/42851#42851
Johnny

Ми також бачимо це в новій інтеграції зі Startapp. Також iOS 9 та Xcode 7 beta 5.
Trey Bean

2
Моатаз від Інстабуг тут. Чи можете ви замінити наявний у вас Instabug.bundle цим dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , дайте мені знати, як це йде
Moataz Soliman

Відповіді:


112

Сьогодні я зіткнувся з тією ж проблемою з тим самим точним повідомленням про помилку при спробі подати наш додаток (використовуючи Xcode 7 beta 5), ​​але замість instabug.bundleбіту це було для мене TencentOpenApi_IOS_Bundle.bundle.

Я вирішив проблему, знайшовши іменований пакет у проекті, тоді - як саме підказує повідомлення про помилку - відредагував те, Info.plistщо знаходиться в пакеті, видаливши CFBundleExecutableключ. CFBundlePackageTypeКлюч був уже встановлений , BNDLтак що я не чіпав його.

Після цих змін я зробив «Продукт»> «Очистити», а потім не мав проблем із тим, щоб подати додаток до магазину додатків.

Я сподіваюся, що це допомагає.


2
дякую, що поділилися своїм досвідом! Так це проблема бібліотечного автора. Але ми, розробники, не повинні робити цих хитрощів ... Наприклад, я використовую стручки та систему CI. Я не можу перейти до CI, і кожен раз після встановлення pod виконайте це вручну. Але принаймні у нас це буде працювати. Поки я шукаю загальне рішення. Якщо це не скоро, ваш я позначу вашу відповідь як ту, що допомагає. Ще раз дякую вам!
Думоко

Я не можу цього зробити. Якщо я намагаюся відкрити info.plist всередині стручка в Xcode, він сказав мені, що файл заблокований і зміни не будуть збережені (і це не так). Якщо я використовую зовнішній текстовий редактор, я можу побачити, що вміст файлу плистів якось закодовано, це не звичайний текст.
Майк Кескінов

@MikeKeskinov, чи може це посилання бути корисним: [ apple.stackexchange.com/questions/68646/… ? Він пропонує знайти info.plist у Finder та відредагувати дозволи файлу, щоб дозволити вам редагувати його в Xcode.
Слейман

У мене теж був подібний випуск і повідомили Apple. Ваші кроки абсолютно правильні, як пропонує Apple. bugreport.apple.com/problem/viewproblem
Авінаш,

Я написав сценарій оболонки, щоб видалити це як вирішення. Ви додаєте це як сценарій запуску під час збирання Фази вашого проекту: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ін

52

Зустрівся з цим AviarySDKна Xcode 7 GM, подаючи в App Store.

Спершу я перевірю, чи перебуваєте ви в останній версії вашої бібліотеки - постачальник, можливо, це вже виправив. Якщо ви все ще стикаєтеся з цією проблемою, як описує Слейман, вам потрібно вилучити CFBundleExecutableключ із файлу плістів для бібліотеки, яка ображає право.

Cmd + Shift + O і введіть "Info.plist", ви можете знайти відповідний файл:

введіть тут опис зображення

Відредагувавши список, можливо, ви побачите описові імена (замість CFBundleExecutableклавіш та інших клавіш. Я не зміг редагувати цей файл у зовнішньому редакторі, тому мені довелося переключитися, щоб переглянути необроблені ключі / значення, клацнувши правою кнопкою миші на списку:

введіть тут опис зображення

Тепер ви можете побачити CFBundleExecutableключ (який описує "виконуваний файл"), який ви можете видалити.

Для AviarySDK я робив це двічі, один раз на кожне, що Info.plistбачилося на наведеному вище зображенні, і потім міг успішно подати.


Чи знаєте ви, що це за побічні ефекти? У мене виникає така сама проблема з пакетом Polljoy. Ви вважаєте, що запис просто в списку помилково?
Stoff81

1
"Xcode автоматично додає цей ключ до файлу списку властивостей інформації відповідних проектів." Вибачте, я не можу сказати вам побічні ефекти, однак я підозрюю, що це пов’язано з використанням старшої бібліотеки, яка не поширюється з підтримкою Frameworks, а потім Xcode намагається ставитися до неї так само, як та, яка має підтримку для фреймворків.
Адам S

На жаль, для деяких бібліотек (наприклад, AppIndexing тощо) вміст файлів плістів, здається, зафіксовано. Це дозволяє переглядати, але не зберігає жодних змін. При спробі відкритого файлу за межами XCode зрозуміло, що файл зашифрований (без простого тексту).
Майк Кескінов

це працювало для входу в Google, і дозволило мені завантажити в магазин додатків
Джеймс

2
Я щойно зустрічав ту саму проблему з «Вольєром» та «Кокаоподом 0,39». Ваша запропонована помилка, здається, працює. Схоже, можливо, настав час відкусити кулю та перейти на AdobeCreativeSDK :(
Keab42

11

Я вирішую цю проблему наступним чином: ми повинні видалити всі "виконувані файли" з наступних пакетів:

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

Переконайтеся, що "Код типу пакета" дорівнює BNDL

Важливо: Не редагуйте нічого в основному проекті info.plist.

Прикріплені екрани, як вони повинні бути його "info.plist", перелічені вище кожного пакета.

введіть тут опис зображення

введіть тут опис зображення

введіть тут опис зображення



5

Якщо збірка подається через (<) Xcode 7.0, тоді вона буде представлена, і я вирішив її наступним чином для Xcode 7 :

Шукали info.plistв проектах Навігатор проектів як наступне зображення:

введіть тут опис зображення

Тепер відкриваємо ці info.plistфайли один за одним і видаляємо BundleExecutableключ, Окрім ціліinfo.plist

Тепер очищено проект та досягнуто, і він подається без випуску.


4

У мене був такий самий випуск у бібліотеці Google Maps, я видалив CFBundleExecutableключ всередині GMSCoreResources.bundle( Info.plist), який є чистим проектом info.plist SDK та завантажений у appstore.

Щасливе програмування.

введіть тут опис зображення


1

Просто перевірте налаштування збірки => Увімкнути біткод та встановіть його НІ


0

Ще одна примітка: інколи, якщо у вас є додаткові цілі, з'являться цільові властивості, які також можуть містити ключ (у розділі "Інформація"), тому обов'язково перевірте їх і видаліть його також звідти. Я виявив це одним із пучків, які я намагався включити. Я видалив інформацію зі списку, але продовжував отримувати помилку.


0

Якщо ви бачите цю помилку з бібліотеки, встановленої через CocoaPods, спробуйте pod update <OFFENDING POD NAME>

Це вирішило для мене проблему.



0

У моєму випадку я просто перетягую SDKв папку In містить info.plistфайл, який не використовується. Ось створити проблему для мене. Тож знайдіть невикористаний info.plistфайл та видаліть його з вихідного коду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.