2013-08-27 11 views
23

Próbuję zrozumieć rolę pierwszej części AppID dla aplikacji na iOS. Ta część była wcześniej znana jako "Identyfikator początkowy pakietu", ale obecnie często określa się ją jako prefiks AppID.Czy zmiana prefiksu AppID między aktualizacjami jest bezpieczna?

Jakiś czas temu (iOS 5?) Firma Apple wprowadziła pewne zmiany zarówno w swoim portalu, jak i dokumentacji, i zaczęła polecać używanie "Identyfikatora zespołu" (unikatowe dla każdego konta programisty) jako prefiksu AppID. Jest to proste i proste dla nowych programistów z nowymi aplikacjami.

Jaka jest najlepsza praktyka w zakresie obsługi istniejących aplikacji w odniesieniu do prefiksu AppID? Wiem, że nie można zmienić identyfikatora BundleID (= drugiej części identyfikatora AppID) między dwiema wersjami aplikacji, ale czy zmiana prefiksu między wersjami aplikacji jest bezpieczna?

Uwaga: nie mam na myśli zastąpienia "identyfikatora aplikacji typu" wildcard ", np. ABC1234567. *, Do jawnego AppID używającego tego samego prefiksu, np. ABC1234567.com.mycompany.myapp. Istnieje mnóstwo informacji na ten temat (większość z nich jest jednak przestarzała). Zastanawiam się nad zmianą kompletnego identyfikatora aplikacji, np. ABC1234567.com.mycompany.myapp dla istniejącej aplikacji, zastępując prefiks moim identyfikatorem zespołu, np. DEF7654321.com.mycompany.myapp.

Wydaje mi się, że przeczytałem gdzieś, że zmiana prefiksu dla istniejących aplikacji powinna być OK, z wyjątkiem specjalnego przypadku, w którym aplikacja używa klucza do przechowywania danych. Jeśli to prawda, najprostszym sposobem na obsłużenie prefiksu dla istniejących aplikacji będzie migracja do nowego identyfikatora zespołu, gdy nadejdzie czas wydania kolejnej aktualizacji. Kiedy wszystkie moje aplikacje są migrowane, mogę nadal używać identyfikatora zespołu (jak zaleca Apple dla nowych aplikacji) i ostatecznie zapomnieć o tym wszystkim. Czy ktoś może to potwierdzić?

Jeśli możesz rzucić więcej światła na pojęcie prefiksu AppID, i to, czego faktycznie używa się na urządzeniu z systemem iOS (poza łańcuchem kluczy, o którym już wiem), byłbym szczęśliwy, gdybyś mógł napisać komentarz. Być może moglibyśmy w pełni to zrozumieć, dodając fragmenty z różnych źródeł. Niestety, dokumentacja Apple jest bardzo cienka w tym obszarze.

(Jest jeszcze jedno podobne pytanie: Can I change the Bundle Identifier in my app after it's been approved? Ale to głównie koncentruje się na BundleID, tj. Drugiej części AppID, więc nie jest to duplikat, mimo że niektóre odpowiedzi i komentarze dotyczą tego tematu.)

+0

Jeśli chodzi o pytanie, czy prefiks AppID jest używany do jakichkolwiek innych celów niż kontrola dostępu do pęku kluczy, zauważyłem zmianę w dokumentacji referencyjnej UIPasteboard. w przypadku iOS 7: w przypadku metody "pasteboardWithName: create:" jest teraz notatka z informacją, że dwie aplikacje muszą mieć "ten sam identyfikator zespołu", aby móc udostępniać obszar roboczy. Podejrzewam, że może to być literówka i że faktycznie odnosi się do prefiksu AppID. Trudno uwierzyć, że iOS w środowisku wykonawczym ma bezpośrednią wiedzę o identyfikatorze TeamID, z wyjątkiem przypadku, gdy identyfikator TeamID jest używany jako prefiks AppID. – Magnus

Odpowiedz

21

Mój wniosek, na dzień dzisiejszy, jest całkowicie bezpieczny zastąpić prefiks AppID przez nowy, z wyjątkiem aplikacji za pomocą pęku kluczy. To otwiera się do migracji prefiksu dla wszystkich moich wychodzących aplikacji w sklepie App Store do nowego prefiksu opartego na identyfikatorze TeamID.

Wniosek ten opiera się na następujących źródłach informacji:

  • Dyskusja miałem wsparcie programistów Apple kilka tygodni temu. Powiedzieli mi, że nie powinno być żadnych problemów ze zmianą prefiksu, z wyjątkiem aplikacji używających pęku kluczy.
  • Przeprowadziłem test, używając dystrybucji ad-hoc, sprawdzając, czy istniejąca aplikacja na urządzeniu testowym nie utraciła żadnych danych po aktualizacji do nowej wersji z innym prefiksem.
  • Fakt, że pomyślnie przesłałem nowe wersje, z zastąpionym prefiksem, dwóch z moich istniejących aplikacji bez żadnych problemów.

Status dwóch "żywych" aplikacji, które zmieniłem, jest taki, że zostały one zatwierdzone w przeglądzie. Jednak obecnie czekają one w "Oczekiwaniu na wersję deweloperską", ponieważ czekam na przygotowanie trzeciej aplikacji, aby zsynchronizować wydanie z tym.

Jeśli widzę jakikolwiek problem podczas publikowania w App Store, oczywiście zaktualizuję tę odpowiedź.

Aktualizacja:

Obie aplikacje zostały zwolnione z powodzeniem ponad trzy tygodnie temu. Uruchomienie działało zgodnie z oczekiwaniami i nie otrzymałem żadnych skarg użytkowników.

Podsumowując, odpowiedź brzmi TAK, jest całkowicie bezpieczna!

+0

Czy możesz wyjaśnić, w jaki sposób udało Ci się utworzyć nowe identyfikatory aplikacji z różnymi prefiksami? Nadal nie pozwala mi tego zrobić. Mówi "Identyfikator aplikacji z identyfikatorem" com.domain.appname "jest niedostępny. Wprowadź inny ciąg. "- zarówno dla identyfikatorów aplikacji, które wciąż mam aktywne, jak i dla tych, które usunąłem, podczas gdy można je było usunąć. –

+0

Usunięto opcję tworzenia nowych losowych prefiksów. Jeśli zaczniesz od zera już dziś, jedyną opcją jest użycie identyfikatora TeamID jako przedrostka. Jeśli masz jakieś aplikacje używające innych prefiksów, te istniejące przedrostki pojawią się również jako opcje podczas tworzenia nowych identyfikatorów AppID. W moim przypadku, przetestowałem tylko, aby zastąpić stary identyfikator AppID typu wildcard nowym, jawnym za pomocą identyfikatora TeamID. Myślę, że twój problem może być inny: BundleIDs muszą być globalnie wyjątkowe. Zobacz http: // stackoverflow.com/a/6546206/824515 Być może nie można zastąpić starego jawnego AppID nowym na podstawie identyfikatora TeamID? – Magnus

+0

Jeszcze jedno: mam 5 aplikacji w App Store. Żadne nie używa żadnych funkcji wymagających wyraźnych AppIDów. Miałem tylko jeden pojedynczy identyfikator Appid, który obsługuje wszystkie aplikacje. Jednak gdy zacząłem badać ten problem, odkryłem, że na portalu istniało wiele jawnych AppIDów, których sam nigdy nie stworzyłem! Dla każdej z moich istniejących aplikacji był dokładnie jeden identyfikator. Te używają identyfikatora TeamID, mimo że moje aplikacje używały innego prefiksu! Prawdopodobnie te identyfikatory zostały wygenerowane automatycznie, gdy Apple wprowadził nową politykę TeamID. Był to jeden z tych identyfikatorów, których użyłem przy zamianie prefiksu. – Magnus

7

firmy Apple opublikował nowy tech note na 12 lutego 2014 potwierdzający, że jest to możliwe (i bezpieczne *) do zmiany prefiksów siebie za Wildcard App identyfikatorów, ale to wciąż niemożliwe to zrobić samemu za Explicit App ID.

Mówi się jednak, że możesz skontaktować się z opiekunami członków centrum, jeśli chcesz, aby zmienili swoje prefiksy dla jawnych identyfikatorów aplikacji.

Iść obejmują tę część tutaj na wypadek, gdyby znowu zmienić zdanie :

Wszystkie inne App identyfikatory będą wymagać pomocy opiekunów centrum członek - jeśli nie używasz wieloznaczny identyfikator aplikacji, a następnie powinieneś skontaktować się z opiekunami centrum członków iOS, aby uzyskać pomoc. Oto kroki, które można wykonać, aby to zrobić:

  1. Przejdź do https://developer.apple.com/contact/.
  2. Prześlij żądanie, klikając link w sekcji Rejestracja i konto.

* Należy pamiętać, że jeśli aplikacja przechowuje dane w pęku kluczy, zmieniając identyfikator aplikacji prefiks spowoduje jednorazowej utraty danych brelok.

Powiązane problemy