2016-09-23 18 views
9

Xcode 8 wymaga wybrania "zespołu programistycznego", zanim będzie można podpisywać aplikacje zarówno na iOS, jak i na macOS. Nie było trudno zrozumieć, jak dokonać selekcji. (Odpowiedź można znaleźć pod numerem Add developer team in Xcode 8?, jeśli ktoś nie jest w stanie sam tego rozgryźć.)Jak zabezpieczyć Xcode 8 przed zapisaniem "zespołu programistów" w .pbxproj?

Problem polega na tym, że Xcode zapisuje zaznaczenie w pliku .pbxproj. Ponieważ w moim przypadku, i spodziewam się wielu innych, jest to pod SCM, a projekt jest wykorzystywany przez wiele niepowiązanych osób zespołów &, jest to ogromny problem. Na przykład "status git" pokazuje, że obszar roboczy nie jest czysty zaraz po wybraniu zespołu.

Czy istnieje sposób, aby zarówno

  • dostać Xcode 8, aby zapisać wybór w niż użytkownik danych projektowych lub
  • określić domyślne „Development Team” dla wszystkich projektów Xcode?
+3

Według https://pewpewthespells.com/blog/migrating_code_signing.html, wszystkich programistów praca nad projektem powinna zostać dodana do s ame konto/zespół programistów ", aby uniknąć zabrudzenia pliku projektu". Oczywiście nie logistycznie uzasadnione dla projektu open source, zwłaszcza gdy ludzie używają osobistych zespołów. Mam nadzieję, że istnieje lepsze rozwiązanie. – msc

+0

Dlaczego nie trzymać się starego systemu podpisywania kodu? Nadal działa dobrze. –

+1

Cóż, nie możesz. Xcode 8 nie skompiluje twojego celu dla urządzenia iOS/tvOS, jeśli nie wybierzesz jednoznacznie zespołu programistów.To zasysa projekt open source, który był używany do kompilacji z Xcode 7 przez wybranie ważnej tożsamości podpisu. – 0xced

Odpowiedz

5

można nadużywać niestandardowe Ścieżki mechanizm Xcode do przechowywania identyfikatora rozwoju zespołu poza pliku project.pbxproj poprzez ustawienie ścieżki DEVELOPMENT_TEAM niestandardową (zastąpi ABCDEFGHIJ z identyfikatorem Team):

Xcode Custom Paths

(Xcode menu → Preferencje ... → Lokalizacje → niestandardowe Ścieżki)

Ścieżki niestandardowe są przechowywane w preferencjach Xcode (IDEApplicationwideBuildSettings i IDESourceTreeDisplayNames).

Ale jest haczyk! Niestety, jak tylko zmienisz cokolwiek w projekcie (zaktualizuj ustawienie kompilacji, dodaj nową fazę kompilacji, zmień nazwę celu itd.), Zespół programistów zostanie automatycznie dodany do pliku project.pbxproj (w TargetAttributes projektu obiekt). Wymaga to ciągłej opieki, aby nie wprowadzać tych zmian.

Jeśli ta praktyka Ustawianie DEVELOPMENT_TEAM jako niestandardowego wzmocnienia ścieżek trakcji, właściciele projekt open source będą mogli nie określił żadnych Zespół Development ani Provisioning Profile ustaw podpisania Identity Code dla Wszelkie iOS SDK do iOS Developer ("CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";) i demo aplikacje open source będzie budować i uruchamiać na dowolnym urządzeniu, tak jak to miało miejsce z Xcode 7.

+0

To działa. Dzięki za rozwiązanie tego paskudnego problemu. Na szczęście wspomniany połówek nie stanowi dla mnie problemu, ponieważ mój projekt generuje pliki project.pbxproj za pomocą GYP. Wszelkie zmiany należy wprowadzać do plików GYP. Cieszę się, że nie musiałem stosować alternatywnego rozwiązania do usuwania plików project.pbxproj z SCM i zmuszania użytkowników do generowania ich po podaniu identyfikatora zespołu. – msc

+0

Brakuje mi czegoś. Wykonałem powyższe kroki, ale nie wiem, jak używać tej niestandardowej ścieżki. Po utworzeniu niestandardowej ścieżki ustawiam swój zespół na None, ale projekt nie będzie budowany na moim telefonie. – djibouti33

+0

Myślę, że mam to. Cel> Ustawienia konstrukcyjne> Zespół programistyczny> Inne> Dodaj $ (DEVELOPMENT_TEAM). Jeśli wrócisz do Target> General, zobaczysz swój zespół. Jeśli otworzysz project.pbxproj w edytorze tekstowym i wyszukasz DEVELOPMENT_TEAM, zobaczysz, że zostało ustawione na "$ (DEVELOPMENT_TEAM)". Mimo to wciąż znajdowałem mój ID zespołu, wyszukując "DevelopmentTeam", więc nie jestem pewien, czy to rozwiązanie będzie dla mnie działać. – djibouti33

0

Uaktualniłem swój projekt z Xcode 7.3.1 do Xcode 8 i nigdy nie ustawiłem Zespołu programistycznego lub niezaakceptowanego profilu obsługi, a rzeczy nadal działają bez zarzutu.

enter image description here

+1

Jest to możliwe, gdy wszyscy członkowie zespołu mają dostęp do profilu udostępniania * Twitch Development 20161017 *, który prawdopodobnie obejmuje wszystkie urządzenia zespołu. Ale to nie działa dla projektów open source, które oczywiście nie mogą zapewnić profilu obsługi. – 0xced

+0

Tak, ale można ustawić niepoprawny profil informacyjny jako zmienną xcconfig w prawo? Wtedy nie zostanie nadpisany. –

+0

To nie jest problem. Problem polega na tym, że w przypadku projektu typu open source nie można w ogóle ustawić profilu informacyjnego. Spójrz na "ProvisionedDevices" swojego profilu udostępniania * Twitch Development 20161017 * w edytorze tekstu: działa on tylko na kilku urządzeniach. W Xcode 7 możesz ustawić Identyfikację Podpisywania Kodu na _iPhone Developer_, pozwól, aby profil zaopatrzenia był pusty, a Xcode automatycznie wybrał Twój profil obsługi zespołu iOS: * _. To już nie jest możliwe w Xcode 8. – 0xced

Powiązane problemy