Неожиданный ключ CFBundleExecutable
Проведя некоторое время по поиску в Google, что-то подсказывает мне, что проблема новая.
У нас был полностью функциональный проект, поддерживающий iOS7-8. Конечно, это было несколько раз успешно отправлено в AppStore.
Мы используем контейнеры, много отслеживания и мониторинга, такие как GA и Instabug.
Теперь мы решили отправить версию приложения, созданного на Xcode 7 на iOS 9, в TestFlight.
Мы отключили биткод, так как многие контейнеры, такие как Flurry и другие готовые библиотеки, не включают его.
Сборка прошла успешно, после подачи в iTunesConnect мы получим следующее:
![введите описание изображения здесь]()
Мы имели то же самое для библиотеки GoogleAppIndexing (также в контейнерах), но мы удалили ее, просто чтобы она работала. Теперь - Instabug. Это заходит слишком далеко, поэтому я пытаюсь понять, что происходит в iOS 9, и каковы изменения, которые привели к тому, что полностью рабочий проект начал бросать такие ошибки.
Любые мысли и идеи приветствуются! Пожалуйста, поделитесь своим опытом, и если я что-то пропущу, я с радостью поделюсь своими шагами.
Ответы
Ответ 1
Сегодня я столкнулся с той же проблемой с тем же самым точным сообщением об ошибке при попытке отправить наше приложение (используя Xcode 7 beta 5), но вместо бит instabug.bundle
это было для меня TencentOpenApi_IOS_Bundle.bundle
.
Я решил проблему, найдя именованный пакет в проекте, а затем, как и сообщение об ошибке, отредактировал Info.plist
, который находится в комплекте, удалив ключ CFBundleExecutable
. Клавиша CFBundlePackageType
уже установлена на BNDL
, поэтому я ее не трогал.
После этих изменений я сделал Product > Clean, а затем без проблем отправил приложение в App Store.
Надеюсь, это поможет.
Ответ 2
Обнаружено это с помощью AviarySDK
в Xcode 7 GM, при этом он отправляется в App Store.
Сначала я проверил бы, есть ли у вас последняя версия вашей библиотеки - возможно, этот поставщик уже исправил это. Однако, если вы все еще сталкиваетесь с этой проблемой, поскольку Sleiman описывает, что вам нужно удалить ключ CFBundleExecutable
из файла plist для повреждающей библиотеки.
Cmd + Shift + O и введите "Info.plist", вы можете найти соответствующий файл:
![введите описание изображения здесь]()
После редактирования plist вы можете видеть дескриптивные имена (вместо CFBundleExecutable
и других ключей. Я не мог редактировать этот файл во внешнем редакторе, поэтому мне пришлось переключиться на просмотр исходных ключей/значений по праву -Изменение списка:
![введите описание изображения здесь]()
Теперь вы можете увидеть клавишу CFBundleExecutable
(которая имеет описание "Исполняемый файл" ), которую вы можете удалить.
Для AviarySDK я сделал это дважды, один раз для каждого Info.plist
, увиденного на приведенном выше изображении, и затем смог успешно отправить.
Ответ 3
Я решаю эту проблему следующим образом:
Мы должны удалить все "Исполняемые файлы" следующих пакетов:
- GooglePlus.bundle
- GPPCommonSharedResources.bundle
- GPPShareboxSharedResources.bundle
Убедитесь, что "Bundle type code" равен BNDL
Важно: ничего не редактируйте в основном файле info.plist.
Прикрепленные экраны, поскольку они должны быть его "info.plist", перечисленные выше каждого пакета.
![введите описание изображения здесь]()
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Ответ 4
Вот что сработало для меня
- Apple-Shift-F, поиск CFBundleExecutable
- Нажмите каждый из них, кроме "PODS" или вашей основной цели.
- Удалить его (удалить ключ)
![введите описание изображения здесь]()
Ответ 5
Если сборка представлена через Меньше (<) Xcode 7.0, она будет отправлена, а также
Я решил это следующим образом: Xcode 7:
Искал info.plist
в проектах Project Navigator, как показано на следующем рисунке:
![введите описание изображения здесь]()
Теперь эти файлы info.plist
были открыты один за другим и удалены ключ BundleExecutable
EXCEPT целевой info.plist
Теперь очищается проект и достигается, и он отправляется без проблем.
Ответ 6
У меня была такая же проблема в библиотеке Карт Google, и я удалил ключ CFBundleExecutable
внутри GMSCoreResources.bundle
(Info.plist
), который является чистым проектом SDK info.plist и загружается в appstore.
Счастливое программирование.
![введите описание изображения здесь]()
Ответ 7
Просто проверьте настройки Build Settings = > Enable Bitcode и установите NO
Ответ 8
Еще одно примечание: иногда, если у вас есть дополнительные цели, будут целевые свойства, которые могут также включать ключ (в разделе "Информация" ), поэтому обязательно проверьте их и удалите из него. Я обнаружил это с одним из пакетов, которые я пытался включить. Я удалил информацию из plist, но продолжал получать ошибку.
Ответ 9
Если вы видите эту ошибку из библиотеки, установленной через CocoaPods, попробуйте pod update <OFFENDING POD NAME>
Это решило проблему для меня.