2011-04-18 11 views
7

W Usług breloki Programming Guide stwierdza, co następuje:.Jak mogę przetestować dostęp do własności pęku kluczy po aktualizacji za pośrednictwem AppStore?

„Na iPhone, prawa Breloki zależy od profilu rezerw używany do podpisania aplikacji należy konsekwentnie używać tego samego profilu rezerw w różnych wersjach aplikacji. "

Z czym nie mam problemu, ale chciałbym przetestować, czy jeśli udostępnię aktualizację mojej aplikacji w sklepie AppStore, nadal będzie ona miała dostęp do starych wartości przechowywanych w pęku kluczy. Próbowałem przetestować, aktualizując aplikację wersją podpisaną za pomocą profilu dystrybucyjnego ad-hoc, który zawierał ten sam identyfikator pakietu i nazwę produktu co oryginał, ale nie mógł uzyskać dostępu do starej wartości w pęku kluczy.

Czy jest jedyną opcją, aby przesłać aktualizację do sklepu AppStore i mieć nadzieję, że zadziała?

Odpowiedz

-1

O ile się nie mylę, aby zaktualizować aplikację w sklepie z aplikacjami, należy użyć tego samego profilu informacyjnego. Dlatego też, ponieważ będziesz używać tego samego profilu, powinieneś mieć dostęp do tych samych elementów pęku kluczy.

0

To w rzeczywistości nie jest plik informacyjny, ale identyfikator aplikacji. W szczególności identyfikator początkowy pakietu, który ustawiono podczas tworzenia identyfikatora aplikacji. Dostęp do pęku kluczy jest przez niego regulowany. Tak długo, jak Twój profil będzie korzystał z identyfikatora aplikacji z tym samym identyfikatorem Seed Bundle, będziesz mógł nadal uzyskiwać dostęp do informacji w pęku kluczy. Mam kilka aplikacji, które to robią.

Umożliwia to utworzenie zestawu aplikacji, które mają wszystkie prawa dostępu do tych samych elementów pęku kluczy, o ile zostały skonfigurowane tak, aby używały tego samego identyfikatora Seed Bundle. Więc jeśli zrobisz wersję light i pro, mogą oni uzyskać dostęp do tych samych informacji o pęku kluczy, podczas gdy utrzymywanie oddzielnego pakunku identyfikuje takie rzeczy jak domyślne ustawienia użytkownika.

+0

W jaki sposób ustawić aplikację, aby używała tego samego identyfikatora aplikacji co poprzednia wersja. Próbowałem już technik opisanych w przykładowym kodzie GenericKeychain, ale ponieważ poprzednia wersja nie korzystała z atrybutu bezpieczeństwa grupy dostępu, wydaje się, że nie działa. Nadal nie mogę uzyskać dostępu do hasła ustawionego w pęku kluczy z aplikacji zainstalowanej ze sklepu z aplikacjami. –

+0

Próbowałem również ustawić klucz identyfikator aplikacji w Entitlements.plist na ##########. Com.nazwa_firmy.etc, ale to nie wydaje się pomóc. –

+1

Ta odpowiedź jest bezpośrednio sprzeczna z dokumentami [apple's docs] (http://developer.apple.com/library/ios/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html): * Na iPhonie prawa do keychain zależą od udostępniania profil używany do podpisania aplikacji. Koniecznie konsekwentnie korzystaj z tego samego profilu udostępniania w różnych wersjach aplikacji. * Który z nich jest prawidłowy, Profil usługi lub identyfikator aplikacji? –

2

To jest dobre pytanie.

Jednym z głównych powodów, dla których warto przechowywać pewne dane w pęku kluczy, jest zapobieganie dostępowi do niego złośliwych użytkowników. To dość suchy wyrok sam w sobie, dlatego polecam lekturę about how someone might access that data.

Innym sposobem uzyskania dostępu do pęku kluczy jest utworzenie złośliwej aplikacji o tym samym identyfikatorze aplikacji co aplikacja docelowa. Firma Apple zabezpieczyła tę trasę, wymagając, aby profil udostępniania był taki sam.


Tak więc, aby odpowiedzieć na to pytanie, można przetestować tylko dane Brelok w aktualizacji z tego samego profilu dostaw, tj

  1. Ad hoc hoc
  2. sklepie Ad aplikacji do App Store.

Sklep z aplikacjami do sklepu z aplikacjami nie jest tak naprawdę opcją, ponieważ do tego czasu będzie za późno (Twoja aktualizacja będzie dostępna na rynku). Zamiast tego musisz usunąć aplikację sklepu z aplikacjami i zainstalować wersję ad hoc. Następnie odtwórz dane na pęku kluczy, a następnie zaktualizuj do najnowszej wersji ad hoc i sprawdź, czy zadziałało.

Oczywiście wymaga to zarchiwizowanej wersji aplikacji, która jest obecnie w sklepie z aplikacjami.Jeśli go nie masz, nie można przetestować aktualizacji.

Powiązane problemy