Podczas weryfikacji mojej aplikacji pojawia się ten błąd:
pakiet aplikacji nie zawiera ikony w formacie ICNS, zawierającej zarówno a, jak
512x512
i512x512@2x
obraz.
Używam do tworzenia ikon icns za pomocą aplikacji Img2icns i do dziś zawsze działało poprawnie. Ale teraz otrzymuję ten błąd i nie ma sposobu, aby to zadziałało. Próbowałem połączyć dwa pliki PNG ( 512x512
i 1024x1024
) w Img2icns, ale zawsze otrzymuję ten błąd. Próbowałem również postępować zgodnie z instrukcjami zawartymi w Wytycznych dotyczących interfejsu ludzkiego systemu OS X firmy Apple, ale kiedy próbuję utworzyć zestawy ikon, otrzymuję ten błąd terminala:
-bash: błąd składni w pobliżu nieoczekiwanego tokenu „nowa linia”
Nie radzę sobie zbyt dobrze z poleceniami terminala, więc może robię coś źle. Napisałem:
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>
Gdyby ktoś mógł pomóc, byłby bardzo wdzięczny. Dzięki, Massy.
Odpowiedzi:
Sprawdź następujące instrukcje ( link ):
Innymi słowy, musisz zastąpić
<iconset filename>
ścieżką:Ponieważ ścieżka zawiera spacje, musisz użyć podwójnych cudzysłowów, na przykład:
To polecenie powinno działać poprawnie.
źródło
iconutil
Jednak prawdopodobnie nie musisz go używać . Możesz po prostu dodać zestaw ikon do swojego projektu i pozwolić Xcode przekonwertować go za Ciebie w ramach kompilacji.Oto skrypt do konwersji png 1024x1024 (o nazwie „Icon1024.png”) do wymaganego pliku icns. Zapisz go w pliku o nazwie „CreateICNS.src” w folderze, w którym znajduje się Twój plik png w terminalu „cd”, w tym samym folderze i wpisz „source CreateICNS.src”, aby go nazwać:
źródło
convert abc.png -define png:color-type=6 abc_with_alpha.png
.Chociaż używanie wszelkiego rodzaju skryptów do konwersji
PNG
obrazu wysokiej rozdzielczości do wielu różnych kopii o niskiej rozdzielczości może wydawać się przydatne (i tak jest), nie należy zapominać, że tego rodzaju automatyczna zmiana rozmiaru spowoduje, że obrazy będą dostrzegalnie niedoskonałe .Mniejsza rozdzielczość - bardziej rozmyta ikona!
To znaczy, ja
imagemagick
też kocham , ale to nie jest odpowiednie narzędzie do tego zadania!Zamiast tego powinieneś zawsze poprosić projektanta o logo w jakimś formacie wektorowym, na przykład w
SVG
. Mając to pod ręką, możesz ręcznie przygotować idealnePNG
pliki we wszystkich wymaganych rozdzielczościach, a następnie utworzyć pojedynczy.icns
plik, który sprawi, że ikona Twojej aplikacji będzie wyglądać pięknie na każdym ekranie, od taniego iPhone'a SE po niektóre wysokiej klasy wyświetlacz Retina z najnowszymi iMac. Możesz użyć Photoshopa, GIMP-a lub dowolnego innego wybranego narzędzia do wygenerowania tych plików PNG.Zgodnie z najnowszymi wytycznymi Apple dotyczącymi interfejsu użytkownika z 2020 r., Należy przygotować następujące
PNG
pliki:Po przygotowaniu wszystkich plików PNG umieść je w jakimś katalogu z
.iconset
rozszerzeniem (Logos.iconset
na przykład) i wykonaj następujące czynności zTerminal
:Jeśli po wykonaniu tego polecenia nie było błędów, wszystkie pliki zostały przetworzone poprawnie, a
Logos.icns
plik został umieszczony w tym samym katalogu, zawierającym wszystkie piękne, wyraźne logo dla Twojej aplikacji, które będzie pasować do każdego nowoczesnego ekranu.źródło
Istnieje moduł węzła wiersza poleceń, który wykonuje całą pracę związaną z konwersją pliku PNG do katalogu zestawu ikon:
źródło
Te polecenia (wprowadzone w Terminalu) pracowały dla mnie, aby przekonwertować stary plik icns do nowego formatu:
Aktualizacja
-c
Parametrem iconutil nie jest już obsługiwana. Użyj--convert
zamiast tego:źródło
Dodatkowy komentarz, kiedy tworzysz plik .icns, musisz zmienić nazwy wszystkich plików pic z prefiksem „icon_ ”, w przeciwnym razie iconutil zakończy się niepowodzeniem z komunikatem o błędzie: „.iconset: błąd: nie udało się wygenerować ICNS”. co w ogóle nie jest pouczające.
źródło
To samo, co @Henry (komentarz powyżej), ale przyjmuje jako argument nazwę pliku PNG i wyświetla ICNS o tej samej nazwie.
UWAGA: Oczekuje się, że nazwa pliku PNG będzie miała tylko 1 punkt oddzielnego rozszerzenia, np. Xpto.png.
Zatem zapisz poniższy kod w pliku o nazwie „CreateICNS.src” w folderze, w którym znajduje się plik png.
KOD :
JAK UŻYWAĆ :
Następnie w terminalu „cd” do tego samego folderu i wpisz:
gdzie {nazwa pliku PNG} to nazwa twojego pliku PNG, np. xpto.png.
Gdyby twój plik miał nazwę abc.png, użyłbyś:
źródło
Napisałem skrypt bash do tworzenia icns z pliku svg:
Upewnij się, że masz zainstalowaną aplikację imagemagick z obsługą librsvg, na komputerze Mac:
Ten scenariusz dobrze mi służył.
Aktualizacja
Dla dokładniejszego potraktowania stworzyłem narzędzie wiersza poleceń (napisane w języku Swift) do generowania
AppIcon.appiconset
z odpowiednim układem i formatem:https://github.com/kindlychung/genicon
źródło
Przereagowałem skrypt @ Henry'ego, aby wyglądał lepiej:
Aktualizacja
-c
Parametrem iconutil nie jest już obsługiwana. Użyj-—convert
zamiast tego:źródło
Dead simple .png 👉 .icns
Więcej informacji : http://eon.codes/blog/2016/12/06/Creating-an-app-icon/
Aktualizacja High Sierra
iconutil
jest teraz bardziej rygorystyczna co do rozmiaru źródłowego .png. Więcej o tym w poście po skoku. ✌️źródło
Po pierwsze, jak wspomniałem w komentarzu do odpowiedzi Anne, prawdopodobnie nie musisz używać iconutil. Powinieneś być w stanie po prostu dodać zestaw ikon do swojego projektu i pozwolić Xcode przekonwertować go za Ciebie jako część kompilacji.
Tak czy inaczej, może to być twój problem:
Nie ma rozmiaru 1024 na 1024 punktów. Element 1024 na 1024 pikseli (który był 1024 punktów przed Mountain Lion) jest teraz używany do 512 na 512 punktów przy 2x.
Twój plik PNG musi mieć odpowiednią nazwę: [email protected]
źródło
Starsza wersja Apple Icon Composer 2.2 działa dobrze, wystarczy otworzyć w niej plik .ICNS, nacisnąć przycisk 1024x1024 i dodać obraz.
źródło
Kod powłoki @ dardo82 jest dobry i działał. Oto prostszy w sh (dla wszystkich * nix) i szybszy (jak to naprawdę ma znaczenie):
źródło
Oto funkcja oparta głównie na przykładzie Henry'ego (może być przydatna w
~/.bash_profile
):Zastosowanie :
źródło
Biegać
iconutil -c icns Icon.iconset
Uwaga
icon_
Icon.icns
prawidłowy obraz, wiesz, że to działaźródło
3x
? Apple tego nie potrzebuje.Istnieją 2 zadania:
- utwórz 10 poprawnych plików icns
- spraw, aby projekt Xcode używał ich poprawnie
Ponieważ miałem godzinne problemy z obydwoma tymi zadaniami, a także nie lubię, gdy nie `` widzę '', co się dzieje, oto ścieżka dla ostrożnych:
Utwórz 10 poprawnych plików icns:
Użyłem powyższego skryptu od Henry'ego: Nadal działa on dla HighSierra i Xcode 9.2, w tym polecenie „c”.
Plik icns, który otrzymałem, pojawił się jako tylko jeden rozmiar ikony w Finderze / Quicklook, aw podglądzie pokazał tylko 8 z 10 rozmiarów.
Więc użyłem terminala, poszedłem z cd do mojego folderu i użyłem polecenia: iconutil -c iconset (nazwa pliku icns) na właśnie utworzonym pliku icns, aby przywrócić plik icns z powrotem do folderu zestawu ikon, i - lo & behold - mogłem zobaczyć moje nowo utworzone 10 plików ikon. Używając szybkiego spojrzenia na folder zestawu ikon (i używając trybu pełnoekranowego, aby móc je powiększać za pomocą suwaka), mogłem sprawdzić, czy wszystkie rozmiary wyglądają bardzo dobrze.
Na marginesie: wyglądały lepiej niż moje próby zmiany rozmiaru z PSE, najprawdopodobniej dlatego, że nie poświęciłem czasu na zabawę ze wszystkimi opcjami zmiany rozmiaru w PSE. Jeśli korzystasz z PSE, upewnij się, że pliki png są zapisywane bez profilu kolorów. Poza tym, wyznając moją ignorancję, dla mnie plik 256x256 @ 2 jest taki sam jak plik 512x512 - oba w 72dpi. Nie udało mi się zastosować się do powyższych komentarzy o rozdzielczości 144 dpi.
Uzyskaj projekt Xcode, aby używać ich poprawnie:
Najpierw usunąłem wszystkie moje bezowocne próby w Xcode i wprowadziłem czystą wersję do repozytorium git (co byłoby sprytne, byłoby najpierw zatwierdzenie czystej wersji - zanim gorączkowo uruchomiłem ikonę dodatek odyssee).
Upewniłem się również, że w pliku info.plist nie ma wskaźnika powiązanego z wpisem „plik ikon” oraz że w moich ogólnych ustawieniach projektu wybrałem AppIcon dla ikon aplikacji.
Następnie dodałem katalog asset.asset, aw katalogu zasobów nowy folder AppIcons and Launch Images „AppIcons and Launch Images” dla systemu operacyjnego.
Następnie skopiowałem (przeciągnij i upuść z wciśniętą opcją) z folderu zestawu ikon każdy plik obrazu png do odpowiedniego elementu AppIcon Spaceholder. Więc znowu mogłem zobaczyć, co się dzieje. Xcode przekonwertował to na pliki icns, a może - jako mój folder zestawu ikon pochodzący z folderu icns - formaty plików zostały zaakceptowane.
Następnie zarchiwizuj i zweryfikuj, a podczas przesyłania lub sprawdzania poprawności nie będzie żadnych błędów.
źródło
Potrzebowałem tego, ale dla CMake. Chciałem też mieć możliwość nadania mu pliku SVG.
Oto sedno: https://gist.github.com/Qix-/f4090181e55ea365633da8c3d0ab5249
Oraz kod CMake:
źródło
Witam, na moje potrzeby stworzyłem droplet, który działa w samych ikonach przeciągnij i upuść lub ikon do wyszukiwania w folderze (ograniczyłem się do folderów, ponieważ wyszukiwanie w Volumes wszystkich ikon może zająć dużo czasu). Więc przeciągnij i upuść możesz upuszczać foldery lub aplikacje, wszystko, co może zawierać ikonę. Utworzony zestaw ikon nosi nazwę oryginalnej ikony, jest umieszczony w katalogu „/ aaaicones” i ścieżka do ikony. Przykład w folderze "/ aaaicones, jeśli prześlesz xcode.app, znajdziesz" /aaaicones/Applications/xcode.app/access.iconset "i /aaaicones/Applications/xcode.app/access.icns (ikona odtworzona) być plikiem tekstowym, w którym jest śledzona pełna ścieżka ikon oraz ścieżka do odpowiedniego przykładu zestawu ikon „/Applications/xcode.app/Contents/Applications/Instruments.
źródło