Zbudowałem nową aplikację, która będzie obsługiwać IOS 7. Mam nowy XCode 5 GM i próbowałem podpisać swoje aplikacje przy użyciu mojego nowego profilu udostępniania i certyfikatu dystrybucji, ale mam problem z dystrybucją. Ciągle otrzymuję następujący błąd:
„Nieprawidłowe uprawnienia do podpisywania kodu. Uprawnienia w sygnaturze Twojego pakietu aplikacji nie są zgodne z uprawnieniami zawartymi w profilu informacyjnym. Zgodnie z profilem informacyjnym pakiet zawiera niedozwoloną wartość klucza:„ [XXXX.com.sample .company] 'dla klucza' keychain-access-groups ”.
Również ten sam błąd dla wartości klucza o nazwie application-identifier
.
Zrzut ekranu błędu:
źródło
Jeśli jesteś podobny do mnie i myślisz, że próbowałeś WSZYSTKIEGO , zarchiwizowałeś swój projekt ponad dziesięć razy, uderzyłeś głową w klawiaturę i nadal otrzymujesz ten błąd. Zrób sobie przysługę i po prostu uruchom ponownie XCode , zadziałało dla mnie. Czasami Apple ... Nienawidzę cię.
źródło
Wykonałem wiele z powyższych kroków, ale to, co w końcu zadziałało, to odświeżenie moich profili w Xcode. Nie wiem, dlaczego było to konieczne, ponieważ profil dystrybucji mojej aplikacji był już widoczny na liście. Oto kroki:
źródło
W moim przypadku aktywowałem te same możliwości w Xcode, co w usługach aplikacji w developer.apple.com. To działa dla mnie
źródło
W moim przypadku (przepraszam) zmieniłem „Zespół” na „Brak” w -> Ogólne -> Tożsamość
W innym przypadku musiałem zmienić tę tożsamość z „Brak” na konto programisty zarządzające tożsamościami i profilami.
Wygląda na to, że Xcode czasami bardzo źle wpływa na podpisywanie kodu. Albo my, zwykli śmiertelnicy, po prostu nie jesteśmy wystarczająco sprytni, by zrozumieć, co robi, oczywiście. Nie poddawaj się, wszyscy czasami przechodzimy przez tortury podpisywania kodu!
źródło
W moim przypadku musiałem ustawić prawidłowy profil udostępniania dla wydania, a następnie musiałem ponownie uruchomić Xcode. Przed ponownym uruchomieniem miał ten sam profil informacyjny i nie działał. Tak więc czasami ponowne uruchomienie może zdziałać cuda. Może to komuś pomoże.
źródło
Jeśli ktoś korzysta z GameCenter, sprawdź tę sekcję w swoim celu. Pracowałem z jakimś starym projektem i były 2 błędy (ale wszystko działało dobrze). Wyłączenie i ponowne włączenie rozwiązało ten problem.
Najprawdopodobniej ta akcja dodaje uprawnienia Game Center do identyfikatora aplikacji i obsługuje ją samodzielnie.
źródło
1.Przejdź do folderu projektu, usuń pliki * .entitlements. 2. następnie przejdź do celu projektu xcode -> ustawienia kompilacji -> uprawnienia do podpisywania kodu - usuń wartości 3. wyczyść 4. uruchom
źródło
Ach, ten wspaniały błąd. Dla mnie ilekroć widzę ten błąd, sprawdzam następujące rzeczy:
1. Zezwól XCode na dostęp do informacji o Twoim profilu informacyjnym przez cały czas - jeśli XCode ciągle pyta, kiedy go uruchamiasz, o dostęp do prywatnych plików Twojego komputera, aby mógł uzyskać informacje o profilu informacyjnym z opcjami zezwalającymi na dostęp zawsze, nie teraz, lub tylko jeden raz - ustaw ZAWSZE ZEZWÓL na dostęp
2. Jeśli masz jakieś stare pliki z uprawnieniami krążące po Twoim projekcie, pozbądź się ich i wszelkich śladów - jeśli zobaczysz plik .entitlements w swoim projekcie, usuń go (lub przynajmniej usuń odniesienie do niego, jeśli nie jesteś pewien jesteś gotowy, aby go całkowicie usunąć), a następnie upewnij się, że wiersz „Uprawnienia do podpisywania kodu” w sekcji „Podpisywanie kodu” w Ustawieniach kompilacji jest pusty
3. Sprawdź swoje usługi aplikacji online i dopasuj je do swoich usług w XCode dla aplikacji - przejdź do Apple Member Center i sprawdź identyfikator aplikacji, kliknij aplikację, aby wyświetlić jej „usługi aplikacji” i zobaczyć, co zaznaczone, a następnie przejdź do XCode i sprawdź sekcję `` Możliwości '', aby upewnić się, że mają tę samą listę usług Apple w obu
4. Upewnij się, że przypisałeś prawidłowy profil aprowizacji do swojej aplikacji przed sprawdzeniem poprawności - dokładnie sprawdź swój profil aprowizacji dla swojej aplikacji w Apple Member Center, upewnij się, że nie wygasł, ma właściwy identyfikator aplikacji z poprawnym identyfikatorem pakietu i dystrybucją . Pobierz i kliknij nowy profil aprowizacji, aby upewnić się, że XCode go ma, lub przejdź do XCode> Preferencje> Konta> kliknij swoje konto i „Wyświetl szczegóły”, a następnie kliknij przycisk w dolnym rogu, aby zsynchronizować wszystkie profile z XCode. Powinieneś mieć profil dostępny do wyboru w sekcji „Podpisywanie kodu”. Po uzyskaniu prawidłowego profilu obsługi administracyjnej możesz ustawić w wierszach „Tożsamość podpisywania kodu” odpowiednią opcję dla tego profilu informacyjnego.
Uwaga - jeśli robisz certyfikat dystrybucyjny, może pomóc ustawienie wszystkich linii „Code Signing Identity” na tożsamość, której używasz do dystrybucji, w tym wiersze debugowania
5. JEŚLI WSZYSTKO INNE NIE POWIODŁO SIĘ - Wyczyść projekt i uruchom ponownie XCode, a niektóre magiczne elementy Apple mogą po prostu działać poprawnie, gdy następnym razem otworzysz projekt i spróbujesz zweryfikować
źródło
Jeśli budujesz stary projekt 3.1.5, Xcode 5 ma kilka błędów, które niestety uniemożliwiają Benjaminowi odpowiedź, ponieważ nie ma profili obsługi administracyjnej do wyboru. Po wielu późnych godzinach udręczonego czytania plików projektu Xcode wpadłem na to rozwiązanie, które zadziałało:
open -a TextEdit path/to/name.xcodeproj/project.pbxproj
isa=XCBuildConfiguration
).PBXNativeTarget
i jeden na wejściuPBXProject
XCConfigurationLists
)Teraz możesz ponownie otworzyć, zarchiwizować i przesłać do App Store - voilà! To znowu działa!
Jak myślę, że to działa
Zakładam, że to działa, ponieważ Apple gdzieś po drodze zdecydowało się porzucić potrzebę jakiejkolwiek oddzielnej konfiguracji dystrybucji, co jest dobrą rzeczą. Kiedy archiwizuję, Xcode automatycznie podpisuje kod do dystrybucji. W pierwszej kolejności tak powinno zostać zaimplementowane, szkoda tylko, że Apple nie może uczynić automatycznej migracji częścią IDE; zamiast tego zmuszają nas, programistów, do spędzenia wielu dziesięcioleci, aby te rzeczy działały.
źródło
Zmagam się z tym problemem od ponad dnia, próbując wszelkiego rodzaju rozwiązań sugerowanych tutaj i gdzie indziej w Internecie. Nic nie działało ...
Ale w końcu udało mi się rozwiązać problem!
Problem, jaki miałem, dotyczył starej aplikacji, której nie dotykałem od ponad 3 lat, a teraz miałem wydać długo oczekiwaną aktualizację. Odkąd wypuściłem aplikację, Apple aktualizuje sposób działania certyfikatów i identyfikatora aplikacji. Wprowadzili koncepcję identyfikatora zespołu, która wydaje się być zalecana. W szczególności w witrynie Apple „Certyfikaty, identyfikatory i profile” od tamtego czasu zaszło wiele zmian.
Tam zdałem sobie sprawę, że profil aprowizacji, którego używałem do dystrybucji App Store, był połączony z identyfikatorem aplikacji,
ED8xxxxxxx.com.rostsolutions.*
ale patrząc na identyfikator aplikacji dla gry, którą miałem zamiar przesłać, zauważyłem, że identyfikator aplikacji byłATMxxxxxxx.com.rostsolutions.Swisch
. Więc prefiks identyfikatora aplikacji nie pasuje! To wydawało się być przyczyną problemu. WięcATMxxxxxxx.com.rostsolutions.Swisch
zamiast tego utworzyłem nowy profil aprowizacji połączony z identyfikatorem aplikacji . Korzystając z tego profilu aprowizacji, pomyślnie przesłałem aplikację do App Store, a teraz trzymam kciuki, że wszystko inne działa dobrze po stronie Apple.(Najpierw próbowałem połączyć się z nowym profilem obsługi administracyjnej z identyfikatorem wieloznacznym
ATMxxxxxxx.com.rostsolutions.*
, ale to nie zadziałało).Zastanawiające mnie jednak jest to, że kiedy patrzę na starą aplikację w iTunes łączy się i przechodzę do szczegółów binarnych, pojawia się informacja, że identyfikator aplikacji to
ED8xxxxxxx.com.rostsolutions.Swisch
. Dlaczego więc strona „Certyfikaty, identyfikatory i profile” podaje identyfikator aplikacji jakoATMxxxxxxx.com.rostsolutions.Swisch
?źródło
Mój problem został rozwiązany poprzez usunięcie mojego Apple ID z Preferencji-> Konta, a następnie dodanie go ponownie. Następnie wszystkie moje pliki profilu informacyjnego pojawiły się w panelu narzędziowym Wyświetl szczegóły. Przez pomyłkę wybrałem „Mac Team Provisioning Profile: *” zamiast rzeczywistego profilu udostępniania dystrybucji dla projektu, myśląc, że jest to wybór ogólny. Pliki obsługi muszą być specyficzne dla projektu. Aha, i przy okazji, upewnij się, że Twój profil obsługi administracyjnej ma odpowiednie uprawnienia (na przykład Mapy). Udało mi się wypuścić aplikację z mapami OSX bez uprawnień i Apple ją zatwierdziło - ale żadne Mapy nie pojawiły się w wersji produkcyjnej!
źródło
W moim przypadku miałem ten sam problem, moim rozwiązaniem była zmiana „Release Provisioning Profile” w ustawieniach kompilacji przed zrobieniem archiwizacji. Robię to dwa razy, raz do dystrybucji w App Store, a drugi do dystrybucji Ad Hoc. Dodam też komentarz do moich archiwów. Mój wniosek jest taki, że coś jest zepsute w „ponownym podpisywaniu archiwum”.
źródło
Na tej stronie jest bardzo dobry poradnik, jak rozwiązać ten problem .
Mówi, że ten problem może wystąpić, gdy identyfikator pakietu projektów różni się od tego, który wprowadziłeś w witrynie iTunes Connect .
źródło
Myślę, że xcode 5 używa „wydania” zamiast „dystrybucji”, którą sam stworzyłeś.
źródło
Jeśli wszystko powyżej nie zadziałało (w moim przypadku po kilku dniach nie udało się wszystkiego wypróbować) mam tylko jedną aplikację na Maca. OSTROŻNIE PRZY ODWOŁANIU!
1) Odwołaj ręcznie wszystkie „Dystrybucja aplikacji na komputery Mac” i „Dystrybucja instalatorów dla komputerów Mac”
2) Wyczyść odpowiednie certyfikaty i klucze otwarte w pęku kluczy ( Ostrzeżenie: wyeksportuj przed usunięciem)
3) Uruchom ponownie Xcode 4) Przejdź do (w Safari) developer.apple .com -> certyfikaty itp. 5) Utwórz CertificateSigningRequest.certSigningRequest w Keychain-> Certificate Assistant
6) Utwórz ręcznie na developer.apple.com zarówno „Mac App Distribution”, jak i „Mac Installer Distribution” z Twoim * .certSigningRequest
7) Provisioning Profile -> Dystrybucja -> utwórz / napraw niestandardową rezerwę dla AppStore (specjalnie nazywam to „profilem obsługi Mac dla AppStore”
8) Xcode -> Ustawienia -> Konto -> Twoje konto ->Odśwież 9) Xcode Clean -> Archive -> Validate
źródło
Zmagałem się z podobnym problemem (budowałem dla dystrybucji Ad-Hoc). Jedyną rzeczą, która zmieniła się od ostatniego pomyślnego wdrożenia, było dodanie dwóch urządzeń do profilu informacyjnego.
Po dwukrotnym i potrójnym sprawdzeniu wszystkich ustawień kompilacji ponownie wygenerowałem profil aprowizacji (bez zmiany niczego), ponownie pobrałem i wszystko działało dobrze.
Zwróć więc uwagę na siebie: jeśli nie ma logicznego wyjaśnienia, zawsze możesz wypróbować stare, dobre IT voodoo.
Polecam również iPhone Configuration Utility , które pomimo swojej nazwy jest przydatne do sprawdzania, jakie profile udostępniania masz na komputerze.
źródło
BŁĄD ITMS-9000: „Ten pakiet jest nieprawidłowy. Nowe aplikacje i aktualizacje aplikacji przesłane do App Store muszą być zbudowane przy użyciu publicznych (GM) wersji XCode 5.1.1 lub nowszych oraz iOS 7 SDK. Nie przesyłaj aplikacji utworzonych za pomocą oprogramowania w wersji beta.
źródło
Jeśli wielu programistów używa tego samego konta centrum członkowskiego. Jeden z nich nie może użyć certyfikatu utworzonego przez innych, ponieważ użył żądania certyfikatu utworzonego przy użyciu ich komputerów.
Alternatywnie, powiedz im, aby przesłali Ci profil programisty. nie jestem pewien nazwy. aby użyć certyfikatu utworzonego na innym komputerze.
źródło
Podpisywanie kodu Uprawnienia występują, ponieważ Twój zasób nie zawiera pliku uprawnień w zasobach. Po prostu przejdź do ustawień kompilacji i wyszukiwania podpisywania kodu Uprawnienia usuń wpis do debugowania i wydania, ponownie zbuduj projekt, zobaczysz, że nie ma błędu. Twoje zdrowie
źródło
Miałem ten sam problem, ale nic tu napisanego nie pomogło. Jednak znalazłem prosty sposób, który zadziałał dla mnie. Oto jak to zrobić:
1) W ustawieniach kompilacji projektu i obiektów docelowych wybierz opcję „Brak” dla wszystkich profili obsługi administracyjnej i opcję „Nie podpisuj kodu” dla wszystkich tożsamości podpisujących kod.
2) Teraz wybierz Cel i przejdź do ustawień kompilacji. W ustawieniu wydania tożsamości Code Signing Identity wybierz „iOS Distribution” dla „Any iOS SDK”. Następnie w ustawieniu Wydanie profilu obsługi administracyjnej wybierz swój profil dystrybucji dla „Dowolnego pakietu SDK systemu iOS”. Następnie ustawienie wydania tożsamości podpisywania kodu powinno automatycznie zmienić się na „Dystrybucja iPhone'a”.
3) Zarchiwizuj kompilację i zweryfikuj. Teraz powinno działać dobrze. Otóż to!
źródło