Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode 6 / iOS 8 Simulator Data and Bundle folder script

With the latest changes to xcode 6, it looks like the .app file and document folder no longer resides in the same folder in the iPhone simulator directory.

Previously, we can access the directory and .app file at

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

but in Xcode 6, the simulator directory is completely different:

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

and

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

where CryptNumber 1,2, and 3 are all different. Is there a way where I can get the corresponding Documents folder after I find the folder that contains the .app file? I"m having trouble with this.

why...?

If I built the app on an iOS 7 simulator, the documents directory and .app file are in the same folder atleast like before, but iOS 8 separates them.

The only solution I can think of right now is to pair up 2 folders that have the latest creation/modification dates.

Edit:

on a side note, this tool is very useful for finding your simulator folders on xcode 6 now: http://simpholders.com/

like image 627
kevinl Avatar asked Sep 11 '14 18:09

kevinl


People also ask

Where is iOS simulator data stored?

The file system of the current device of the iOS simulator is available in ~/Library/Developer/CoreSimulator/Devices .

Where is the Xcode Contents folder?

The new Xcode is . app and all the package contents are with it, inside the applications folder.

How do I access iOS simulator files?

# Open application folder in Finder First, copy the path to the app folder from Xcode console. Then open Finder, click on Go -> Go to Folder and paste the application directory path. You will now be able to browse all the files in your application folder.


3 Answers

This has been bugging me as well. I've not been able to solve it 100% but I created a quick and dirty app to help a bit. I can always find the device directory, but I've not yet found a way to track down the bundle / sandbox directories reliably. Source: https://github.com/somegeekintn/SimDirs

Edit: Went ahead and started scanning mobile_installation.log to find additional locations. Seems to find everything now.

like image 78
Casey Fleser Avatar answered Nov 15 '22 18:11

Casey Fleser


I faced the same issue when I stored the full path using CoreData. When retrieving the full path, it return null because the document folder UUID is different every time the app restarts. Following is my resolution:

  1. Make sure storing only the relative path of the document / file in CoreData. E.g. store "Files/image.jpg" instead of "/Users/yourname/.../Applications/UUID/Document/Files/image.jpg".
  2. Use the following to retrieve the app document location:

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

  3. Concatenate both #2 and #1 to get the full path of the document / file you want to retrieve.
You can refer to Apple Developer Note: https://developer.apple.com/library/ios/technotes/tn2406/_index.html
like image 28
netliner Avatar answered Nov 15 '22 19:11

netliner


There is a great plugin for Xcode, that allows you to open the directory for any app you want. It's called ZLGotoSandboxPlugin, and you can install it via Alcatraz. This plugin adds a special submenu to the Xcode's "File" menu (I've hidden several app names there): The plugin menu.

I find it rather convenient.

like image 21
FreeNickname Avatar answered Nov 15 '22 18:11

FreeNickname