Xcode 6 / iOS 8 Simulator Data and Bundle folder script

柔情痞子 提交于 2020-01-01 08:43:48

问题


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/


回答1:


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.




回答2:


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


回答3:


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):

I find it rather convenient.



来源:https://stackoverflow.com/questions/25794747/xcode-6-ios-8-simulator-data-and-bundle-folder-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!