7

Przykro mi z powodu zamieszczania tylu pytań, ale wykonanie tego było niezwykle bolesne, nawet dlatego, że Testflight znacznie ułatwiaNieprawidłowy błąd IPA na Testflight: Środowisko APS w twoim embedded.mobileprovision i twój plik binarny nie pasuje

Invalid IPA error: The APS environment in your embedded.mobileprovision and your binary don't match 

Myślę, że ma to związek z powiadomieniami Apple Push. Używam mojego profilu dystrybucyjnego we wszystkich moich ustawieniach. Moja aplikacja została skonfigurowana do programowania i produkcji.

Jakie mogą być przyczyny tego błędu?

Na marginesie, pracowałem nad tym przez cały dzień, a ja utknąłem w jednej rzeczy po drugiej, szczególnie w przypadku bibliotek statycznych i xcode4. Czy naprawdę jestem w tym zły, czy Apple naprawdę to utrudnia?

Odpowiedz

4

Myślę, że był to błąd kodu xcode. Oto, jak to rozwiązałem i może być przydatne dla niektórych użytkowników w przyszłości. W tym moje kroki rozwiązywania problemów w celu odniesienia:

  1. Zmieniłem plik uprawnień do aps-environment = production. Nie odchodź, wciąż różnią się między 2 plikami.
  2. zmieniłem wszystkie moje ustawienia (debug/nie) do profilu dystrybucyjnym, tak aby mieć pewność,
  3. Zbudowałem go ponownie, a wyrejestrowany embedded.mob i binarne, jak sugeruje
  4. Nie tam ponownie.
  5. Poszedłem nuklearnie - skasowałem wszystkie moje profile, pobrałem tylko kompilację potrzebną do dystrybucji
  6. tutaj jest, gdy stało się interesujące - nie mogłem go zbudować na debugowaniu (oczekiwano), ale miałem ten sam problem z "profilem" nie znaleziono "nawet gdy byłem w trybie archiwizacji ad hoc. Z pewnością oznacza to, że pozostaje odwołanie do trybu programisty, nawet gdy próbowałem go zarchiwizować (biorąc pod uwagę, że już zmieniłem WSZYSTKIE moje ustawienia i usunąłem wszystkie moje inne profile).
  7. Więc wykopałem project.pbxproj, i znalazłem linii przestępczej, która wciąż próbowała uzyskać dostęp do mojego profilu rozwoju w kompilacji ad hoc. Zmieniłem go ręcznie i bingo, wszystko działało zgodnie z oczekiwaniami.

Koniec dnia, jestem zaskoczony, dlaczego tak się stanie. Wygląda jak błąd xcode 4. Zwykle to moja wina, gdy takie rzeczy się zdarzają, ale wydaje się to wystarczająco tajemnicze (plus miałem tak wiele problemów z xcode 4 dla kilku innych rzeczy).

Rozwiązany przy pomocy niesamowitego zespołu Testflight!

http://support.testflightapp.com/discussions/tools/17-invalid-ipa-the-aps-environment-in-your-embeddedmobileprovision-and-your-binary-dont-match

+0

Dzięki! Który wiersz w pbxproj miał dostęp do Twojego profilu nie-dystrybucyjnego? Nadal utknąłem z działaniem push z testflight – CVertex

+1

Miałem problemy z tym również. Nie odrzuciłem wszystkiego, ale zmieniono wszystkie moje jednostki podpisujące kod, aby używać profilu dystrybucji iPhone'a (który był powiązany z moim profilem administracyjnym ad hoc). Ponownie uruchomione xcode (4.2), i zadziałało! Zmieniono kod prod z powrotem na "nie koduj znaku" i nadal działa. Nie wiesz, co to jest, wydaje się być najprawdopodobniej błędem kodu – Taras

0

natknąłem tego błędu przed, tak więc następujące instrukcje, aby to zadziałało:

  1. rejestracja zaopatrzenie dla swojej aplikacji i dodać do niego urządzeń z ludzi, którzy powinni go przetestować.
  2. Utwórz aplikację, używając właśnie utworzonego profilu administracyjnego, i wyeksportuj go jako * ipa.
  3. Prześlij go do TestFlight i wybierz urządzenia, na których chcesz przetestować aplikację.

Wiele osób tęskni za krokiem 2 (tak jak ja) i to jest niezbędne, aby działał. Więc, spróbuj! :)

+0

Witaj Davidzie, bardzo dziękuję! Byłem w stanie rozwiązać go w inny sposób, ale twoja pomoc jest bardzo cenna. te rzeczy są ... tajemnicze. –

+0

Świetne rzeczy !!!! – Pripyat

2

Ponadto, szczególnie jeśli cel jesteś archiwizacji oparto na inny cel, sprawdź, że „Archive” Schemat swój cel opiera się na prawidłowej konfiguracji Konstruowanie Ustawienia budować.

  • W Xcode 4.2 obok menu Run kliknij -> Edit Schemat
  • Kliknij na przycisku 'Archiwalnej w lewej szufladzie
  • Look at „Budowanie konfiguracji

W przypadku Testflight powielam moją konfigurację konfiguracji wydania i zmieniam jej nazwę "Ad Hoc" tylko w tym celu, określając mój profil udostępniania Ad Hoc i wszystko inne, co musi tam być. Jeśli dotarłeś tak daleko, zakładam, że już to zrobiłeś, ale dla potomności pomyślałem, że o tym wspomnę.

0

Odpowiadając na to pytanie, na wypadek, gdyby ktoś wpadł na to podczas przesyłania mobilnej aplikacji lotniczej.

Upewnij się, że zaznaczyłeś element Entitlementy w pliku app.xml.

<iPhone> 
    <InfoAdditions> 
     <![CDATA[ 
     <key>UIDeviceFamily</key> 
     <array> 
      <!-- iPhone and iPod touch devices --> 
      <string>1</string> 
      <!-- iPad devices --> 
      <string>2</string> 
     </array> 
     ]]> 
    </InfoAdditions> 

    <!-- This part below.. --> 
    <Entitlements> 
     <![CDATA[ 
     ]]> 
    </Entitlements> 

Moi Uprawnienia wyglądało to plecach kiedy mam błąd:

<Entitlements> 
     <![CDATA[ 
      <key>application-identifier</key> 
       <string>QFY9MVY9K8.com.somethingHere.anAppName</string> 
      <key>aps-environment</key> 
       <string>development</string> 
     ]]> 
    </Entitlements> 

Jak to wygląda teraz:

<Entitlements> 
     <![CDATA[ 
      <key>get-task-allow</key> 
      <false/> 
     ]]> 
    </Entitlements> 

Ten błąd został spowodowany ponieważ

  1. Użyłem INNEGO ID w <key>application-identifier</key> niż ten w moim profilu udostępniania.
  2. Użyłem klawisza development zamiast numeru production w części <key>aps-environment</key>.
Powiązane problemy