Otrzymałem własność różnych aplikacji na iOS do tworzenia i przesyłania do iTunes Connect, ale napotkałem na bardzo nieznośny problem. Certyfikaty dystrybucyjne muszą być jednoznacznie nazwane iz różnych powodów mam 2 certyfikaty z pojedynczą nazwą osoby.
Jeśli istnieją zduplikowane nazwane certyfikaty, mimo że mają unikalne identyfikatory, proces kompilacji kończy się błędem znaku kodowego, który oznacza, że certyfikaty muszą mieć unikalną nazwę. To prowadzi mnie do sytuacji, w której muszę usunąć podpisany certyfikat (certyfikaty), pobrać ten, który chcę, przepłukać, powtórzyć.
A teraz jest trudniejszy problem. Dochodzę do punktu, w którym te kompilacje są w większości w stanie być uruchamiane całkowicie automatycznie za pomocą plików binarnych xcodebuild
i xcrun
wiersza poleceń, z wyjątkiem powyższego problemu.
Czy możliwe jest przechowywanie kluczy publicznych / prywatnych gdzieś „globalnych”, które będą dostępne dla każdego żądania pęku kluczy, i utworzenie nowego pęku kluczy do przechowywania tylko jednego podpisanego certyfikatu, ale zezwalanie dwóm pękom kluczy na współdziałanie w celu przekazania kodu podpisywanie?
Odpowiedzi:
Nie można łączyć kluczy prywatnych i certyfikatów w wielu pęku kluczy. Potrzebny jest trzeci ukryty przedmiot zwany tożsamością, który łączy te dwa elementy razem. Tożsamość, certyfikat i klucz prywatny muszą znajdować się w tym samym pęku kluczy.
Określ brelok
Korzystając z pęku kluczy, utwórz oddzielny pęku kluczy z certyfikatem i kluczem prywatnym w każdym. W twojej sytuacji będzie to oznaczać utworzenie dwóch oddzielnych pęków kluczy.
Powiedz codeign, aby szukał twojego pęku kluczy, używając opcji wiersza poleceń
--keychain
; ścieżka do pęku kluczy musi być bezwzględna.Możesz podać tę opcję i ścieżkę do
codesign
Xcode poprzez interfejs użytkownika ustawień kompilacji.źródło