it-roy-ru.com

Отсутствует CFBundleIconName в выпуске приложения Xcode9 для iOS11

Я изо всех сил пытаюсь выпустить новую версию нашего приложения, используя Xcode 9, созданный с iOS 11 SDK. Архивирование и загрузка бинарного файла проходит без проблем. Сборка отображается в iTunes Connect в разделе «Активность» как «обработка», и она исчезает, и я получаю следующее электронное письмо.

Уважаемый разработчик,

Мы обнаружили одну или несколько проблем с вашей недавней доставкой за "". Для обработки вашей доставки следующие проблемы должны быть исправлено: отсутствует значение Info.plist - значение ключа Info.plist CFBundleIconName отсутствует в пакете ''. Приложения, которые предоставить значки в каталоге активов также должен предоставить этот Info.plist ключ. Для получения дополнительной информации см. http://help.Apple.com/xcode/mac/current/#/dev10510b1f7 . Раз эти проблемы были исправлены, вы можете повторно исправить двоичный файл. С уважением, команда App Store

Ссылка дает некоторую информацию о комплектах активов. Я попытался установить ключ CFBundleIconName на имя проекта или имя файла изображения и снова отправил приложение. Тем не менее, я все равно получаю то же письмо, что и выше. 

Любое предложение о помощи будет высоко оценено.

59
ErAcube

Я понял, что поскольку сборки Xcode 9 для iOS 11 требуют, чтобы значок приложения iTunes Connect был связан с самим двоичным файлом, который мог быть добавлен непосредственно в iTunes Connect в более ранних версиях Xcode (ранее XCode 8.3.3).

Если вы распространяете свое приложение через App Store, добавьте App Store значок каталога ресурсов, расположенного в проекте Xcode. Расположение значок отличается в зависимости от платформы.

Для приложений iOS и watchOS, созданных с использованием Xcode 8.3.3 и более ранних версий, добавьте значок App Store в iTunes Connect. Для приложений MacOS и TVOS вы добавляете значок App Store для проекта Xcode, но местоположение в активе Каталог отличается от приложений, созданных с помощью Xcode 9 и более поздних версий.

Требуемый значок App Store должен быть размещен в каталоге ресурсов, расположенном в комплекте приложений.

 Adding App Store Icon

Таким образом, CFBundleIconName теперь должен быть установлен в AppIcon (значение по умолчанию) или любое заданное вами значение.

Добавление только этого изображения не пройдет процесс загрузки iTunes Archive, поэтому нам нужно добавить все изображения значков приложений следующих размеров:

  • 20pt 1x, 2x, 3x
  • 29pt 1x, 2x, 3x
  • 40pt 1x, 2x, 3x
  • 60pt 1x, 2x, 3x
  • 76pt 1x, 2x
  • 85,5pt 2x
  • 1024pt 1x

Итак, теперь пришло время использовать каталог ресурсов для указания значков приложений. 

30
ErAcube

Я боролся с этим весь день и всю ночь, пробуя каждую перестановку, которую только мог придумать, и, наконец, нашел это решение - надеюсь, это спасет кого-то от прохождения этого кошмара.

Мое приложение ранее не использовало каталог xcassets, поэтому я добавил его в проект, пытаясь решить эту проблему, используя File - New - File ... и выбирая каталог активов из типов файлов - я назвал его Assets.xcassets и выбрал его в проекте xcode. Затем щелкните правой кнопкой мыши в области справа и выберите добавление значков приложений и изображений запуска, затем значок приложения для iOS, а затем перетащите изображение 1024x1024 в лунку для слота iOS 1024pt магазина приложений, который, как вы думаете, сработал бы. но я все еще получил отклоненные электронные письма после архивирования и отправки в магазин.

Отсутствует значение Info.plist - в пакете отсутствует значение для ключа Info.plist CFBundleIconName. бла бла бла ...

Я также добавил ключ в Info.plist для «Имени значка», который также известен как CFBundleIconName, и установил для него строковое имя файла, которое соответствует моему изображению 1024x1024 в проекте. Но ничего из этого не сработало, хотя проверка содержимого IPA показала все правильно на месте.

наконец, я удалил AppIcon из своего каталога Assets.xcassets, чтобы он был пустым, и сделал следующее, чтобы устранить проблему:

Перейдите к основному параметру приложения, щелкнув имя приложения и выбрав вкладку «ОБЩИЕ», затем в разделе «Значки приложений и изображения запуска» нажмите кнопку рядом с источником значков приложений и выберите использование каталога активов - выберите имя своего ресурса каталог - мой назывался Assets.xcassets - и, скажем, для преобразования (переноса) приложения с помощью кнопки в этом всплывающем окне - я также установил флажок для преобразования изображений запуска - когда вы закончите, источник значков приложений и источник запуска изображений будут есть имена в выпадающем списке.

перейдите в каталог ресурсов, щелкнув по нему - снова у меня был Assets.xcassets, а затем щелкните по разделу AppIcon и перетащите изображение 1024x1024 в лунку/слот App Store iOS 1024pt. заархивируйте свое приложение в последний раз и отправьте его в магазин приложений - в этот момент, надеюсь, больше не будут получать письма из ада, когда я начал звонить им об отклонении вашего приложения, и вы можете вернуться в iTunesConnect, чтобы отправить свое приложение.

Удачи - я сочувствую боли, которую вы, возможно, испытываете из-за этой в основном загадочной ошибки, когда вы попробовали множество разумных исправлений, которые просто не сработали. Такова жизнь инженера-программиста иногда ...;)

если бы это было легко, все бы так и сделали. ;)

56
Richie Hyatt

Самое простое решение - добавить ключ CFBundleIconName в plist и заполнить все фрагменты AppIcon в каталоге ресурсов.

Info.plist:

<key>CFBundleIconName</key>
<string>AppIcon</string>

 enter image description here

 enter image description here

Скачать рабочие активы AppIcons здесь

35
Guru

Приложения, созданные с помощью iOS 11 или более поздней версии SDK, должны предоставлять значки приложений в каталоге ресурсов, а также предоставлять значение для этого ключа Info.plist.

Для старых проектов без каталога ресурсов будут проблемы при отправке в Appstore

В «Проект» -> «Свойства цели» - вкладка «Общие» -> «Значки приложений и изображение запуска» Значки приложений -> Выбрать Использовать каталог активов Затем он попросит преобразовать (перенести) с предупреждением и создаст файл .xcassets. Установите флажок для преобразования изображений запуска.
Когда вы закончите, у источника значков приложений и источника запуска изображений будут имена в раскрывающемся списке . Добавьте значки приложений и другие значки к нему.

9
Neha Vipin

Я получал одно и то же письмо, когда отправлял бинарный файл для новой версии одного из моих приложений. Я перепробовал все средства, перечисленные здесь, но ничего не получалось. Затем я сделал еще одно изменение, которое сработало.

В Цель. , , Настройки сборки. , , Компилятор каталога активов - Параметры раздел, убедитесь, что имя каталога активов, содержащего значки, отображается в Имя набора значков приложения каталога активов . По какой-то причине мое Имя набора значков приложения каталога товаров было пустым.

9
GlennRay

Теперь в IOS 11 нам нужно добавить новую иконку в нашем проекте размером 1024x1024.

Убедитесь, что файлы значков удалены из папки ресурсов в пакете исходного кода, а также очищен ключ файлов значков в info.plist . Также добавьте ключ CFBundleIconName в plist, как показано ниже

Info.plist:

<key>CFBundleIconName</key>
<string>AppIcon</string>

Также в разделе «Проект» - «Цель» -> «Параметры сборки» -> «Компилятор каталога активов» - убедитесь, что имя каталога активов, содержащего значки, отображается в «Имя набора значков приложения каталога активов». 

8
Neha Vipin

Я получил ту же проблему и решил ее следующим образом.

Вот пошаговое руководство.

Шаг 1:

Создать иконку с 1024 * 1024.png

Шаг 2:

Загрузите этот png на веб-сайт https://www.appicon.build/ и перетащите его на экран.

 enter image description here

Шаг 3:

Он попросит вас ввести свой адрес электронной почты. Введите его, а затем через несколько секунд вы получите все необходимые размеры изображений в свой почтовый ящик. Скачайте эту распакованную папку и разархивируйте ее.

Шаг 4:

Вернитесь к своему проекту на Xcode и добавьте эту разархивированную папку (называемую AppIcon.appconset) в папку ресурсов в вашем проекте xcode.

 enter image description here

Шаг 5:

Дважды щелкните папку Asset.xcassets и перетащите нужные изображения на заполнитель изображений для 2х и 3х изображений из сгенерированных изображений.

 enter image description here

Вы готовы идти! ...

7
casillas

Я тоже столкнулся с «Отсутствует значение Info.plist - в пакете отсутствует значение для ключа Info.plist CFBundleIconName ...» ошибка и хотел оставить краткий ответ, чтобы, надеюсь, помочь следующему человеку.

Приложение не использовало каталог активов. Хотя это не то, что говорит эта ошибка, это то, что требуется для решения этой проблемы, но важно, как вы добавляете значения. Недостаточно вручную добавить этот отсутствующий ключ\значение в .plist; это еще не все. Вам также необходимо удалить значение CFBundleIcons из вашего .plist. Это можно сделать вручную, но я рекомендую использовать интерфейс XCode, чтобы отредактировать его через Свойства проекта - Общие значки приложений и Образ запуска. Вот так я и получил свою работу.

Ниже приведен снимок экрана с изменениями, внесенными в мой .plist.

Обновлен .PList

Значки приложений и запуска изображений

Добавьте новый каталог активов в свой проект, если у вас его еще нет. 
Нажмите на название приложения в верхней части окна навигатора.
Выберите вкладку ОБЩИЕ 
Прокрутите вниз до раздела «Значки приложений и запуска изображений». 
Нажмите кнопку «Использовать каталог активов» 
ПРИМЕЧАНИЕ. Я создал свой собственный каталог ресурсов и набор изображений значков приложения iOS, но привязка к существующему мне не сработала, поскольку он создал новый набор изображений с пустыми значениями\изображениями. Мне пришлось удалить их все и позволить этому процессу создать их для меня. Если вы только что добавили каталог ресурсов для решения этой проблемы, позвольте этому процессу создать его для вас, не добавляйте набор изображений вручную.

Нажмите, чтобы преобразовать\перенести приложение 
После нажатия кнопки для меня ничего не обновлялось автоматически. Я ушел, а затем вернулся к экрану настроек, и теперь значения были назначены в раскрывающемся списке.

Теперь откройте свой новый каталог активов, нажав на него
Нажмите на раздел «AppIcon» и перетащите нужные изображения в соответствующие места.

Вам понадобится изображение 1024x1024 для значка App Store iOS 1024pt и любых других значков для iPhone/iPad\Universal, необходимых для приложения. Изображение 1024x1024px также называется «Значок маркетинга». Вы не можете отправить свое приложение без него.

Теперь вы сможете заархивировать свое приложение и отправить его в магазин приложений.

4
R. Bauer

Следуйте инструкциям ниже.

  1. В ваш проект добавьте новый файл >> Asset Catlog.
  2. Перейти к Нажмите на ваш проект в XCODE >> Общие >> Значки приложений. См. скриншот . Это автоматически создаст спецификации AppICon и LaunchImage внутри вашего актива, после чего вы можете перетаскивать значок Appstore и другие значки в нем.

  3. Также добавить
    <key>CFBundleIconName</key>
    <string>AppIcon</string>

Эта запись в вашем файле plist.

Загрузите ваши двоичные файлы в iTunes.

2
Pramod Chaudhari

Я наконец-то придумал чистое решение этой проблемы, которое не требует добавления ключей к info.plist, например CFBundleIconName. Я сделал это, обновляя старое приложение в магазине приложений для сборки под SDK 11.2 (и поверьте мне, было немало разочарований). Я использую Xamarin в Visual Studio на ПК, но это решение должно работать в любых других IDE или средах, например. XCode. Суть решения заключается в том, что файл info.plist и папка Resources больше не должны играть никакой роли в том, что касается значков приложений и изображений запуска. Фактически вы можете удалить ключ CFBundleIconFiles из файла info.plist, и это не будет иметь никакого значения для вашего проекта.

Вот шаги, которые вы должны выполнить:

  1. Сделайте копию значков вашего приложения и запустите изображения и храните их в отдельном месте. 
  2. Для чистого запуска удалите ссылки на значки приложений и запустите изображения из info.plist, что означает удаление значений в ключе CFBundleIconFiles. 
  3. Удалите значки приложений и запустите изображения из папки «Ресурсы».
  4. Используйте опцию удаления, чтобы удалить любые «Активы» или «Медиа», которые вы объявили в «Каталогах активов».
  5. Папка с именем Assets.xcassets или Media.xcassets (или папки с аналогичным именем .xcassets) все еще может присутствовать в вашем проекте. Они будут либо снаружи, либо внутри папки ресурсов. Удалите все папки .xcassets.
  6. Теперь откройте файл проекта в редакторе, таком как блокнот (например, .csproj в Visual Studio), и посмотрите, есть ли ссылки на файлы в папке .xcassets. Удалить все такие ссылки. Также убедитесь, что в этом файле нет ссылок, указывающих на значки приложений или изображения запуска в папке «Ресурсы», а также удалите их. 
  7. Убедитесь, что ключи XSAppIconAssets и XSLaunchImageAssets больше не присутствуют в info.plist. Удалите их, если они все еще присутствуют.
  8. На этом этапе вы удалили все предыдущие файлы или ссылки на значки приложений и запустили изображения из вашего проекта. Если они все еще присутствуют, вернитесь и удалите их. Теперь, чтобы начать заново, создайте новый 'Asset' или 'Media' в 'Asset Catalogs', который создает папку .xcassets в вашем проекте. Скопируйте значки вашего приложения (и, при необходимости, запустите изображения) из шага 1 в соответствующие папки в новой папке .xcassets. Убедитесь, что все необходимые изображения включены.
  9. Убедитесь, что info.plist теперь содержит значения ключей XSAppIconAssets (и XSLaunchImageAssets, если необходимо) для нового созданного вами «Актива». Файл вашего проекта (который является .csproj в Visual Studio) теперь должен содержать ссылки на каждое изображение, добавленное в новый «Актив». Нет необходимости в каких-либо дополнительных изображениях, кроме тех, которые требуются проектом. Я бы предложил удалить любые дополнительные изображения из ваших активов.
  10. Если вы добавили ключ с именем CFBundleIconName, как указано в других решениях, удалите этот ключ из info.plist. Это не обязательно. Теперь вы готовы отправить свое приложение в магазин.
2
Omair

Для тех, кто выше ответ не помог (потратил много времени на этот удар):

Обязательно проверьте целевое членство в вашем каталоге ресурсов! Если вы не правильно связали членство здесь, вы получите ту же самую универсальную ошибку (Apple должна что-то сделать с сообщениями об ошибках).

 enter image description here

Целевое членство должно напрямую соотноситься с целями, для которых вы используете значки. Например, я использую этот единственный каталог как для основного приложения, так и для ресурсов приложения просмотра, вы должны указать это, выбрав соответствующий элемент. 

Вам вообще не нужно редактировать список, большинство из этих ответов вводят в заблуждение. 

Надеюсь, что это помогает кому-то, кто ударил это!

2
hisairnessag3

В моей ситуации; после того, как вы проделали все это на этой странице, не забудьте снова заархивировать свой проект :)

1
Emre Sarıçiçek

Каждый разработчик приложения использует знаменитую «Icon Dog»

(обидно, они сменили название!)

 enter image description here

https://iTunes.Apple.com/us/app/app-icon-set-creator/id1052532083?mt=12

Это, несомненно, # 1 наиболее популярное приложение используется IOS дэвов, своего рода культ.

Это сразу решает все проблемы.

1
Fattie

Возникла проблема с Visual Studio 17 (v-15.2), когда вы обновите ее версию> 15.2, вы увидите заполнитель App-Icon-1024x1024 в AssetCatalog> Media> AppIcons

 enter image description here

1
ZygoteInit

Нет необходимости редактировать info.plist. Ошибки, связанные со значками, будут устранены путем заполнения всех заполнителей изображений для AppIcon в images.xcassets .

1
zeeawan

Для приложений Xcode 9.2 для iOS 11 необходимо пояснить пару моментов.

1- Эта ошибка должна быть из-за отсутствия значков активов в каталоге активов.

(Получил эту ошибку, отправив приложение без каталогов активов).

2- Эта ошибка решается путем добавления каталога активов с необходимыми значками.

(В моем случае это было приложение только для iPhone, и я добавил несколько изображений-заполнителей размером 120x и 180x).

3- Эта ошибка не связана с 1024x1024 "App Store Icon" 

(Когда вы забудете значок большего магазина, появится отдельная ошибка, а не эта ошибка).

4- Вопреки документации Apple, даже с (Xcode 9 + написано для iOS 11), вы также можете использовать веб-сайт для отправки значка App Store.

(Отдельная конкретная ошибка, упомянутая выше, вызвана отсутствием значка, а не отсутствием значка в представленной сборке).

5 - отсутствующий CFBundleIconName в Info.plist не был изменен.

0
benc

У меня также было много проблем по этому вопросу - я постоянно получал сообщение об ошибке с отсутствующим CFBundleIconName и тем, что мои значки не были найдены. Так вот моя история, может быть, она кому-нибудь поможет. Кстати, я использую Visual Studio с Xamarin. 

  1. Добавьте каталог активов в свой проект с помощью AppIcons (фактическое имя актива не важно, а только для значков приложений). Добавьте все необходимые размеры значков. Для значка «App Store» я добавил значок без @ в названии, как предлагал кто-то на форумах, но я не уверен, если это необходимо на 100%. Для создания иконок разного размера существует множество веб-сайтов и инструментов, которые могут сделать это для вас, и вам просто нужно предоставить 1024x1024. Они будут генерировать остальное.

  2. В Info.plist в разделе «Визуальные ресурсы», а затем «Значки приложений» установите источник для только что созданного актива.

  3. Теперь проверьте ваш Info.plist. Не открывайте его с помощью внешнего редактора , потому что все ваши изменения будут перезаписаны после создания проекта. Сделайте следующее - щелкните правой кнопкой мыши на Info.plist в Solution Explorer, затем выберите Open With -> Generic PList Editor.

  4. Убедитесь, что у вас есть следующие записи:

    -Property = CFBundleIconName, Type = String. Значение = Assets.xcassets/AppIcons.appiconset - Свойство = XSAppIconAssets, Type = String. Значение = Assets.xcassets/AppIcons.appiconset

  5. Обратите внимание, что Visual Studio автоматически добавляет при добавлении чего-либо «Resources/Assets.xcassets/AppIcons.appiconset» в качестве значения. Но в моем случае Каталог Активов был создан вне папки Ресурсов и, следовательно, мои значки не были найдены. Итак, проверьте, где была создана папка вашего ресурса.

  6. CFBundleIconFiles не был нужен, потому что теперь Apple использует каталог активов.

Я надеюсь, что мне помогли :)

0
Sonia

Я использовал ответ от @Omair, и он точен, однако тогда я получал ошибки, что различные значки не были найдены. Проблема заключалась в ошибке в VS2017 при создании каталога активов. При добавлении нового каталога ресурсов папка каталога создается в корневом каталоге проекта, а не в каталоге/resources. Однако запись в файле info.plist имеет путь в каталоге/resources. После того, как я удалил/resources из пути к моему каталогу активов, все заработало нормально. Надеюсь, это поможет кому-то!

0
Mark Erickson