iOS 시뮬레이터에서 파일 시스템을 볼 수있는 방법이 있습니까?


170

현재 실행 중이거나 종료 된 iOS 시뮬레이터의 파일 시스템을 탐색 할 수있는 방법이 있습니까? 방법이 있다면 특정 앱의 파일을 볼 수 있다고 생각했습니다.

프로그래밍 방식 으로이 작업을 수행하고 싶지 않습니다. Finder에서 파일을 보거나 열고 싶습니다.

답변:


232

업데이트 : iOS 8 이후 :

~ / 라이브러리 / 개발자 / CoreSimulator / 장치

위치는 다음과 같습니다.

~ / 라이브러리 / 응용 프로그램 지원 / iPhone 시뮬레이터

그것은 당신이 지금까지 실행 한 모든 시뮬레이터 모델 (4.0, 4.1, 5.0 등)에 대한 디렉토리를 가지고 있었고 Xcode에서 실행중인 시뮬레이터로 이동하십시오.

폴더에 들어가면 응용 프로그램으로 이동하여 파일 날짜를 표시하는 Finder 옵션을 선택하고 날짜별로 정렬하십시오. 디렉토리가 변경되었으므로 가장 최근의 응용 프로그램입니다 ...

디렉토리 안에는 응용 프로그램과 관련된 모든 것이 있습니다. 실행 사이에 파일을 드롭하여 알려진 상태의 저장된 데이터베이스로 되돌릴 수 있습니다.

필자는 종종 Finder 사이드 바에 iPhone Simulator 디렉토리를 보관합니다.

iOS8에서 시뮬레이터 폴더는 완전히 다른 디렉토리에 있습니다. 실제로는 앱을 실행할 때마다 변경되는 응용 프로그램 특정 파일의 폴더 이름으로 몇 개의 디렉토리로 나뉩니다.


20
Lion에서 ~ / Library 폴더를 보려면 터미널에서 다음 명령을 실행해야합니다. chflags nohidden ~ / Library /
Dan J

9
Finder의 Go메뉴 를 보면서 옵션 키를 누를 수도 있습니다
Wayne

3
Finder에서 ⌘⇧G를 사용합니다. CD로 터미널을 여는 것보다 빠릅니다.
Jacob Pritchett

3
'옵션'을 누른 상태에서 파인더의 메뉴 표시 줄에서 '이동'을 누르십시오
Matjan

3
임의의 해시 사이에서 특정 앱의 파일을 찾는 것은 거의 불가능합니다.이 명령을 사용하여 실제로 앱의 파일을 xcrun simctl get_app_container booted my.app.id data
찾으십시오

77

iOS 8

장치

~/Library/Developer/CoreSimulator/Devices

응용

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

8
현재를 결정 {{Device Code}}}하는 쉬운 방법은 Xcode에서 원하는 시뮬레이터를 연 다음 Finder에서 ~/Library/Developer/CoreSimulator/Devices/디렉토리를로 정렬하는 것 Date Modified입니다. 가장 최근이 원하는 것입니다.
Stan James

2
응용 프로그램 데이터의 경우 : ~ / 라이브러리 / 개발자 / CoreSimulator / 디바이스 / {{장치 코드}} / 데이터 / 용기 / 데이터 / 응용 프로그램 / {{응용 프로그램 ID}}
비요른 Egil

실제로, 당신은 {{Device Code}}하드웨어> 장치> 장치 관리 ...에서 볼 수 있습니다
Filius Patris

30

"Activity Monitor"프로그램을 열고 앱 (시뮬레이터가 아닌 앱 이름 만)을 검색 한 다음 "정보"를 클릭하고 "파일 및 포트 열기"를 엽니 다. 두 번째 항목을 복사하십시오 (예 :) /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에서 열립니다.

복잡해 보이지만 그렇지 않습니다.


좋은 지적! 특히 .app응용 프로그램의 파일 시스템을보기 위해 갈 필요가 없습니다 .
Yevhen Dubinin

좋은 제안 .. 정말 도움이되는 스크립트 나 작은 유틸리티가 있기를 바랍니다.. 각 iOS 장치는 완전히 다른 폴더로 에뮬레이트됩니다. 폴더 구조는 새 버전의 모든 곳에 있습니다 .. :(
Markive

우수한 대답, 경로는 엑스 코드 버전의 변화가 특별히 경우
rgkobashi

21

쉬운. 빠른. Xcode 10 이상

  1. 사용 print(NSHomeDirectory())복사경로를 하십시오.
  2. Finder 앱을 열고Shift+Cmd+G
  3. 복사 한 경로를 붙여 넣고 GO를 누릅니다.

1의 대안은 중단 점을 잡고 po NSHomeDirectory()콘솔에서 수행하는 것 입니다.


1 단계는 어디에서 실행합니까?
카슨 홀츠 하이머

1
예를 들면 코드에 @CarsonHolzheimer viewDidLoad당신의 ViewController. 어쩌면 나는 "달리기"가 아니라 다른 것을 써야했다. 감사!
Tung Fam

18

zsero 답변 기반

세부

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 = "번들 식별자"

여기에 이미지 설명을 입력하십시오

솔루션의 특징 1

  • 앱 시뮬레이터 디렉토리를 얻기 위해 파일 열기

해결책 2

앱 이름과 코드로 bash scrip을 만듭니다.

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

여기에 이미지 설명을 입력하십시오

솔루션의 특징 2

  • 앱 시뮬레이터 디렉토리를 얻기 위해 파일 열기
  • 다른 앱 시뮬레이터 디렉토리를 얻기 위해 파일 이름 바꾸기

결과

여기에 이미지 설명을 입력하십시오


"Full Sample"문자열 끝에 "Finder"를 추가해야합니다.
phantom_2


7

위치 가져 오기를 자동화하거나 스크립트에서 해당 폴더를 사용하려는 경우 다음 명령을 사용하여 실행중인 시뮬레이터 에서 정확한 위치를 얻을 수 있습니다 .

xcrun simctl get_app_container booted my.app.id data


1

@zsero 답변을 바탕으로 bash응용 프로그램 ID의 시뮬레이터 폴더를 직접 여는 짧은 스크립트를 만들었습니다 . 매우 편리합니다!

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

Swift 4.2 이상의 경우 다음 코드를 배치하십시오.

#if targetEnvironment(simulator)
    print("::::: SIMULATOR :::::")
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("App Documents Directory:\n\(documentsPath)\n")
    }
#endif

... 다음과 같은 소스 코드 위치에서 :

func application(
    _ application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    // ...
    return true
}

터미널 명령 행 과 함께 cd또는 open터미널 에서 결과 경로를 사용하십시오 . 또는 shift-cmd-G"폴더로 이동…"파인더 프롬프트에 경로를 붙여 넣으십시오 .

이전 언어 버전을 포함하는 관련 답변 : iOS 8 Beta Simulator의 문서 디렉토리 경로


0

Xcode 버전 8.2.1 (8C1002)에서 시뮬레이터에 설치된 .app 파일이 다음 경로에서 발견되었습니다. ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator


0

먼저 터미널에서 장치 ID 가 있는 시뮬레이터 목록을 가져옵니다.

  1. 기기 -s 장치
  2. xcrun 간단한 목록

그런 다음 장치 ID를 경로 아래에 두십시오. 특정 시뮬레이터 파일 시스템을 얻게됩니다 ~/Library/Developer/CoreSimulator/Devices/{{deviceID}}

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.