Se l'SDK di iOS non dispone di funzionalità per questo, allora cosa succede se ho un sito web (statico) di base e da qualche parte su quel sito web ho impostato manualmente una parte di dati che specifica l'ultima versione della mia app nell'app store ogni volta che rilascio un aggiornamento? Come posso fare in modo che la mia app esegua la query sul sito Web per i dati di quella versione e ne controlli la versione in esecuzione sul dispositivo iOS?Qual è il modo più semplice per verificare la versione corrente della tua app rispetto alla versione più recente nell'app store?
risposta
Sei sulla strada giusta. È necessario effettuare una richiesta HTTP alla pagina Web della versione statica. Per fare ciò è possibile utilizzare un oggetto NSURLConnection. Quindi, qualcosa di simile a:
NSURL * url = [NSURL URLWithString:@"http://yourweb.com/version.txt"];
NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60];
_connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Poi nell'implementazione delegato:
(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSHTTPURLResponse*)response
{
if(response.statusCode != 200)
// you got an error
}
- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
// again with the errors ...
}
// you got some data ... append it to your chunk
// in your case all the data should come back in one callback
- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
[mData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// your request finished ... check the version here
}
Quindi nel tuo connectionDidFinishLoading si dispone di uno sguardo al mData che avete raccolto. Analizzare fuori il numero di versione e confrontarlo con il vostro pacco numero di versione:
[self infoValueForKey:@"CFBundleVersion"];
molto semplice, che dovrebbe funzionare benissimo, grazie! – BeachRunnerFred
@BeachRunnerJoe Nessun problema. :) – RedBlueThing
Il problema è che CFBundleVersion viene compilato erroneamente con il numero di build, non con la versione. Provalo in Xcode: imposta un numero di build diverso dalla versione dell'applicazione. La chiamata sopra restituirà il numero di build, perché Xcode popola il plist in modo errato. Mette il numero di build nella versione bundle. – Oscar
avevo usato la stessa soluzione @RedBlueThing consigliata in molte delle mie applicazioni. L'ho ridimensionato a un servizio che gli altri sviluppatori di app possono utilizzare a CleverStork - un gestore aggiornamenti per applicazioni. Spero che vi piaccia :)
È possibile effettuare una query come http://itunes.apple.com/en/lookup?bundleId=com.easi6.doorsndots in AppStore.
Restituzione di JSON contiene informazioni sulla versione (attualmente su AppStore) che possono essere confrontate con l'altra in bundle.
- 1. Come verificare la versione corrente di sympy e aggiornare alla versione più recente
- 2. Aggiornamento Git alla versione più recente (mac)
- 3. Come aggiornare Spark alla versione più recente?
- 4. Qual è la versione più recente di WebSphere MQ Client?
- 5. NPM aggiornamento tutto alla versione più recente
- 6. Collegamento della libreria compilata alla versione più recente di glibc
- 7. Come tornare alla versione più recente in Git?
- 8. La percentuale di distribuzione della versione iOS più recente?
- 9. Come aggiornare vagamente la precisione32 alla versione più recente?
- 10. Aggiornamento alla versione più recente dalla riga di comando
- 11. qual è la versione oracle più leggera?
- 12. Come reindirizzare l'assembly log4net alla versione più recente
- 13. Gradle - ottenere la versione più recente di una dipendenza
- 14. Come forzare la versione locale come più recente su SVN
- 15. Verificare la compatibilità della versione java
- 16. Git - il modo più semplice per vedere diff con la versione precedente se ho lo sha
- 17. Come verificare la conformità della versione OpenGL?
- 18. Qual è la tua classe più riusata?
- 19. Qual è la versione più recente di GAE SDK che supporta Python 2.5?
- 20. Ottenere nokogiri per usare una versione più recente di libxml2
- 21. Qual è il modo più semplice per ottenere la posizione corrente di un iPhone?
- 22. Avviso versione principale 52 è più recente di 51, la versione principale più alta supportata da questo compilatore
- 23. Cambia la versione dell'assembly per più progetti
- 24. Qual è il modo più semplice per verificare se la stringa contiene un tag immagine?
- 25. Una versione più recente di com.android.support:appcompat-v7 rispetto 23.2.1 è disponibile: 24.0.0-alfa1
- 26. initWithCoder è stata segnata in modo esplicito errore disponibile utilizzando la versione più recente di Xamarin.iOS
- 27. Perché la versione parallela è stata più lenta della versione sequenziale in questo esempio?
- 28. recuperare la versione corrente App dal pacchetto
- 29. Verificare se esiste una versione più recente del mio file locale in Github, con R
- 30. Best practice per il controllo della versione con più progetti
Mi chiedo perché Apple non fornisce un meccanismo per verificare tali informazioni tramite, ad esempio, quadro iTunes o qualcosa del genere. –