Is there any way to see the file system on the iOS simulator?

旧城冷巷雨未停 提交于 2019-11-27 10:04:17
Kendall Helmstetter Gelner

UPDATE: Since iOS 8:

~/Library/Developer/CoreSimulator/Devices

The location used to be:

~/Library/Application Support/iPhone Simulator

It had directories for all models of simulators (4.0, 4.1, 5.0, etc) you have ever run, go to the one you are running from in Xcode.

Once in a folder, go to Applications, choose the Finder option that shows date for files, and sort by date. Your application will be the most recent since it just changed the directory...

Inside the directory is everything related to your application. You can even drop files in there between runs, to revert back to a stored database in a known state for example...

I go there often enough I keep the iPhone Simulator directory in my Finder sidebar.

Note that with iOS8, the simulator folders are in a totally different directory - really split across a few directories, with folder names for application specific files that change each time you run your app.

iOS 8

Devices

~/Library/Developer/CoreSimulator/Devices

Applications

~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/

Open the program "Activity Monitor", search for your App (just the apps name, not the simulator), click "Informations" and open "Open files and ports". Copy the second entry (something like /Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp). This is the running app, while <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/ is the bundle, and <...>/B97A9504-0FA5-4826-BB6D-A2335A676459/* the sand-boxed folder.

If you pass this as open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/" to the terminal, the folder will open in Finder.

Sounds complicated but isn't.

based on zsero answer

Details

macOS 10.13.1

Solution 1

Run the following line in the terminal

Template

open `xcrun simctl get_app_container booted BUNDLEID_OF_YOUR_APP data` -a Finder

Full Sample

open `xcrun simctl get_app_container booted com.Test data` -a 

BUNDLEID_OF_YOUR_APP ???

BUNDLEID_OF_YOUR_APP = "Bundle Identifier"

Features of the solution 1

  • open file to get app simulator directory

Solution 2

Create a bash scrip with a name of your app and code:

script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`

Features of the solution 2

  • open file to get app simulator directory
  • rename file to get another app simulator directory

Result

Easy. Fast. Xcode 10+.

  1. Run print(NSHomeDirectory()) and copy the path.
  2. Open Finder app and press Shift+Cmd+G
  3. Paste the copied path and press GO

Alternative for 1. is to catch a breakpoint and do po NSHomeDirectory() in console.

There is a nifty app that also supports the XCode 6 simulator.

https://github.com/somegeekintn/SimDirs

It is awesome, use it!

If you want to automate getting the location or use that folder in scripting, you can get the precise location from a running simulator with the following command:

xcrun simctl get_app_container booted my.app.id data
lindon fox

Old post, but I think it is worth mentioning SimPholders to find your Simulator files. It is a menu bar item that tracks your simulator apps and lets you go directly to their folders and content. It's super awesome.

(original answer here: https://stackoverflow.com/a/26557165/377384)

Based on @zsero answer, I made a short bash script which directly opens the simulator folder of your application id. Very handy!

openappfolder.sh

#!/bin/bash

APPID=$1
if OUTPUT=`xcrun simctl get_app_container booted $APPID data` ; then
    open $OUTPUT
else
    echo "$APPID not found!"
fi 2>/dev/null

Then just

openappfolder.sh com.bundle.id

👍

On Xcode Version 8.2.1 (8C1002) I found the .app files installed on the simulator in this path: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator

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