Brak CFBundleIconName w wersji aplikacji Xcode9 iOS11

97

Mam problem z wydaniem nowej wersji naszej aplikacji przy użyciu Xcode 9 zbudowanego z iOS 11 SDK. Archiwizacja i ładowanie pliku binarnego przebiega bez problemu. Kompilacja pojawia się w iTunes Connect w sekcji Aktywność jako „przetwarzanie” i znika, a ja otrzymuję z powrotem następujący e-mail.

Szanowny Programiście,

Wykryliśmy co najmniej jeden problem z Twoją niedawną dostawą produktu „”. Aby przetworzyć dostawę, należy poprawić następujące problemy: Brak wartości Info.plist - Brak wartości klucza Info.plist CFBundleIconName w pakiecie „”. Aplikacje, które zawierają ikony w katalogu zasobów, muszą również udostępniać ten klucz Info.plist. Więcej informacji można znaleźć pod adresem http://help.apple.com/xcode/mac/current/#/dev10510b1f7 . Po rozwiązaniu tych problemów możesz ponownie dostarczyć poprawiony plik binarny. Pozdrawiamy, Zespół App Store

Link zawiera informacje o pakietach zasobów. Próbowałem ustawić klucz CFBundleIconName na nazwę projektu lub nazwę pliku obrazu i ponownie przesłałem aplikację. Jednak nadal otrzymuję ten sam e-mail, co powyżej.

Każda sugestia pomocy byłaby bardzo mile widziana.

ErAcube
źródło
2
Czy prawidłowo ustawiłeś App Icons Sourcekatalog zasobów w ogólnych ustawieniach projektu?
vmeyer
1
@vmeyer: ale co z aplikacjami, które nie używają katalogu zasobów?
user102008

Odpowiedzi:

80

Walczyłem z tym przez cały dzień i całą noc, próbując każdej permutacji, o której mogłem pomyśleć, i wreszcie znalazłem to rozwiązanie - mam nadzieję, że to uchroni kogoś przed przejściem przez ten koszmar.

Moja aplikacja nie korzystała wcześniej z katalogu xcassets, więc dodałem go do projektu, próbując rozwiązać ten problem, używając Plik - Nowy - Plik ... i wybierając katalog zasobów spośród typów plików - nazwałem go Assets.xcassets i wybrał go w projekcie xcode. Następnie kliknąłem prawym przyciskiem myszy w obszarze po prawej stronie i zdecydowałem się dodać ikony aplikacji i uruchom obrazy, a następnie ikonę nowej aplikacji na iOS, a następnie przeciągnąłem mój obraz 1024x1024 do studni gniazda 1024pt w sklepie z aplikacjami, który, jak myślisz, zadziałał. ale nadal otrzymywałem odrzucone e-maile po zarchiwizowaniu i przesłaniu do sklepu.

Brak wartości Info.plist - w pakiecie brakuje wartości klucza Info.plist CFBundleIconName. bla bla bla ...

Dodałem również klucz do Info.plist dla "Icon Name", który jest również znany przez CFBundleIconName i ustawiłem go na nazwę pliku ciągu, która pasowała do mojego obrazu 1024x1024 w projekcie. Ale nic z tego nie zadziałało, mimo że sprawdzenie zawartości IPA pokazało wszystko poprawnie.

w końcu usunąłem AppIcon z mojego katalogu o nazwie Assets.xcassets, tak aby był pusty i wykonałem następujące czynności, aby rozwiązać problem:

Przejdź do głównego ustawienia aplikacji, klikając nazwę aplikacji, a następnie wybierając kartę OGÓLNE, a następnie w sekcji Ikony aplikacji i uruchom obrazy kliknij przycisk obok źródła ikon aplikacji i wybierz opcję korzystania z katalogu zasobów - wybierz nazwę katalogu zasobów - mój nazywał się Assets.xcassets - i powiedz, aby przekonwertować (migrować) aplikację za pomocą przycisku w tym wyskakującym okienku - zaznaczyłem również pole, aby przekonwertować również obrazy uruchamiania - kiedy skończysz, źródło ikon aplikacji i źródło obrazów uruchamiania będą miały nazwy na liście rozwijanej.

przejdź do katalogu zasobów, klikając go - ponownie mój był Assets.xcassets, a następnie kliknij sekcję AppIcon i przeciągnij obraz 1024x1024 do App Store iOS 1024pt well / slot. zarchiwizuj swoją aplikację po raz ostatni i prześlij ją do sklepu z aplikacjami - mam nadzieję, że w tym momencie nie będę już otrzymywać wiadomości e-mail z piekła rodem, gdy zacząłem dzwonić do nich w sprawie odrzucenia aplikacji i możesz wrócić do iTunesConnect, aby przesłać swoją aplikację.

Powodzenia - wczuwam się w ból, który możesz odczuwać z powodu tego głównie tajemniczego błędu, gdy wypróbowałeś wiele rozsądnych poprawek, które po prostu się nie powiodły. Takie jest czasem życie inżyniera oprogramowania ...;)

gdyby to było łatwe, każdy by to zrobił, prawda. ;)

Richie Hyatt
źródło
Dokładnie, to był ból i doszedłem do tego po przeczytaniu linku bardzo spokojnie. Właściwie nie musisz usuwać poprzedniej ikony aplikacji, ale rozmiar po lewej stronie, jeśli zmienisz pole wyboru iPada, iPhone'a, otrzymasz wszystkie wymagane rozmiary.
ErAcube
2
Dzięki! walczył z tym przez długi czas! Po prostu uwielbiam to, jak błędy Apple są tak pouczające.
talsharonts
Kluczowe dla mnie było dodanie AppIcon Asset z zakładki projektu „General”. (Dziwne, utworzenie nowego katalogu zasobów, a następnie dodanie ikon aplikacji nie zadziałało.)
Jason Moore
1
Dziękuję Ci za to. Nie widziałem, żeby coś było przesyłane do iTunes Connect, chociaż ładowanie do App Store było udane. Bardzo mylące. Zwykle otrzymujesz błąd, jeśli zostawisz coś takiego od razu podczas przesyłania do sklepu.
uplearnedu.com
3
Im więcej tworzę dla iOS, tym bardziej go nienawidzę.
mike
63

Najprostszym rozwiązaniem jest dodanie klucza CFBundleIconName w plist i wypełnienie wszystkich wycinków AppIcon w katalogu zasobów.

Info.plist:

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

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Pobierz działające zasoby AppIcons tutaj

Guru
źródło
2
To zadziałało dla mnie. Dziękuję bardzo! przy okazji działa to również na VS dla Maca
acido
1
tag nadrzędny byłby miły. teraz muszę zgadnąć, gdzie idzie klucz.
Martin
34

Doszedłem do tego, że skoro Xcode 9 iOS 11 kompilacje wymagają, aby ikona aplikacji iTunes Connect była dołączona do samego pliku binarnego, który można było dodać do iTunes Connect bezpośrednio we wcześniejszych wersjach Xcode (XCode 8.3.3 ane wcześniej).

Jeśli rozpowszechniasz aplikację za pośrednictwem App Store, dodaj ikonę App Store do katalogu zasobów znajdującego się w projekcie Xcode. Lokalizacja ikony różni się w zależności od platformy.

W przypadku aplikacji na iOS i watchOS zbudowanych przy użyciu Xcode 8.3.3 i wcześniejszych należy dodać ikonę App Store w iTunes Connect. W przypadku aplikacji na systemy macOS i tvOS należy dodać ikonę App Store do projektu Xcode, ale lokalizacja w katalogu zasobów jest inna niż w przypadku aplikacji utworzonych za pomocą Xcode 9 i nowszych.

Wymaganą ikonę App Store należy umieścić w katalogu zasobów znajdującym się w pakiecie aplikacji.

Dodawanie ikony App Store

Tak więc CFBundleIconName powinien być teraz ustawiony na AppIcon (wartość domyślna) lub dowolną ustawioną wartość.

Dodanie tylko tego obrazu nie przejdzie procesu przesyłania archiwum iTunes, więc musimy dodać wszystkie obrazy ikon aplikacji o następujących rozmiarach:

  • 20 pkt 1x, 2x, 3x
  • 29 pkt 1x, 2x, 3x
  • 40 pkt 1x, 2x, 3x
  • 60 pkt 1x, 2x, 3x
  • 76 pkt 1x, 2x
  • 83,5 pkt 2x
  • 1024 pkt 1x

Nadszedł więc czas, aby użyć katalogu zasobów do określenia ikon aplikacji.

ErAcube
źródło
1
W moim przypadku (stara aplikacja zbudowana w Xamarin / Visual Studio dla komputerów Mac ) rozwiązanie było tak proste, jak migracja do katalogu zasobów . Miałem również ekran startowy jako scenorys, nie mogłem przenieść go do katalogu zasobów, więc zostawiłem to bez zmian. Wciąż narzekał na brak ikony marketingowej.
firepol
Myślę, że musisz dodać ikonę marketingową pod ikoną aplikacji, która również ma 1024 punkty. Sprawdź również, czy przesyłasz plik binarny za pomocą Xcode 9 GM, ale nie wersji beta.
ErAcube
1
Visual Studio na Macu (ex Xamarin Studio ) nie wyświetla ikony sklepu z aplikacjami / marketingu w zasobach, więc nie mogłem dodać jej za pośrednictwem interfejsu użytkownika. Zgłoszę błąd do Xamarin. Co zrobiłem: edytuj Contents.json> dodaj nazwę pliku dla ios-marketing. Musiałem dodać plik również w ImageAssetpliku csproj. Z jakiegoś powodu moje iTunesArtwork 2x nie było poprawne (używając tego samego co 1x). Nadpisałem go plikiem 1024px. Wynikowy adres IPA nie zawiera icon-marketing.png, ale przesyłanie za pomocą programu ładującego działało. Podwójne sprawdzenie: próbowano ponownie bez ikony marketingowej, ale poprawka itunesartwork: wystąpił błąd marketingowy.
firepol
1
Tutaj raport o błędzie dla Xamarin / Visual Studio dla użytkowników komputerów Mac do naśladowania: bugzilla.xamarin.com/show_bug.cgi?id=59515
firepol
15

Otrzymywałem tę samą wiadomość e-mail za każdym razem, gdy przesyłałem plik binarny dla nowej wersji jednej z moich aplikacji. Wypróbowałem wszystkie wymienione tutaj środki zaradcze, ale nic nie działało. Potem wprowadziłem jeszcze jedną zmianę, która zadziałała.

W Target. . . Ustawienia kompilacji. . . Kompilator katalogu zasobów - sekcja, upewnij się, że nazwa katalogu zasobów zawierającego ikony jest wyświetlana w polu Nazwa zestawu ikon katalogu zasobów . Z jakiegoś powodu nazwa mojego zestawu ikon aplikacji katalogu zasobów była pusta.

GlennRay
źródło
2
Naprawiono to dla mnie! Próbowałem wszystkiego innego bez skutku. Ma to również sens, ponieważ sprawdziłem pakiet .ipa po wyeksportowaniu z kompilacją adhoc i zobaczyłem, że ikony nie były tam, zanim kompilator zasobów został zmieniony na „AppIcon” określony dla „Nazwy zestawu ikon aplikacji katalogu zasobów”, która pasowała name w xcassets.
GameSalutes
11

Aplikacje utworzone za pomocą zestawu SDK systemu iOS 11 lub nowszego muszą dostarczać ikony aplikacji w katalogu zasobów, a także muszą zawierać wartość tego klucza Info.plist

W przypadku starszych projektów bez katalogu zasobów wystąpią problemy podczas przesyłania do Appstore

W Projekt -> Właściwości celu - karta Ogólne -> Ikony aplikacji i Uruchom obraz. Ikony aplikacji -> Wybierz Użyj katalogu zasobów Następnie zapyta o konwersję (migrację) z ostrzeżeniem i utworzy plik .xcassets. Zaznacz pole, aby konwertować również obrazy startowe.
Po zakończeniu, źródło ikon aplikacji i źródło obrazów uruchamiania będą miały nazwy na liście rozwijanej. Dodaj do niego ikony aplikacji i inne ikony

Neha Vipin
źródło
9

Mam ten sam problem i rozwiązałem go w następujący sposób.

Oto wytyczna krok po kroku.

Krok 1:

Utwórz ikonę z 1024 * 1024.png

Krok 2:

Prześlij ten plik png na stronę https://www.appicon.build/ i przeciągnij i upuść na ekranie.

wprowadź opis obrazu tutaj

Krok 3:

Poprosi Cię o podanie adresu e-mail. Wprowadź go, a po kilku sekundach otrzymasz wszystkie wymagane rozmiary obrazów do swojej skrzynki pocztowej. Pobierz ten spakowany folder i rozpakuj go.

Krok 4:

Wróć do swojego projektu Xcodei dodaj ten rozpakowany folder (o nazwie AppIcon.appconset) do folderu zasobów w projekcie xcode.

wprowadź opis obrazu tutaj

Krok 5:

Kliknij dwukrotnie Asset.xcassetsfolder, a następnie przeciągnij i upuść wymagane obrazy na element zastępczy obrazu dla obrazów 2x i 3x z wygenerowanych obrazów.

wprowadź opis obrazu tutaj

Możesz ruszać!...

casillas
źródło
2
Istnieje również aplikacja o nazwie Icon Set Creator w Mac App Store. Wykonuje zadanie równie łatwo i nie przesyła rzeczy do sieci.
Jarosław
Świetny post, ten zadziałał dla mnie i zaoszczędził mi dużo czasu, dzięki
andydoe
8

Teraz w IOS 11 musimy dodać nową ikonę w naszym projekcie o rozmiarze 1024x1024.

Upewnij się, że pliki ikon zostały usunięte z folderu zasobów w pakiecie kodu źródłowego, a klucz plików ikon w info.plist został wyczyszczony. Dodaj również klucz CFBundleIconName w plist, jak poniżej

Info.plist:

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

Również w sekcji Projekt - Cel -> Ustawienia kompilacji -> Kompilator katalogu zasobów - upewnij się, że nazwa katalogu zasobów, który zawiera ikony, jest wyświetlana w polu Nazwa zestawu ikon katalogu zasobów.

Neha Vipin
źródło
4

Dla każdego, komu powyższe odpowiedzi nie pomogły (spędził sporo czasu na waleniu w głowę):

Upewnij się, że sprawdziłeś docelowe członkostwo w katalogu zasobów! Jeśli nie połączysz tutaj poprawnie członkostwa, pojawi się ten sam super-ogólny błąd (Apple powinien coś zrobić z komunikatami o błędach).

wprowadź opis obrazu tutaj

Członkostwo docelowe powinno być bezpośrednio skorelowane z celami, dla których używasz ikon. Na przykład używam tego pojedynczego katalogu zarówno dla mojej aplikacji głównej, jak i zasobów aplikacji do oglądania, musisz to określić, wybierając odpowiedniego członka.

Nie musisz w ogóle edytować pliku plist, większość tych odpowiedzi jest myląca.

Mam nadzieję, że to pomoże komuś, kto to trafi!

hisairnessag3
źródło
1
O MÓJ BOŻE. Po HOURS zmagania się z tym problemem wystarczyło sprawdzić członkostwo docelowe, które z jakiegoś powodu zostało odznaczone. Wielkie dzięki.
GGirotto
4

Ja również napotkałem błąd „Brakująca wartość Info.plist - wartość klucza Info.plist CFBundleIconName brakuje w pakiecie ...” i chciałem zostawić zwięzłą odpowiedź, aby pomóc następnej osobie.

Aplikacja nie korzystała z katalogu zasobów. Chociaż nie o tym mówi ten błąd, to jest wymagane do rozwiązania tego problemu, ale sposób dodawania wartości jest ważny. Nie wystarczy ręcznie dodać brakującego klucza \ wartość do pliku .plist; to coś więcej niż tylko to. Musisz również usunąć wartość CFBundleIcons z pliku .plist. Można to zrobić ręcznie, ale polecam użycie interfejsu XCode do edycji tego za pomocą właściwości projektu - ogólne ikony aplikacji i uruchom obraz. W ten sposób dostałem swoje do pracy.

Poniżej znajduje się zrzut ekranu przedstawiający zmiany wprowadzone w mojej .plist .

wprowadź opis obrazu tutaj

Ikony aplikacji i obrazy uruchamiania
wprowadź opis obrazu tutaj

Dodaj nowy katalog zasobów do swojego projektu, jeśli jeszcze go nie masz.
Kliknij nazwę aplikacji u góry okna nawigatora
Wybierz kartę OGÓLNE
Przewiń w dół do sekcji „Ikony aplikacji i uruchom obrazy”
Kliknij przycisk „użyj katalogu zasobów”
UWAGA: Utworzyłem własny katalog zasobów i obraz ikony aplikacji na iOS zestaw, ale linkowanie do istniejącego nie zadziałało, ponieważ utworzyło nowy zestaw obrazów, który miał puste wartości \ obrazy. Musiałem je wszystkie usunąć i pozwolić temu procesowi je dla mnie utworzyć. Jeśli właśnie dodajesz katalog zasobów, aby rozwiązać ten problem, pozwól, aby ten proces utworzył go za Ciebie, nie dodawaj ręcznie zestawu obrazów.

Kliknij, aby przekonwertować \ migrować aplikację
Po kliknięciu przycisku nic nie odświeżyło się automatycznie. Wyszedłem i wróciłem do ekranu ustawień, a wartości zostały teraz przypisane na liście rozwijanej.

Teraz otwórz nowy katalog zasobów, klikając go.
Kliknij sekcję „AppIcon” i przeciągnij wymagane obrazy w odpowiednie miejsca.

Będziesz potrzebować obrazu 1024x1024 dla ikony App Store iOS 1024pt i wszelkich innych wymaganych ikon aplikacji iPhone \ iPad \ Universal. Obraz o rozdzielczości 1024x1024 pikseli jest również nazywany ikoną marketingową. Bez niej nie możesz przesłać aplikacji.

Teraz powinno być możliwe zarchiwizowanie aplikacji i przesłanie jej do sklepu z aplikacjami.

R. Bauer
źródło
3

Wykonaj poniższe kroki.

  1. W swoim projekcie dodaj nowy plik >> Asset Catlog.
  2. Idź do. Kliknij swój projekt w XCODE >> Ogólne >> Ikony aplikacji. Zobacz zrzut ekranu . Spowoduje to automatyczne utworzenie specyfikacji AppICon i LaunchImage w Twoim zasobie, po czym możesz przeciągnąć i upuścić ikonę Appstore i inne ikony.

  3. Dodaj także .
    <key>CFBundleIconName</key>
    <string>AppIcon</string>

Ten wpis w twoim pliku plist.

Prześlij swoje pliki binarne do Itunes.

Pramod Chaudhari
źródło
(Xcode 9, opisana sekcja „Ogólne” pojawia się tylko dla celu, a nie projektu ...)
benc
2

W końcu znalazłem czyste rozwiązanie tego problemu, które nie wymaga dodawania żadnych kluczy do info.plist, takich jak CFBundleIconName. Zrobiłem to podczas aktualizacji starej aplikacji w sklepie z aplikacjami, aby zbudować ją na SDK 11.2 (i uwierz mi, było to dość frustrujące). Używam Xamarin w Visual Studio na PC, ale to rozwiązanie powinno działać w każdym innym IDE lub frameworku np. XCode. Istotą rozwiązania jest to, że plik info.plist i folder zasobów nie muszą już odgrywać żadnej roli, jeśli chodzi o ikony aplikacji i obrazy uruchamiania. W rzeczywistości możesz usunąć klucz CFBundleIconFiles z pliku info.plist i nie będzie to miało żadnego znaczenia dla twojego projektu.

Oto kroki, które musisz wykonać:

  1. Skopiuj ikony aplikacji, uruchom obrazy i przechowuj je w oddzielnej lokalizacji.
  2. Aby uzyskać czysty start, usuń odniesienia do ikon aplikacji i uruchom obrazy z info.plist, co oznacza usunięcie wartości w kluczu CFBundleIconFiles.
  3. Usuń ikony aplikacji i uruchom obrazy z folderu Zasoby.
  4. Użyj opcji usuwania, aby usunąć wszystkie „Zasoby” lub „Media” zadeklarowane w „Katalogach zasobów”.
  5. Folder o nazwie Assets.xcassets lub Media.xcassets (lub podobnie nazwany .xcassets foldery) może nadal znajdować się w Twoim projekcie. Znajdowałyby się na zewnątrz lub w folderze Zasoby. Usuń wszystkie foldery .xcassets.
  6. Teraz otwórz plik projektu w edytorze, takim jak notatnik (np. .Csproj w programie Visual Studio) i sprawdź, czy są jakieś odniesienia wskazujące na pliki w folderze .xcassets. Usuń wszystkie takie odniesienia. Sprawdź również, czy nie ma odniesień wskazujących na ikony aplikacji lub uruchom obrazy w folderze Zasoby w tym pliku i również je usuń.
  7. Sprawdź, czy klucze XSAppIconAssets i XSLaunchImageAssets nie są już obecne w info.plist. Usuń je, jeśli nadal są obecne.
  8. W tym momencie usunąłeś wszystkie poprzednie pliki lub odniesienia do ikon aplikacji i uruchomiłeś obrazy z projektu. Jeśli nadal są obecne, wróć i usuń je. Teraz, aby zacząć od nowa, utwórz nowy „Zasób” lub „Media” w „Katalogach zasobów”, który utworzy folder .xcassets w Twoim projekcie. Skopiuj ikony aplikacji (i uruchom obrazy, jeśli to konieczne) z kroku 1 do odpowiednich folderów w nowym folderze .xcassets. Upewnij się, że uwzględniono wszystkie wymagane obrazy.
  9. Sprawdź, czy info.plist zawiera teraz wartości klucza XSAppIconAssets (i XSLaunchImageAssets, jeśli to konieczne) dla nowo utworzonego zasobu. Plik projektu (który jest .csproj w programie Visual Studio) powinien teraz zawierać odwołania do każdego obrazu dodanego do nowego „Zasobu”. Nie ma potrzeby umieszczania dodatkowych obrazów poza tymi, które są wymagane w projekcie. Sugerowałbym usunięcie wszelkich dodatkowych obrazów z twoich zasobów.
  10. Jeśli dodałeś klucz o nazwie CFBundleIconName, jak wspomniano w innych rozwiązaniach, usuń ten klucz z info.plist. Nie jest to wymagane. Teraz możesz przesłać swoją aplikację do sklepu.
Omair
źródło
1

Nie ma potrzeby edytowania info.plist. Błędy związane z ikonami można rozwiązać, wypełniając wszystkie symbole zastępcze obrazów dla AppIcon w plik images.xcassets .

zeeawan
źródło
1

Wystąpił problem z programem Visual Studio 17 (v-15.2), gdy zaktualizujesz go w wersji> 15.2, zobaczysz element zastępczy App-Icon-1024x1024 w AssetCatalog> Media> AppIcons

wprowadź opis obrazu tutaj

ZygoteInit
źródło
Czy możesz podać kontekst? Nie jestem pewien, dlaczego wersje programu Visual Studio są powiązane z tym tematem ...
benc
1

W mojej sytuacji; po wykonaniu tych wszystkich czynności na tej stronie nie zapomnij ponownie zarchiwizować swojego projektu :)

Emre Sarıçiçek
źródło
0

W przypadku aplikacji Xcode 9.2 na iOS 11 należy wyjaśnić kilka kwestii.

1- Ten błąd powinien wynikać z braku zasobów ikon w katalogu zasobów.

(Wystąpił ten błąd, przesyłając aplikację bez katalogów zasobów).

2- Ten błąd można rozwiązać, dodając katalog zasobów z wymaganymi ikonami.

(W moim przypadku była to aplikacja tylko na iPhone'a i dodałem kilka obrazów zastępczych, które były 120x i 180x).

3- Ten błąd nie jest związany z „ikoną App Store” 1024x1024

(Gdy zapomnisz o większej ikonie sklepu, wyświetli się osobny, konkretny błąd, a nie ten błąd).

4- W przeciwieństwie do dokumentacji Apple, nawet z (Xcode 9 + napisanym dla iOS 11) możesz również użyć strony internetowej do przesłania ikony App Store.

(Oddzielny konkretny błąd wspomniany powyżej jest spowodowany brakiem ikony, a nie brakiem ikony w przesłanej kompilacji).

5- Brakujący CFBundleIconName w Info.plist nie został zmieniony.

benc
źródło
Jaka jest różnica między brakiem a brakiem? możesz wytłumaczyć?
dFlat
Jeśli już przesłałeś ikonę do wpisu sklepu, przesłanie aplikacji bez ikony w kompilacji będzie działać ...
benc
0

Miałem też sporo problemów w tej sprawie - ciągle otrzymywałem błąd z brakującą nazwą CFBundleIconName i że moje ikony nie zostały znalezione. Oto moja historia, może to komuś pomoże. Nawiasem mówiąc, używam Visual Studio z Xamarin.

  1. Dodaj katalog zasobów do projektu za pomocą AppIcons (rzeczywista nazwa zasobu nie jest ważna, ale tylko to, że dotyczy ikon aplikacji). Dodaj wszystkie niezbędne rozmiary ikon. Do ikony „App Store” dodałem ikonę bez @ w nazwie, jak ktoś zasugerował na forach, ale nie jestem pewien, czy jest to w 100% konieczne. Aby wygenerować ikony o różnych rozmiarach, istnieje wiele witryn internetowych i narzędzi, które mogą to zrobić za Ciebie. Wystarczy podać rozmiar 1024x1024. Resztę wygenerują.

  2. W Info.plist w sekcji „Zasoby wizualne”, a następnie „Ikony aplikacji” ustaw źródło na właśnie utworzony zasób.

  3. Teraz sprawdź swoją Info.plist. Nie otwieraj go za pomocą zewnętrznego edytora , ponieważ wszystkie zmiany zostaną nadpisane po zbudowaniu projektu. Wykonaj następujące czynności - kliknij prawym przyciskiem myszy na Info.plist w Eksploratorze rozwiązań, a następnie wybierz Otwórz za pomocą -> Generic PList Editor.

  4. Sprawdź, czy masz następujące wpisy:

    -Property = CFBundleIconName, Type = String. Wartość = Assets.xcassets / AppIcons.appiconset -Property = XSAppIconAssets, Type = String. Wartość = Assets.xcassets / AppIcons.appiconset

  5. Zwróć uwagę, że program Visual Studio automatycznie dodaje, gdy dodaje coś w całości, „Resources / Assets.xcassets / AppIcons.appiconset” jako wartość. Ale w moim przypadku Katalog zasobów został utworzony poza folderem Zasoby i dlatego moje ikony nie zostały znalezione. Sprawdź więc, gdzie został utworzony folder zasobów.

  6. CFBundleIconFiles nie było potrzebne, ponieważ Apple używa teraz katalogu zasobów.

Mam nadzieję, że pomogłem :)

Sonia
źródło
0

Skorzystałem z odpowiedzi @Omair i jest na miejscu, jednak wtedy pojawiały się błędy, że nie znaleziono różnych ikon. Problem polegał na błędzie w VS2017 podczas tworzenia katalogu zasobów. Podczas dodawania nowego katalogu zasobów folder katalogu jest tworzony w katalogu głównym projektu, a nie w katalogu / resources. Jednak wpis w info.plist ma ścieżkę w sekcji / resources. Po usunięciu / zasoby ze ścieżki do mojego katalogu zasobów wszystko działało dobrze. Mam nadzieję, że to komuś pomoże!

Mark Erickson
źródło
0

Odpowiem w zakresie Xamarin w celu rozwiązania tego problemu - który jest podobny, ale nie identyczny z Xcode. Korzystanie ze społeczności VisualStudio (16.6 Windows / 8.6.1 macOS) z Xcode 11 zainstalowanym na macOS

Dodanie CFBundleIconName do Info.plist nie pomaga, ten klucz nie jest już używany (w kompilacjach przeznaczonych dla iOS 11 i nowszych używany jest tylko Assets.xcassets - może to być również Media.xcassets, wybierasz cokolwiek chcesz, ale będę odnosił się do tego jako Assets.xcassets).

Mój problem polegał na tym, że chociaż wyglądało to ładnie w widoku Assets.xcassets, obrazy nie były poprawne. Gdy tylko spróbowałem ręcznie je naprawić, wystąpił błąd formatu.

Xamarin obsługuje, no cóż ... powiedzmy myląco Asset.xcassets do pliku .csproj. Czasami odwołanie do pliku Contents.json nie wystarcza do opisania wszystkich zasobów, musisz też zaimportować każdy plik, aby mógł działać na komputerze PC, ale nie na komputerze Mac i odwrotnie. Jest miejsce na usprawnienie zarządzania zasobami między Visual Studio PC, Visual Studio Mac i Xcode.

Ponownie wygenerowałem wszystkie ikony i ręcznie wstawiłem jedną po drugiej do widoku Assets.xcassets.

Oczywiście dodatkowo w Info.plist trzeba mieć następujący klucz:

<key>XSAppIconAssets</key>
<string>Media.xcassets/AppIcons.appiconset</string>

Potem odbudowałem wszystko i voila, zadziałało.

Wskazówka, aby sprawdzić, czy ikony są generowane poprawnie przed przesłaniem do AppStoreConnect, należy wdrożyć do symulatora lub w narzędziu Xcode-> Organizer, aby sprawdzić, czy IPA ma odpowiednią ikonę. W przeciwnym razie jest to program „bez ikony” i nie będzie dobrze.

Ponadto niektóre strony internetowe do generowania ikon aplikacji nie zawierają wszystkiego, czego potrzebowałem. Wreszcie użyłem tego do szybkich testów (ale wolę narzędzie lokalne - patrz wyżej): https://www.iconsgenerator.com/Home/AppIcons

Ponadto, ponieważ możesz mieć problem z przesyłaniem bez Launchimage (związanego ze scenorysem, a także przechowywanego w Asset.xcassets, istnieje wspaniała aplikacja umożliwiająca zarówno generowanie ikon aplikacji, jak i obrazów uruchamiania: https://github.com/raphaelhanneken/iconizer

Graveen
źródło
0

W moim przypadku problem polegał na tym, że miałem obraz PNG dla ikony marketingowej App Store (1024x),

Musisz użyć jpeg, nieprzezroczystego obrazu dla tej ikony App Store (1024x), a problem zniknął.

mahen3d
źródło
0

Nic powyżej nie działało dla mnie. Musiałem usunąć wartość dla Development Assetsz ustawień kompilacji.

Borut Tomazin
źródło