2013-09-26 10 views
5

Jak mogę prywatnie udostępniać dane między dwiema aplikacjami na tym samym urządzeniu, które mają różne identyfikatory zespołu? Zwykle robiliśmy to za pośrednictwem stołu montażowego, ale w przypadku iOS7 do używania kart specyficznych dla aplikacji, teraz muszą mieć ten sam identyfikator zespołu.Prywatne udostępnianie danych między aplikacjami na iOS o różnych identyfikatorach zespołu

problem staramy się rozwiązać jest odblokowanie funkcji w jednej aplikacji, jeżeli użytkownik nabył inną aplikację. Chcielibyśmy, aby to działo się po cichu w tle (a więc pierwotnie przy użyciu kart aplikacji), ale mając pewne zabezpieczenia, aby uniemożliwić użytkownikom fałszowanie procesu i odblokowywanie funkcji.

Jedno podejście badamy jest użycie systemu ale Tektura do szyfrowania danych za pomocą klucza konkretnego urządzenia. Tak długo, jak obie aplikacje używają tego samego algorytmu do wygenerowania klucza, to powinno działać, ale problem staje się wtedy sposobem wygenerowania klucza specyficznego dla aplikacji.

Wszelkie porady/wskazówki na temat najlepszego sposobu włączania tego rodzaju schematu odblokowania funkcji byłoby bardzo pomocne.

+0

Pan spojrzał na sól i hash? Jest to 1 sposób, więc nie jest to technicznie "szyfrowanie", którego nie można odzyskać i "odkodować", że można tylko sprawdzić, czy coś innego hashuje z tym samym wynikiem. Co oznacza to samo, co odzyskiwanie ... Wierzę, że jest to/może również specyficzne dla urządzenia. – CW0007007

+0

Nie mam, ale zrobię to. Dzięki za wskaźnik. –

+0

Bez problemów. Tu jest mnóstwo rzeczy. Użyłem go w projekcie, jeśli utkniesz. – CW0007007

Odpowiedz

10

Używam tektury do przesyłania danych między aplikacjami. Jest to naprawdę przydatne narzędzie do wysyłania średnich ilości danych pomiędzy aplikacjami. Naprawdę napisałem o tym a blog post na ten temat.

Niestety, jak już wspomniano, prywatne pasteboards są dostępne tylko dla aplikacji, które mają ten sam prefiks w ich identyfikator aplikacji. Zazwyczaj jest to identyfikator zespołu, ale może być inny, jeśli masz aplikację, która pochodzi z czasów, gdy możesz użyć innego identyfikatora początkowego pakietu.

Jeśli masz średnie ilości danych prywatnych są dzielone pomiędzy aplikacjami z różnymi prefiksami wtedy inne rozwiązanie jest w porządku. W tym przypadku sugerowałbym użycie jakiejś formy szyfrowania i użycie ogólnego obszaru roboczego do przenoszenia danych. W zależności od wrażliwości danych dobrym pomysłem byłoby zaszyfrowanie danych nawet w przypadku korzystania z prywatnego obszaru roboczego. Rob Napier ma a nice library za bardzo proste szyfrowanie i odszyfrowywanie.

Ewentualnie, jeśli dane są dość małe, można rozważyć kodowania danych do adresu URL i za pomocą schematu URL, aby przenieść dane do innej aplikacji.

+0

Cześć Dillan, dzięki za odpowiedź. Ostatecznie skorzystaliśmy z ogólnego obszaru roboczego z naszym własnym podstawowym szyfrowaniem. –

+0

@MagicBulletDave przepraszam za komentowanie tak starego posta, ale czy mógłbyś rozwinąć swoje rozwiązanie? W moich testach ogólny stół montażowy byłby zawsze nadpisywany przez dowolną zainicjowaną przez użytkownika operację na stole roboczym, np. jeśli użytkownik skopiuje jakiś tekst lub coś pomiędzy chwilową aplikacją A zapisuje coś w obszarze roboczym, a chwilą, gdy aplikacja B próbuje go odczytać. – jcayzac

0

Znalazłem ten artykuł, który stanowi przegląd różnych technik, w tym jeden z wymienionych powyżej kartonowe:

Sharing Data Locally

Powiązane problemy