Po jakimś czasie googlowania coś mi mówi, że problem jest nowy.
Mieliśmy w pełni funkcjonalny projekt wspierający iOS7-8. Oczywiście został on wielokrotnie pomyślnie przesłany do AppStore.
Używamy podów, wielu śledzenia i monitorowania, takich jak GA i Instabug.
Teraz zdecydowaliśmy się przesłać do TestFlight wersję aplikacji opartą na Xcode 7 na iOS 9.
Wyłączyliśmy kod bitcode, ponieważ wiele podów, takich jak Flurry i inne wstępnie zbudowane biblioteki, nie zawiera go.
Kompilacja przebiegła pomyślnie, po przesłaniu do iTunesConnect otrzymujemy to:
Mieliśmy to samo dla biblioteki GoogleAppIndexing (również w podach), ale usunęliśmy ją, aby działała. Teraz - Instabug. To idzie za daleko, więc staram się zrozumieć, co się dzieje w iOS 9 i jakie zmiany sprawiły, że w pełni działający projekt zaczął rzucać takie błędy.
Wszelkie myśli i pomysły są mile widziane! Podziel się proszę swoimi doświadczeniami, a jeśli coś przeoczyłem, chętnie podzielę się swoimi krokami.
Odpowiedzi:
Napotkałem dziś ten sam problem z tym samym dokładnym komunikatem o błędzie podczas próby przesłania naszej aplikacji (przy użyciu Xcode 7 beta 5), ale zamiast
instabug.bundle
tego był to dla mnieTencentOpenApi_IOS_Bundle.bundle
.Rozwiązałem problem, znajdując nazwany pakiet w projekcie, a następnie - tak jak sugeruje komunikat o błędzie - edytowałem ten,
Info.plist
który jest w pakiecie, usuwającCFBundleExecutable
klucz.CFBundlePackageType
Klucz został już ustawionyBNDL
, więc nie dotykać.Po tych zmianach zrobiłem Produkt> Wyczyść i nie miałem problemu z przesłaniem aplikacji do App Store.
Mam nadzieję, że to pomoże.
źródło
Napotkałem to
AviarySDK
na Xcode 7 GM podczas przesyłania do App Store.Najpierw sprawdzę, czy korzystasz z najnowszej wersji swojej biblioteki - sprzedawca mógł już to naprawić. Jeśli jednak nadal masz ten problem, jak opisuje Sleiman, musisz usunąć
CFBundleExecutable
klucz z pliku plist dla problematycznej biblioteki.Cmd + Shift + O i wpisz „Info.plist”, wtedy możesz znaleźć odpowiedni plik:
Po edycji
CFBundleExecutable
pliku plist możesz zobaczyć opisowe nazwy (zamiast i innych kluczy. Nie mogłem edytować tego pliku w zewnętrznym edytorze, więc musiałem przełączyć się na wyświetlanie surowych kluczy / wartości, klikając prawym przyciskiem myszy listę):Teraz możesz zobaczyć
CFBundleExecutable
klucz (z opisem „Plik wykonywalny”), który możesz usunąć.W przypadku AviarySDK zrobiłem to dwukrotnie, raz dla każdego
Info.plist
widocznego na powyższym obrazku, a następnie udało mi się pomyślnie przesłać.źródło
Rozwiązuję ten problem w następujący sposób: Musimy usunąć wszystkie „pliki wykonywalne” z następujących pakietów:
Upewnij się, że „Kod typu pakietu” jest równy BNDL
Ważne: nie edytuj niczego w głównym projekcie info.plist.
Załączone ekrany, jak powinny być jego "info.plist" wymienione powyżej każdego pakietu.
źródło
Oto, co zadziałało dla mnie
źródło
Jeśli kompilacja zostanie przesłana za pomocą Less than (<) Xcode 7.0 , zostanie przesłana, a także rozwiązałem to w następujący sposób dla Xcode 7 :
Wyszukane
info.plist
w projektach Project Navigator jak na poniższym obrazku:Teraz otworzył te
info.plist
pliki jeden po drugim i usunąłBundleExecutable
klucz Z WYJĄTKIEM celuinfo.plist
Teraz wyczyszczono projekt, osiągnięto go i przesłano go bez problemu.
źródło
Miałem ten sam problem w bibliotece Map Google i usunąłem
CFBundleExecutable
klucz wewnątrzGMSCoreResources.bundle
(Info.plist
), który jest czystym projektem pakietu SDK info.plist i załaduj go do Appstore.Miłego programowania.
źródło
Po prostu sprawdź Ustawienia kompilacji => Włącz Bitcode i ustaw NIE
źródło
Jedna dodatkowa uwaga: czasami, jeśli masz dodatkowe cele, będą dostępne właściwości celu, które mogą również zawierać klucz (w sekcji „Informacje”), więc upewnij się, że je sprawdziłeś i stamtąd też go usuń. Odkryłem to w jednym z pakietów, które próbowałem dołączyć. Usunąłem informacje z plist, ale nadal otrzymywałem błąd.
źródło
Jeśli widzisz ten błąd w bibliotece zainstalowanej za pośrednictwem CocoaPods, wypróbuj plik
pod update <OFFENDING POD NAME>
To rozwiązało problem.
źródło
Właśnie dodałem słowo "BNDL" w odpowiednim miejscu w
plist
"Kodzie typu systemu operacyjnego twórcy pakietu".źródło
W moim przypadku po prostu przeciągam i upuszczam plik dołączony do
SDK
folderu Ininfo.plist
, który nie jest używany. To tworzy dla mnie problem. Znajdź nieużywanyinfo.plist
plik i usuń go z kodu źródłowego.źródło