2013-04-22 14 views
12

To pytanie zostało zadane wcześniej, ale odpowiedzi na poprzednie pytania nie rozwiązują mojego problemu.Nie można znaleźć prawidłowego profilu informacyjnego pasującego do identyfikatora aplikacji.

Próbuję zbudować prostą aplikację Hello World o nazwie (CalculatorBrain) ze Stanford iTunes U courses. Mogę uruchomić go w Symulatorze, ale chciałbym go pobrać na iPhone'a 4S.

I zsynchronizować iPhone 4S przez iTunes na moim komputerze z systemem Windows. Zawsze ma. Pomyślałem, że powinienem wymienić ten szczegół.

Wracam do mojego Macbooka (Mountain Lion). Używam najnowszego XCode 4.6.2 (4H1003) i mój iPhone jest również najnowszym 6.1.3.

Poszedłem do portalu Provisioning Portal na stronie programisty Apple. Dodałem moje 4S. Nazwałam to JohnSmith i nadałem mu telefony UDID.

W XCode otworzyłem Organizator, Urządzenia są domyślnie podświetlone. Wprowadziłem kod dostępu do iPhone'a i podłączono go do mojego MacBooka. Urządzenia znajdują mój iPhone. Jeśli klikam Profile obsługi i spróbuję "Dodaj urządzenie do portalu administracyjnego", otrzymam komunikat "Urządzenie z numerem już istnieje w tym zespole". Wspaniały. Wiem, że to na pewno zostało dodane na pewno. Wszystkie dobre wiadomości do tej pory.

W mojej aplikacji Hello World, CalculatorBrain-Info.plist mój identyfikator pakietu to "com.JohnSmith.CalculatorBrain". Nazwa wyświetlana zestawu to "$ {PRODUCT_NAME}", a plik wykonywalny to "$ {EXECUTABLE_NAME}", jeśli to ma znaczenie.

W Navigator, gdybym podkreślić mój projekt i wychować ustawień budować, pod podpisywania kodu Tożsamość dostaję opcji ...

Nie Zarejestruj kod

Automatic Profile Selector - iPhone Twórca - iPhone Distribution

Tożsamości bez Provisioning Profile - iPhone Developer: John Smith (R ............ K) - iPhone Dystrybucja: John Smith (Y .... ......... 5)

Inne ...

Próbowałem już wszystkich. Zakładam, że powinienem użyć iPhone'a: ​​John Smith ... ale mówi się, że to tożsamość bez Provisioning Profiles.

Co tu się dzieje? Co muszę zrobić, aby to zadziałało?

+0

To odpowiedź gigant poniżej jest technicznie doskonały. Ale ostatnio utknąłem tutaj i to tylko wchodząc do moich plików projektu xcode z edytorem tekstu i usuwając kilka linii, które mogłem odeprzeć. –

Odpowiedz

39

Na podstawie Twojego opisu, wygląda na to, że brakujący element polega na powrocie do narzędzia "Certyfikaty, identyfikatory i profile", wygenerowaniu profilu Provisioning aplikacji dla AppID aplikacji HelloWorld, a następnie zainstalowaniu tego profil na twojej maszynie programistycznej. Na wysokim poziomie składa się on z następujących kroków:

  1. Znajdź identyfikator AppID dla swojego projektu w Xcode.
  2. Sprawdź, czy ustawiono identyfikator AppID w polu "Certyfikaty, identyfikatory i profile".
  3. Utwórz profil obsługi wersji deweloperskiej dla tego AppId, certyfikatu programistycznego i jednego lub więcej zarejestrowanych urządzeń testowych.
  4. Pobierz i zainstaluj profil obsługi administracyjnej w Xcode.
  5. Skonfiguruj projekt do podpisu kodowego za pomocą tego profilu i kodu PIN podpisu tożsamości.
  6. Stwórz urządzenie!

Ten element konfiguracji kompilacji "Code Signing Identity", o którym wspomniałeś, jest w dużym stopniu zależny zarówno od ustawień twojego projektu, jak i Profili Provisioning Profiles dostępnych na twoim komputerze programisty. Ostatnio odpowiedziałem na stycznie powiązane pytanie: 'What are code signing identities?', które może być pomocne przy sprawdzaniu, jakie informacje używa Podpisywanie kodu i jak sprawdzić, czy masz konfigurację urządzenia programistycznego, aby móc kodować Podpisać swój projekt.

... a teraz do bardziej szczegółowych HOWTO aby pomóc swojej pracy poprzez podpisywanie kodu pytanie:

AppID lokalizowania Projektu

AppID jednoznacznie określa aplikację w ekosystemie iOS i jest jednym rzeczy, które tworzysz po rozpoczęciu nowego projektu Xcode. Ten identyfikator aplikacji jest niezbędny do zarejestrowania się w narzędziu "Certyfikaty, identyfikatory i profile", aby rozpocząć korzystanie z funkcji Provisioning.

Xcode AppId Setting

  1. w projekcie Navigator (Cmd + 1) kliknij na nazwę projektu (prawdopodobnie 'CalculatorBrain'). Spowoduje to wyświetlenie ustawień projektu.
  2. Wybierz [Twoja nazwa projektu]> zakładka Podsumowanie, jak pokazano na powyższym obramowaniu ekranu (MyiOSApplication).
  3. Identyfikator urządzenia iOS jest wyświetlany w polu "Identyfikator pakietu". Złap kopię tego ciągu, będziesz go potrzebować dalej.

Sprawdź (lub konfiguracyjne) AppID

  1. Przejdź do http://developer.apple.com/ios i dostęp do 'Certyfikaty, identyfikatorów i profile' narzędzia.
  2. Po zalogowaniu wybierz "Identyfikatory".
  3. Sprawdź, czy identyfikator AppID znaleziony w poprzedniej sekcji znajduje się na liście identyfikatorów aplikacji. Jeśli tak, zwróć uwagę na nazwę identyfikatora aplikacji i przejdź do następnej sekcji, w przeciwnym razie ...
  4. Kliknij przycisk "Dodaj" (Plus) w prawym górnym rogu, podaj nazwę tego identyfikatora aplikacji (może to być dowolna nazwa) chcesz, o ile nie ma znaków specjalnych.)
  5. Przewiń do dolnej części strony i wklej kopię swojego identyfikatora aplikacji z poprzedniej sekcji w polu "Identyfikator pakietu". pod "Explicit App ID".
  6. Kliknąć przycisk "Kontynuuj".

Należy zauważyć, że identyfikator AppID musi być unikalny w całym ekosystemie systemu iOS - może pojawić się błąd, jeśli wybrana AppID jest już używana. Jeśli tak, zmień "Identyfikator pakietu" na coś unikatowego - tylko zaktualizuj ustawienie "Identyfikator pakietu" w projekcie Xcode, aby dopasować to, na co się zdecydujesz.

Tworzenie profilu Development Provisioning

teraz, że identyfikator App jest zarejestrowany, jesteś gotowy, aby utworzyć profil Development Provisioning łączącego swój identyfikator aplikacji, świadectwo rozwoju oraz ID (s) Test Device razem.

  1. W narzędziu "Certyfikaty, tożsamości, profile" przejdź do "Profile obsługi administracyjnej".
  2. Kliknij przycisk "Dodaj" (Plus) w prawym górnym rogu.
  3. Wybierz "Rozwój aplikacji na iOS" w kroku "Wybierz typ", a następnie kliknij przycisk "Kontynuuj".
  4. Wybierz swój identyfikator aplikacji z rozwijanej listy identyfikatorów aplikacji, a następnie kliknij przycisk "Kontynuuj".
  5. Zaznacz pole obok swojego certyfikatu rozwoju, a następnie kliknij przycisk "Kontynuuj".
  6. Zaznacz pole obok urządzeń testowych, które chcesz autoryzować do zainstalowania tej aplikacji, a następnie kliknij przycisk "Kontynuuj".
  7. Wprowadź nazwę profilu (ponownie pomijając znaki specjalne), a następnie kliknij "Wygeneruj".

Pobierz i zainstaluj Provisioning profil

Po Profil Provisioning jest generowany, narzędzie zapewni Ci link, aby móc pobrać

  1. Pobierz profilu administracyjnej klikając link "Pobierz".
  2. Przeciągnij profil udostępniania z lokalizacji pobierania i upuść na ikonę dokowania Xcode lub kliknij dwukrotnie, aby go otworzyć.

Konfiguracja Kod Podpisanie Identity

Brzmi jak już wiesz gdzie to się znajduje, ale na wszelki wypadek:

  1. w projekcie Navigator (Cmd + 1), kliknij na swój nazwa projektu (prawdopodobnie "CalculatorBrain"). Spowoduje to wyświetlenie ustawień projektu.
  2. Wybierz [Twoja nazwa projektu]> Ustaw kartę Ustawienia.
  3. Przejdź do pozycji "Podpisywanie kodu".

Teoretycznie chcesz użyć opcji "Automatyczny wybór profilu", która będzie próbować dopasować Twój identyfikator AppID do zainstalowanego Profilu Provisioning, ale możesz także przewinąć listę i wybrać konkretne mapowanie identyfikatora pakietu/AppId na certyfikat iOS.

Co więcej, mój własny kod Xcode nie zawsze wychwytuje zmiany w świeżo zainstalowanych profilach udostępniania - nie jest jasne, czy jest to tylko dziwactwo mojej własnej instalacji Xcode, czy też jest błąd w Xcode. Tak czy inaczej, zamknięcie i ponowne uruchomienie Xcode wydaje się wywoływać reindeks/odświeżanie profili.

W każdym razie wybierz opcję pasującą do Twojego AppId/BundleId i Certyfikatu programisty.

Zakładając, że problem polegał na braku/niepełnym/wygasłym profilu obsługi, powinno to pomóc w uruchomieniu. Jeśli nie, musimy zagłębić się w inne potencjalne problemy związane z ustawieniami lub certyfikatami, które mogą być przyczyną potknięcia się operacji Podpisu Kodu.

+0

wielkie dzięki za to dokładne wyjaśnienie. Śledziłem to krok po kroku i rozwiązałem wszystkie moje problemy! –

+0

I sekundę tę emocję. Dzięki jeszcze raz. – Taylor

+1

+1 za doskonałe wyjaśnienie! – Paaske

6

miałem bardzo podobny rodzaj problemu, próbował każdą opcję dla tych Podpisywanie kodu i rzeczywistego rozwiązania do kopalni było: - spowodowała ponowne uruchomienie Xcode - Przejdź do „Okno-> Organizator” - wtedy „Edytor” i - "Odśwież z portalu dla programistów" Wtedy właśnie "Ustaw aktywny schemat" na "iPhone (Petri)" obok przycisków Run i Stop.

+0

Dziękuję SOOO za dużo - to naprawdę zadziałało - zajęło to około 30 sekund i nie pokazało, kiedy zostało zrobione. Ponieważ niecierpliwiłem się, po raz pierwszy spróbowałem, to nie zadziałało, potem nagle BAM! zadziałało. – cardmagik

1

Upewnij się, że zamiast projektów zaznaczono opcję Cele.

make sure Targets is selected

1

enter image description here W moim przypadku urządzenie posiada 3 profile świadczenie tej samej nazwie. W trakcie rozwoju zaktualizowałem profil realizacji kilka razy i za każdym razem, gdy nowy zaktualizowany profil został dodany do urządzenia bez usuwania starego. Więc xcode przeszukany pierwszy profil świadczenia usług, który był w tym momencie błędny i rzucił błąd na mojej twarzy. Więc, co należy zrobić: okna

  1. Open "Devices" (Cmd + shif + 2)
  2. Szukaj urządzeniu i wybierz ją
  3. w lewym prasie dolnym rogu na "Ustawienia" przycisk
  4. Naciśnij "Profile świadczeń"
  5. Wyszukaj dublaty. Znalazłem 3 pozycji profili o tej samej nazwie
  6. usunięto wszystkie oprócz najnowszego
Powiązane problemy