web-dev-qa-db-ja.com

iOSシミュレーターでファイルシステムを表示する方法はありますか?

現在実行中または単に終了したiOSシミュレーターのファイルシステムを参照する方法はありますか?特定のアプリのファイルを表示する方法があれば、それを見ることができるようになります。

これをプログラムで行いたくないことに注意してください。 Finderでファイルを表示/開きたい。

159
Chris Williams

UPDATE:iOS 8以降:

〜/ Library/Developer/CoreSimulator/Devices

以前は次の場所でした。

〜/ライブラリ/ Application Support/iPhone Simulator

これには、これまでに実行したシミュレータのすべてのモデル(4.0、4.1、5.0など)のディレクトリがあり、Xcodeで実行しているものに移動します。

フォルダに移動したら、[アプリケーション]に移動し、ファイルの日付を表示する[Finder]オプションを選択して、日付で並べ替えます。ディレクトリを変更しただけなので、アプリケーションは最新のものになります...

ディレクトリ内には、アプリケーションに関連するすべてのものがあります。実行の間にファイルをドロップして、たとえば既知の状態の保存されたデータベースに戻すこともできます...

私はそこに頻繁に行き、FinderサイドバーにiPhone Simulatorディレクトリを保持します。

IOS8では、シミュレーターフォルダーはまったく異なるディレクトリにあることに注意してください。実際には、いくつかのディレクトリに分割され、アプリケーションを実行するたびに変わるアプリケーション固有のファイルのフォルダー名があります。

iOS 8

装置

~/Library/Developer/CoreSimulator/Devices

用途

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

プログラム「Activity Monitor」を開き、アプリ(シミュレーターではなくアプリ名のみ)を検索し、「情報」をクリックして「ファイルとポートを開く」を開きます。 2番目のエントリ(/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourAppなど)をコピーします。これは実行中のアプリであり、<...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/はバンドル、<...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*はサンドボックスフォルダーです。

これをopen "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"として端末に渡すと、フォルダがFinderで開きます。

複雑に聞こえますが、そうではありません。

27
vikingosegundo

簡単です。速い。 Xcode 10以降。

  1. print(NSHomeDirectory())およびcopyパスを実行します。
  2. Finder appを開き、Shift+Cmd+Gを押します
  3. 貼り付けコピーしたパスを押してGO

1.の代替方法は、ブレークポイントをキャッチして、コンソールでpo NSHomeDirectory()を実行することです。

16
Tung Fam

zsero answerに基づく

詳細

macOS 10.13.1

解決策1

ターミナルで次の行を実行します

テンプレート

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

フルサンプル

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

BUNDLEID_OF_YOUR_APP ???

BUNDLEID_OF_YOUR_APP =「バンドル識別子」

enter image description here

解決策1の特徴

  • ファイルを開いてアプリシミュレータのディレクトリを取得します

解決策2

アプリの名前とコードを使用してbash scripを作成します。

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

enter image description here

解決策2の機能

  • ファイルを開いてアプリシミュレータのディレクトリを取得します
  • ファイル名を変更して別のアプリシミュレータディレクトリを取得する

結果

enter image description here

16

XCode 6シミュレーターもサポートする気の利いたアプリがあります。

https://github.com/somegeekintn/SimDirs

それは素晴らしいです、それを使用してください!

9
deepflame

場所の取得を自動化するか、スクリプトでそのフォルダーを使用する場合は、次のコマンドでrunningシミュレーターから正確な場所を取得できます。

xcrun simctl get_app_container booted my.app.id data
6
hyperknot

古い投稿ですが、シミュレータファイルを見つけるには SimPholders に言及する価値があると思います。シミュレーターアプリを追跡し、フォルダーとコンテンツに直接アクセスできるメニューバー項目です。すごいね。

(ここに元の答え: https://stackoverflow.com/a/26557165/377384

2
lindon fox

@zseroの回答に基づいて、アプリケーションIDのシミュレーターフォルダーを直接開く短いbashスクリプトを作成しました。とても便利な!

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

それからちょうど

openappfolder.sh com.bundle.id

????

1
Martin

Xcodeバージョン8.2.1(8C1002)では、次のパスでシミュレーターにインストールされた.appファイルが見つかりました:~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator

0
JoxieMedina