Ho fatto una domanda here ma la risposta mi guida ad aprire un nuovo argomento. In breve, voglio lanciare un'applicazione gratuita su Appstore dalla mia applicazione, ma l'app che voglio avviare non ha URL Scheme. I commenti sulla mia altra domanda dicono che usare alcune API speciali come SBSLaunchApplicationWithIdentifier o classi come UIDocumentInteractionController lo rendono possibile. Qualcuno può per favore aiutarmi come avviare un'applicazione dalla mia appicazione. Grazie in anticipoAPI speciale per avviare un'applicazione dalla mia applicazione
risposta
Lasciatemi dire prima che questo metodo è solo il jailbreak! Utilizza API private che Apple può smettere di supportare in qualsiasi momento in una versione futura!
Andiamo ad esso, questo metodo utilizza il [UIApplication launchApplicationWithIdentifier:suspended:]
metodo privato:
[[UIApplication sharedApplication] launchApplicationWithIdentifier:@"com.apple.Preferences" suspended:NO];
Da quello che ho provato di chiamare questo metodo da un'applicazione non è in esecuzione come utente root è inutile, a quanto pare SpringBoard (o LaunchServices) consente solo alle applicazioni root di avviare altre applicazioni utilizzando questo metodo.
Quindi, prima devi eseguire il jailbreak del tuo iPhone, quindi devi eseguire l'applicazione come root.
Per fare in modo che l'app venga eseguita come root, è necessario collocarla in /Applications/YourApp.app invece del solito/User/Applications/UUID /YourApp.app.
È possibile installare OpenSSH utilizzando Cydia e utilizzare SSH per accedere alla shell del telefono.
Poi, dopo aver la vostra applicazione nel posto giusto è necessario impostare le autorizzazioni, ad esempio:
vorrei utilizzare gli stessi come Cydia:
chown -R root:wheel /Applications/YourApp.app
Avanti, un piccolo trucco. Il binario avrà bisogno del setuid bit:
chmod 4755 /Applications/YourApp.app/YourApp
E per l'ultimo passo, non lo fa SpringBoard applicazioni aperte con il bit setuid, ma si apre uno script (che può aprire un'altra applicazione)! Basta cambiare il nome del binario a qualcosa come YourApp_:
mv /Applications/YourApp.app/YourApp /Applications/YourApp.app/YourApp_
e creare un nuovo file chiamato YourApp nella cartella app con il seguente script:
#!/bin/bash
CrrDir=$(dirname "$0")
exec "${CrrDir}"/YourApp_
Ora, respring (c'è un app per quello in Cydia) e sei pronto per andare.
Scusa se questo sembra difficile, non lo è, non ricordo dove l'ho imparato, ma è stato tanto tempo fa. Questo metodo funziona bene in tutte le versioni iOS e l'ho appena testato con iOS 5.1.
Anche in questo caso, LA APP NON SARÀ APPROVATA DA APPLE SE FATE QUESTO.
- 1. Apri applicazione e-mail dalla mia applicazione
- 2. Come accedere in modo sicuro alla mia API dalla mia applicazione web?
- 3. Ruby/Rails - Rimuovi ActiveAdmin dalla mia applicazione
- 4. Invia MMS dalla mia applicazione in Android
- 5. Ripristina risultati/classifica dalla mia applicazione Android
- 6. Come posso avviare un URL nel browser predefinito degli utenti dalla mia applicazione?
- 7. Come aprire l'applicazione di posta per iphone dalla mia applicazione?
- 8. Come avviare app Android all'interno della mia applicazione in Android?
- 9. fare clic su un pulsante in un'altra applicazione dalla mia applicazione C#?
- 10. Avvio dell'applicazione esterna dalla mia app
- 11. iPhone- Apri le impostazioni dalla mia applicazione iOS 6
- 12. Esecuzione di ricerche BLAST/SmithWaterman direttamente dalla mia applicazione
- 13. Posso impostare il PIN per Bluetooth dalla mia applicazione in Android
- 14. Come proteggere la mia applicazione AngularJS e Web Api
- 15. Avviare un'applicazione da un'altra applicazione su Android
- 16. come inviare una mail dalla mia applicazione iOS- SWIFT
- 17. La mia applicazione impiega così tanto tempo per avviare la schermata Prima attività
- 18. Avviare un'applicazione java da un'altra applicazione java
- 19. API KVM per avviare la macchina virtuale
- 20. Applicazione commerciale API flickr
- 21. Leggibilità nella mia applicazione
- 22. Previene "Resume" per la mia applicazione Cocoa?
- 23. Come concedere l'autorizzazione completa a un file creato dalla mia applicazione per TUTTI gli utenti?
- 24. Perché non dovrei usare Process.GetCurrentProcess(). Kill() per uscire dalla mia applicazione WinForm?
- 25. Naming mia applicazione in Android
- 26. Come posso avviare la mia applicazione come "Esegui come amministratore" con forza?
- 27. Posso forzare la mia applicazione ad avviare la fotocamera predefinita piuttosto che l'elenco "Completa azione utilizzando"?
- 28. AntiVirus uccide la mia applicazione
- 29. non mostra la mia applicazione
- 30. Strutturazione della mia applicazione AngularJS
Grazie in anticipo. L'ho letto e lo studierò ora.Non importa se è difficile :) – ilhnctn
Np, spero che questa risposta aiuti più persone, ho visto questa domanda più volte in SO. – fbernardo
Una seconda domanda, devo eseguire il jailbreak del mio dispositivo per fare ciò (come..installare OpenSSH usando Cydia e usare SSH per accedere alla shell del telefono) – ilhnctn