2012-12-19 21 views
22

Próbuję zrozumieć, jak działa procedura podpisywania kodu. Moim celem jest pobranie pliku .ipa, który został podpisany za pomocą certyfikatu Company A's Enterprise, zmienić identyfikator pakietu, a następnie ponownie zarejestrować się pod numerem Sklep App Store firmy B Certyfikat dystrybucji i opublikować w App Store.Jak ponownie podpisać aplikację na iOS dla dystrybucji App Store?

Po pierwsze, czy to możliwe? Czytam here, że "... Jestem prawie pewien, że nie możesz (i nie powinieneś) używać tego narzędzia do rezygnacji z aplikacji z certyfikatem dystrybucji App Store". Czy ktoś może to rozwinąć?

Próbowałem wielu skryptów jak this i this i this, ale po pewnym szczypanie wszystkie one wydają się mieć ten sam problem, gdy próbuję wysłać aplikację do przeglądu przy użyciu Application Loader. Błędy, które dostaję, to:

  • Zgłoszenie nie powiodło się. Podpis był nieważny, zawiera niedozwolone uprawnienia lub nie został podpisany certyfikatem dystrybucji iPhone'a o numerze: .
  • Nie można wyodrębnić uprawnienia z /var/folders/67/(large_number)/new.ipa/Payload/original.app/original

Czy ktoś może mi pomóc z tym? Pamiętaj, że wiem, jak to zrobić, eksportując certyfikaty itp. - ale tutaj badam, czy firma B będzie w stanie to zrobić samodzielnie, jeśli dam im plik .ipa Firmy A. Mogę bardziej szczegółowo wyjaśnić, co robię w razie potrzeby - po prostu zapytaj.

Dzięki!

EDYCJA: Jestem już świadomy , jednak napisałem nowy, ponieważ myślę, że moje jest bardziej szczegółowe i nie pytam o ogólny sposób, aby osiągnąć to, co chcę - chcę tylko zobaczyć, czy opisane scenariusz jest możliwy.

Odpowiedz

0

Zaoszczędziłem dużo czasu przy użyciu aplikacji AirSign (która nie była dostępna, gdy pisałem moje oryginalne pytanie).

6

Aby zrezygnować z nowej aplikacji, co powinno być możliwe, musisz utworzyć wszystkie nowe profile dystrybucji w portalu deweloperów (zakładając, że dotarłeś tak daleko). Wszystko musi pasować do Twojej aplikacji z nowego profilu. Identyfikator aplikacji jest prawdopodobnie najważniejszy. Kiedy tworzysz nowy, który musisz skonfigurować w twoim projekcie, żeby się dopasować. Zwykle nazwa handlowa.nazwa_aplikacji.optional. Ten nowy identyfikator aplikacji musi zostać sparowany w ustawieniach kompilacji z identyfikatorem paczki. Po ich dopasowaniu powinieneś móc sparować je z nowymi profilami dystrybucji/dostarczania.

FWIW, wymienianie tych profili musi być najbardziej skomplikowanym procesem we wszystkich projektach iOS. Może to wymagać trochę majsterkowania, prób i błędów, ale jestem pewien, że da się to zrobić. Powodzenia.

+0

Tak, mam wszystkie profile potrzebne do przetestowania tego, co chcę. Zauważyłem, że identyfikator pakietu zmienia się, gdy rezygnuję z aplikacji, ale wydaje mi się, że coś jest nie tak z uprawnieniami. Czy wiesz coś więcej na ten temat? – phi

+0

Jestem prawie pewny, że uprawnienia są specyficzne dla projektu i niezwiązane z żadną rezerwą. Powinieneś być w stanie skonfigurować uprawnienia z karty Podsumowanie i po prostu pozwól Xcode'owi uporządkować sprawy. –

2

Już wcześniej miałem z tym problem. Ustawienie nowego profilu i przebudowanie w Xcode wydaje się działać, ale po prostu używając wiersza poleceń, rezygnując z istniejącej aplikacji po edycji pliku plist z identyfikatorem pakunku, dawało mi to żal. Podejrzewam, że jest to osadzony profil, który jest umieszczany w aplikacji, gdy jest zbudowany, ale szczerze mówiąc, nie jestem pewien.

Widzę, że masz problemy z uprawnieniami - zauważ, że niektóre z nich są ustawione w profilu deweloperskim (powiadomienia push, IAP, a może iCloud) i muszą być poprawne.

Drugą wskazówką jest to, że Xcode buforuje profil dewelopera w projekcie (gdzieś), więc nawet jeśli usuniesz jeden z folderu profili mobilnych w folderze Biblioteki, musisz go zmienić w ustawieniach docelowych w Xcode projekt lub może nadal używać starego (grrr).

Powiązane problemy