2013-09-26 12 views
5

Come posso condividere privatamente i dati tra due app sullo stesso dispositivo che hanno ID di gruppo diversi? Lo facevamo tramite il pannello di montaggio, ma con iOS7 per utilizzare i pannelli di lavoro specifici per app ora devono avere lo stesso ID di team.Condivisione privata dei dati tra app iOS con ID di team diversi

Il problema che stiamo cercando di risolvere è lo sblocco delle funzionalità in un'app se l'utente ha acquistato un'altra app. Ci piacerebbe che ciò accadesse tranquillamente in background (da qui in origine si utilizzavano le paste di app specifiche) ma con un certo livello di sicurezza per impedire agli utenti di falsificare il processo e sbloccare le funzionalità.

Un approccio che stiamo studiando è utilizzare un pannello di sistema, ma crittografare i dati con una chiave specifica del dispositivo. Finché entrambe le app usano lo stesso algoritmo per generare la chiave, questo dovrebbe funzionare, ma il problema diventa come generare una chiave specifica per l'app.

Qualsiasi consiglio/guida sul modo migliore per attivare questo tipo di schema di sblocco delle funzionalità sarebbe molto utile.

+0

Hai guardato in sale e hash? È 1 modo quindi non è tecnicamente 'criptazione' non puoi recuperare la chiave e 'decodificarla' puoi solo controllare che qualcos'altro hash con lo stesso risultato. Che equivale al recupero ... Credo che questo sia/può anche specifico dispositivo. – CW0007007

+0

Non ce l'ho, ma lo farò. Grazie per il puntatore. –

+0

Nessun problema. C'è un sacco di cose là fuori. L'ho usato su un progetto se rimani bloccato. – CW0007007

risposta

10

Uso il cartoncino per l'invio di dati tra le applicazioni. È uno strumento davvero utile per inviare quantità medie di dati tra le applicazioni. Ho effettivamente scritto a blog post sull'argomento qualche tempo fa.

Sfortunatamente, come hai notato, le schede di lavoro private sono disponibili solo per le app che condividono lo stesso prefisso nel loro ID app. Questo è in genere l'ID del team, ma potrebbe essere diverso se si dispone di un'app che risale a quando è possibile utilizzare un identificatore di seme bundle diverso.

Se si dispone di medie quantità di dati privati ​​condivisi tra app con prefissi diversi, è necessaria una soluzione diversa. In questo caso, suggerirei di utilizzare una qualche forma di crittografia e di utilizzare il quadro di lavoro generale per trasferire i dati in giro. A seconda della sensibilità dei dati, probabilmente sarebbe una buona idea criptare i dati anche quando si utilizza un cartoncino privato. Rob Napier ha a nice library per rendere la crittografia e la decrittografia molto semplici.

In alternativa, se i dati sono abbastanza piccoli, è possibile prendere in considerazione la codifica dei dati in un URL e utilizzare uno schema URL per spostare i dati nell'altra app.

+0

Ciao Dillan, grazie per la risposta. Abbiamo utilizzato il cartone generale alla fine con la nostra crittografia di base. –

+0

@MagicBulletDi scusa per aver commentato un post così vecchio, ma potresti elaborare la tua soluzione? Nei miei test il cartone generico veniva sempre sovrascritto da qualsiasi operazione di pasteboard avviata dall'utente, ad es. se l'utente copia del testo o qualcosa del genere tra il momento in cui l'app A scrive qualcosa nel cartone e l'app del momento B tenta di leggerlo. – jcayzac

0

trovato questo articolo che è una panoramica delle diverse tecniche diverse, tra cui quella di cartone fa riferimento sopra:

Sharing Data Locally