Когда я проверяю свое приложение, я получаю эту ошибку:
пакет приложения не содержит значка в формате ICNS, содержащего как изображение, так
512x512
и512x512@2x
изображение.
Я использую для создания иконок icns с приложением Img2icns , и до сегодняшнего дня он всегда работал правильно. Но теперь я получаю эту ошибку, и нет возможности заставить ее работать. Я пытался объединить два файла PNG ( 512x512
и 1024x1024
) в Img2icns, но всегда получаю эту ошибку. Я также пытался следовать инструкциям в руководстве Apple OS X Human Interface Guideline, но когда я пытаюсь создать наборы значков, я получаю эту ошибку терминала:
-bash: синтаксическая ошибка рядом с неожиданным токеном новой строки
Я не очень хорошо разбираюсь в командах терминала, так что, возможно, я что-то делаю не так. Я написал:
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>
Если бы кто-нибудь мог помочь, это было бы очень признательно. Спасибо, Масси.
Ответы:
Ознакомьтесь со следующими инструкциями ( ссылка ):
Другими словами, вам нужно заменить
<iconset filename>
на путь:Поскольку путь содержит пробелы, вам нужно использовать двойные кавычки, например:
Эта команда должна работать правильно.
источник
iconutil
. Вы можете просто добавить набор значков в свой проект и позволить Xcode преобразовать его за вас как часть сборки. Об этом рассказывается в предыдущем (очень коротком) разделе: developer.apple.com/library/mac/documentation/GraphicsAnimation/…Вот сценарий для преобразования PNG 1024x1024 (с именем «Icon1024.png») в требуемый файл icns. Сохраните его в поле с именем CreateICNS.src в папке, где находится ваш png-файл, затем на компакт-диске терминала в той же папке и введите «source CreateICNS.src», чтобы вызвать его:
источник
convert abc.png -define png:color-type=6 abc_with_alpha.png
.Хотя использование всевозможных скриптов для преобразования
PNG
изображения с высоким разрешением в плеяду различных копий с низким разрешением может показаться удобным (и это действительно так), не следует забывать, что такое автоматическое изменение размера будет отображать заметно несовершенные изображения .Меньше разрешение - более размытый значок!
То есть, я
imagemagick
тоже люблю , но это не тот инструмент для этой задачи!Вместо этого вы всегда должны запрашивать у своего дизайнера логотип в каком-либо векторном формате, например, в формате
SVG
. Имея это под рукой, вы можете вручную подготовить идеальныеPNG
файлы во всех требуемых разрешениях, а затем создать один.icns
файл, который заставит значок вашего приложения выглядеть красиво на каждом экране, от дешевого iPhone SE до какого-нибудь высококачественного дисплея Retina последней версии. iMac. Вы можете использовать Photoshop, GIMP или любой другой инструмент по вашему выбору для создания этих PNG.В соответствии с последними рекомендациями Apple по интерфейсу пользователя от 2020 года вы должны подготовить следующие
PNG
файлы:После того, как все файлы PNG подготовлены, поместите их в какой-нибудь каталог с
.iconset
расширением (Logos.iconset
например) и выполните следующее изTerminal
:Если после выполнения этой команды ошибок не было, значит, все файлы были обработаны правильно, и вы получили
Logos.icns
файл в том же каталоге, содержащий все красивые четкие логотипы для вашего приложения, которые подойдут для любого современного экрана.источник
Есть модуль узла командной строки, который выполняет всю работу по преобразованию файла PNG в каталог набора значков:
источник
Эти команды (введенные в Терминале) помогли мне преобразовать старый файл icns в новый формат:
Обновить
-c
Параметр iconutil больше не поддерживается.--convert
Вместо этого используйте :источник
Дополнительный комментарий: когда вы создаете файл .icns, вам необходимо переименовать все файлы изображений с префиксом «icon_ », иначе iconutil выйдет из строя с сообщением об ошибке: «.iconset: error: Failed to generate ICNS.» что совсем не информативно.
источник
То же, что @Henry (комментарий выше), но принимает в качестве аргумента имя файла PNG и выводит ICNS с тем же именем.
ПРИМЕЧАНИЕ. Предполагается, что имя файла PNG должно иметь только 1 точку для разделения расширения, то есть xpto.png.
Итак, сохраните приведенный ниже код в поле под названием «CreateICNS.src» в папке, где находится ваш файл png.
КОД:
КАК ПОЛЬЗОВАТЬСЯ :
Затем в терминале "cd" в ту же папку и введите:
где {PNG filename} - это имя вашего PNG-файла, например xpto.png.
Если ваш файл будет называться abc.png, вы должны использовать:
источник
Я написал сценарий bash для создания icns из файла svg:
Убедитесь, что у вас установлен imagemagick с поддержкой librsvg на Mac:
Этот сценарий сослужил мне хорошую службу.
Обновить
Для более тщательного рассмотрения я создал инструмент командной строки (написанный на Swift) для генерации
AppIcon.appiconset
с правильным макетом и форматом:https://github.com/kindlychung/genicon
источник
Я переработал сценарий @Henry, чтобы он выглядел лучше:
Обновить
-c
Параметр iconutil больше не поддерживается.-—convert
Вместо этого используйте :источник
Dead simple .png 👉 .icns
Дополнительная информация : http://eon.codes/blog/2016/12/06/Creating-an-app-icon/
Обновление High Sierra
iconutil
теперь более строго относится к размеру исходного файла .png. Подробнее об этом в сообщении в блоге после прыжка. ✌️источник
Во-первых, как я уже упоминал в комментарии к ответу Анны, вам, вероятно, не нужно использовать iconutil. Вы должны иметь возможность просто добавить набор значков в свой проект и позволить Xcode преобразовать его для вас как часть сборки.
В любом случае, это может быть ваша проблема:
Нет размера 1024 на 1024 пункта. Элемент 1024 на 1024 пикселя (который был 1024 точек до Mountain Lion) теперь используется для 512 на 512 точек @ 2x.
Ваш PNG-файл должен называться соответствующим образом: icon_512x512@2x.png
источник
Более старая версия Apple Icon Composer 2.2 работает нормально, вы просто открываете в ней .ICNS, нажимаете кнопку 1024x1024 и добавляете свое изображение.
источник
Код оболочки @dardo82 хорош и работает. Вот более простой вариант в sh (для всех * nix) и более быстрый (как будто это действительно важно):
источник
Вот функция, в основном основанная на примере Генри (может быть полезна
~/.bash_profile
):Использование :
источник
Бегать
iconutil -c icns Icon.iconset
Заметка
icon_
Icon.icns
правильное изображение, вы знаете, что это работаетисточник
3x
? Apple этого не требует.Есть 2 задачи:
- создать 10 правильных файлов icns
- заставить ваш проект Xcode использовать их правильно
Поскольку у меня были часовые проблемы с обеими этими задачами, а также я не люблю, когда я не «вижу», что происходит, вот путь для осторожных:
Создайте 10 правильных файлов icns:
я использовал приведенный выше сценарий от Генри: он все еще работает для HighSierra и Xcode 9.2, включая команду 'c'.
Файл icns, который я получил, в Finder / Quicklook выглядел как значок одного размера, а в предварительном просмотре отображалось только 8 из 10 размеров.
Итак, я использовал терминал, пошел с cd в свою папку и использовал команду: iconutil -c iconset (icns filename) в только что созданном файле icns, чтобы вернуть файл icns обратно в папку набора значков, и - о чудо - я мог видеть мои недавно созданные 10 файлов значков. Используя Быстрый просмотр папки набора значков (и используя полноэкранный режим, чтобы иметь возможность масштабировать их с помощью ползунка), я мог проверить, что все размеры на самом деле выглядят очень хорошо.
Кстати: они выглядели лучше, чем мои попытки изменения размера с помощью PSE, скорее всего потому, что я не нашел времени, чтобы поиграть со всеми параметрами изменения размера в PSE. Если вы все же используете PSE, убедитесь, что ваши файлы png сохранены без цветового профиля. Кроме того, признаюсь в своем невежестве, для меня файл 256x256 @ 2 - это то же самое, что файл 512x512 - оба с разрешением 72dpi. Попытка следовать приведенным выше комментариям с разрешением 144 dpi не сработала.
Заставьте ваш проект Xcode использовать их правильно:
сначала я удалил все свои бесплодные попытки в Xcode и зафиксировал чистую версию в репозитории git (что было бы умно, было бы сначала зафиксировать чистую версию - до того, как я отчаянно запустил значок дополнение одиссея).
Я также убедился, что в файле info.plist нет указателя, связанного с записью «файл значка», и что в моих общих настройках проекта я выбрал AppIcon для значков приложений.
Затем я добавил каталог assets.asset и в каталог ресурсов новую папку AppIcons and Launch Images для ОС.
Затем я скопировал (перетащите с нажатой опцией) из папки набора значков каждый файл изображения png в соответствующий AppIcon Spaceholder. Итак, снова я мог видеть, что происходит. Xcode действительно преобразовал это в файлы icns, или, может быть, - поскольку моя папка набора значков была получена из папки icns - форматы файлов были приняты.
Затем заархивируйте и подтвердите, и при загрузке или проверке ошибок не будет.
источник
Мне это было нужно, но для CMake. Я также хотел дать ему SVG.
Вот суть: https://gist.github.com/Qix-/f4090181e55ea365633da8c3d0ab5249
И код CMake:
источник
Здравствуйте, для своих нужд я сделал каплю, которая работает только с перетаскиванием значков или значков для поиска в папке (я ограничился папками, так как поиск в томах всех значков может занять много времени). Таким образом, перетаскивая мышью, вы можете оставлять папки или приложения, все, что может содержать значок. Созданный набор значков носит имя исходного значка, он помещается в каталог «/ aaaicones» и путь к значку. Пример в папке "/ aaaicones", если вы отправите xcode.app, вы найдете "/aaaicones/Applications/xcode.app/access.iconset" и /aaaicones/Applications/xcode.app/access.icns (воссозданный значок) там будут быть текстовым файлом, в котором прослеживается полный путь к значкам, И путь к соответствующему примеру набора значков "/Applications/xcode.app/Contents/Applications/Instruments.
источник