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.
App Icons Source
katalog zasobów w ogólnych ustawieniach projektu?Odpowiedzi:
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. ;)
źródło
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>
Pobierz działające zasoby AppIcons tutaj
źródło
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).
Wymaganą ikonę App Store należy umieścić w katalogu zasobów znajdującym się w pakiecie aplikacji.
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:
Nadszedł więc czas, aby użyć katalogu zasobów do określenia ikon aplikacji.
źródło
Contents.json
> dodaj nazwę pliku dlaios-marketing
. Musiałem dodać plik również wImageAsset
pliku 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.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.
źródło
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
źródło
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.
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
Xcode
i dodaj ten rozpakowany folder (o nazwie AppIcon.appconset) do folderu zasobów w projekcie xcode.Krok 5:
Kliknij dwukrotnie
Asset.xcassets
folder, a następnie przeciągnij i upuść wymagane obrazy na element zastępczy obrazu dla obrazów 2x i 3x z wygenerowanych obrazów.Możesz ruszać!...
źródło
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.
źródło
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).
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!
źródło
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 .
Ikony aplikacji i obrazy uruchamiania
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ódło
Wykonaj poniższe kroki.
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.
Dodaj także .
<key>CFBundleIconName</key>
<string>AppIcon</string>
Ten wpis w twoim pliku plist.
Prześlij swoje pliki binarne do Itunes.
źródło
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ć:
źródło
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 .
źródło
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
źródło
Każdy twórca aplikacji korzysta ze słynnego „Icon Dog”
(szkoda, że zmienili nazwę!)
https://itunes.apple.com/us/app/app-icon-set-creator/id1052532083?mt=12
To zdecydowanie najpopularniejsza aplikacja używana przez deweloperów iOS, rodzaj kultu.
Natychmiast rozwiązuje wszystkie problemy.
źródło
W mojej sytuacji; po wykonaniu tych wszystkich czynności na tej stronie nie zapomnij ponownie zarchiwizować swojego projektu :)
źródło
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.
źródło
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.
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ą.
W Info.plist w sekcji „Zasoby wizualne”, a następnie „Ikony aplikacji” ustaw źródło na właśnie utworzony zasób.
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.
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
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.
CFBundleIconFiles nie było potrzebne, ponieważ Apple używa teraz katalogu zasobów.
Mam nadzieję, że pomogłem :)
źródło
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!
źródło
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
źródło
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ął.
źródło
Nic powyżej nie działało dla mnie. Musiałem usunąć wartość dla
Development Assets
z ustawień kompilacji.źródło