2014-09-11 21 views
10

Con le ultime modifiche a xcode 6, sembra che il file .app e la cartella documenti non risiedano più nella stessa cartella nella directory del simulatore iPhone.Script cartella Xcode 6/iOS 8 Simulator Data e pacchetto

In precedenza, siamo in grado di accedere alla directory e .app a

/Users/me/Library/Application Support/iPhone Simulator/7.1/Applications/SomeCrpyticNumber 

ma in Xcode 6, la directory simulatore è completamente diverso:

~/Library/Developer/CoreSimulator/Devices/CrypticNumber1/data/Containers/Bundle/CrypticNumber2/MyApp.app 

e

~/Library/Developer/CoreSimulator/Devices/CrypticNumber1/data/Containers/Data/CrypticNumber3/Documents  

dove CryptNumber 1,2 e 3 sono tutti diversi. C'è un modo in cui posso ottenere la cartella Documenti corrispondente dopo trovo la cartella che contiene il file .app? I "m problemi con questo.

perché ...?

Se ho costruito l'applicazione su un simulatore iOS 7, la directory di documenti e di file .app sono nella stessa cartella atleast come prima, ma iOS 8 li separa

L'unica soluzione mi viene in mente in questo momento è quello di accoppiare 2 cartelle con le ultime date di creazione/modifica

Edit:..

su un lato nota, questo strumento è molto utile per trovare le cartelle del simulatore su xcode 6 ora: http://simpholders.com/

+0

provare [this] (http://nsrover.wordpress.com/2014/11/28/ios8-simulator-documents-directory/) – NSRover

risposta

10

Anche questo mi ha infastidito. Non sono stato in grado di risolverlo al 100% ma ho creato un'applicazione rapida e sporca per aiutare un po '. Riesco sempre a trovare la directory del dispositivo, ma non ho ancora trovato un modo per rintracciare le directory bundle/sandbox in modo affidabile. Fonte: https://github.com/somegeekintn/SimDirs

Modifica: è andato avanti e ha iniziato la scansione di mobile_installation.log per trovare altre posizioni. Sembra trovare tutto ora.

+0

Sembra fantastico. Sto anche facendo qualcosa di simile a quello che hai tranne che non ho una GUI :) In questo momento, userò solo simulator_app = "$ (trova" ~/Library/Developer/CoreSimulator/Devices "-name" $ project_name.app ")" \t full_path_to_app = "$ (dirname" $ ​​simulator_app ")" per trovare la directory per l'app, ma suppongo che vorremmo abbinare la data di creazione di questa cartella con un'altra cartella per trovare il pacchetto directory. – kevinl

+1

Si consiglia inoltre di eseguire il rooting nei dati/Libreria/Registri/MobileInstallation/mobile_installation.log.0. Sembra che registri le informazioni di installazione e disinstallazione dell'app. Deve essere una registrazione più permanente di questo da qualche parte si potrebbe pensare. –

+1

Sto usando uno script che corrisponde all'ID bundle con quello in ".com.apple.mobile_container_manager.metadata.plist' - sembra essere abbastanza affidabile. –

1

Ho affrontato lo stesso problema quando ho memorizzato il percorso completo utilizzando CoreData. Quando si recupera il percorso completo, restituisce null poiché l'UUID della cartella documenti è diverso ogni volta che l'app viene riavviata. In seguito è la mia risoluzione:

  1. Assicurarsi memorizzare solo il percorso relativo del documento/file in CoreData. Per esempio. memorizza "Files/image.jpg" invece di "/Users/yourname/.../Applications/UUID/Document/Files/image.jpg".
  2. utilizzare la seguente per recuperare la posizione del documento app:

    [[[NSFileManager defaultManager] URLsForDirectory: inDomains NSDocumentDirectory: NSUserDomainMask] LastObject];

  3. Concatenare sia il numero 2 che il numero 1 per ottenere il percorso completo del documento/file che si desidera recuperare.
è possibile fare riferimento ad Apple Developer Nota: https://developer.apple.com/library/ios/technotes/tn2406/_index.html

1

C'è un ottimo plugin per Xcode, che permette di aprire la directory per qualsiasi applicazione che si desidera. Si chiama ZLGotoSandboxPlugin ed è possibile installarlo tramite Alcatraz. Questo plugin aggiunge un sottomenu speciale al menu "File" di Xcode (ho nascosto diversi nomi di app lì): The plugin menu.

Lo trovo piuttosto conveniente.

Problemi correlati