source

아이폰 시뮬레이터는 데이터를 어디에 저장합니까?

ittop 2023. 6. 1. 22:55
반응형

아이폰 시뮬레이터는 데이터를 어디에 저장합니까?

앱 데이터를 저장하는 데 사용하는 SQLite DB를 가지고 있으며, 문제를 디버깅하기 위해 내부를 살펴 볼 수 있습니다. 하지만 iPhone Simulator는 일반적으로 데이터를 어디에 저장합니까?

Xcode6+/iOS8+의 경우

~/라이브러리/개발자/코어 시뮬레이터/디바이스/[디바이스]ID]/데이터/컨테이너/데이터/어플리케이션/[AppID]/

SDK 3.2에 대한 정답 - SDK 4는 해당 경로의 /User 폴더를 시뮬레이션할 수 있는 각 기존 iPhone OS/iOS 버전의 번호로 대체하므로 경로는 다음과 같습니다.

~/도서관/애플리케이션 지원/아이폰 시뮬레이터/[OS version]/응용프로그램/[appGUID]/

이전 SDK를 함께 설치한 경우 3.1.x 시뮬레이터는 다음 위치에 데이터를 계속 저장합니다.

~/도서관/애플리케이션 지원/아이폰 시뮬레이터/사용자/애플리케이션/[appGUID]/

가장 쉬운 방법.

  1. 어딘가에서 중단점을 잡으십시오.(또는 Najdan Tomici가 댓글에 언급한 것처럼 프로그램 실행 일시 중지(디버깅 영역에서 일시 중지 탭)

  2. 콘솔 창에 입력

결과:

(lldb) po NS홈디렉토리() /사용자/사용자명/도서관/개발자/코어시뮬레이터/디바이스/4734F8C7-B90F-4566-8E89-5060505E387F/자료/자료/응용/395818BB-699F-AA-0683759D

터미널 없이 앱 데이터가 어디에 있는지 찾을 수 있는 또 다른 방법이 방법은 다음과 같습니다.

  1. 시뮬레이터에서 앱 실행
  2. 활동 모니터 열기
  3. CPU 탭에서 앱 이름 찾기
  4. 두 번 클릭하고 "파일 및 포트 열기"를 엽니다.

여기에 이미지 설명 입력

발견:

~/Library/Application Support/iPhone Simulator/User/

iOS 8 ~/라이브러리/개발자/코어 시뮬레이터/디바이스/[디바이스 ID]/데이터/애플리케이션/[appGUID]/문서/

온 라이온 더 라이온Users/[username]/Library숨겨져 있습니다.

파인더에서 간단히 보려면 화면 상단의 '이동' 메뉴를 클릭하고 'alt' 키를 누른 상태에서 '라이브러리'를 표시합니다.

'라이브러리'를 클릭하면 이전에 숨겨둔 라이브러리 폴더를 볼 수 있습니다.

이전에 조언한 내용:

사용하다

chflags nohidden /users/[username]/library

터미널에서 폴더를 표시합니다.

Simulator가 실행 중인 경우 앱의 컨테이너 경로를 얻을 수 있습니다.

xcrun simctl get_app_container booted <app bundle identifier>

출력 예:

$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app

"message"는 대부분의 경우에 대체될 수 있습니다.simctl장치 UDID가 필요한 모든 위치에서 명령을 실행할 수 있습니다.

다음을 사용하여 장치 목록을 볼 수 있습니다.xcrun simctl list 를사하여용특명대도봅니다움을말한으로 .xcrun simctl help.

업데이트: Xcode 8.3의 일반적인 요청에 따라 "app", "data", "groups" 또는 앱 그룹 식별자를 추가하여 원하는 컨테이너 종류를 지정할 수 있습니다.

데이터 컨테이너를 가져오는 방법

$ xcrun simctl get_app_container booted com.example.app data

Xcode 5에서는 아래 코드를 사용할 수 있습니다.

#import <Foundation/NSFileManager.h>

그리고:

NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);

결과는 다음과 같습니다.

"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"

에▁where디hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh앱을 입니다.iOS 앱을 식별하는 일부 16진수 문자열입니다.

시뮬레이터 내에서 앱이 어디에 있는지 찾는 가장 쉬운 방법 중 하나입니다.사용자 "N 임시 디렉토리()"

단계-

  1. 앱 내 아무 곳에나 브레이크포인트를 적용하고 앱을 실행합니다.
  2. 앱이 중단점에서 멈추면 Xcode 콘솔에 다음 명령을 입력합니다.

    pnN 임시 디렉터리()

올바른여기에 이미지 설명 입력 통찰력은 아래 이미지를 참조하십시오.

이제 임시 폴더까지의 정확한 경로를 확인할 수 있습니다.돌아가서 모든 앱 관련 폴더를 볼 수 있습니다.

이것도 도움이 되길 바랍니다.해피 코딩 :)

Xcode 6.0은 적어도 iOS 8 시뮬레이터를 위해 이 위치를 다시 한 번 이동한 것으로 보입니다.

~/라이브러리/개발자/코어 시뮬레이터/디바이스/[디바이스]ID]/데이터/컨테이너/데이터/어플리케이션/[앱]신분증]

Xcode가 시뮬레이터 및 런타임을 저장하는 위치

런타임

$ open ~/Library/Developer/CoreSimulator/Profiles/Runtimes

예:iOS 13.0,watchOS 6.0이것들은 가장 많은 공간을 차지합니다.합니다. 5GB까지 가능합니다.

장치들

$ open ~/Library/Developer/CoreSimulator/Devices

예:iPhone Xr,iPhone 11 Pro Max이들은 일반적으로 각각 15MB 미만입니다.

설명.

시뮬레이터는 런타임과 장치 간에 분할됩니다.실행하는 경우$ xcrun simctl list개요를 볼 수 있지만 시뮬레이터의 물리적 위치를 찾으려면 제가 보여드린 디렉토리를 보십시오.

지원하지 않는 런타임은 삭제해도 무방합니다.원하는 경우 나중에 다시 설치할 수 있습니다.

간단히 다음 작업을 수행합니다.

NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);

그리고 다음과 같은 생각을 하게 될 것입니다.

/Users/admin/라이브러리/개발자/코어 시뮬레이터/디바이스/58B5B431-D2BB-46F1-AFF3-DFC789D189E8/데이터/컨테이너/데이터/어플리케이션/6F3B985F-351E-468F-9CFD-BC21725AFB/문서

거기로 가면 XCode 버전에 상관없이 앱의 문서 폴더가 보일 것입니다. ("폴더로 이동..Finder에서 명령하고 경로 "~/라이브러리"를 지정합니다.

문자열 경로에 대한 빠른 버전:

let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
                                    .userDomainMask, true).first
print(docDirPath)

및 폴더 URL:

let docDirUrl =
    FileManager.default.urls(for: .documentDirectory,
                             in: .userDomainMask).first
print(docDirUrl)

iOS 5:

/Users/[사용자 이름]/도서관/애플리케이션 지원/아이폰 시뮬레이터/5.0/애플리케이션/[AppGUID]/

Xcode 4.6의 경우 다음 경로에 저장됩니다.

/Users/[currentuser]/도서관/응용프로그램 지원/아이폰 시뮬레이터/6.1/응용프로그램/

프로그래밍 방식으로 확인하려면 다음 코드를 사용합니다.

  NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);

iOS 8의 경우

Documents 폴더를 찾으려면 Documents 폴더에 파일을 쓸 수 있습니다.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];

라고 말하다, 에.didFinishLaunchingWithOptions.

그런 다음 터미널을 열고 다음 폴더를 찾을 수 있습니다.

$ find ~/Library -name Words.txt

macOS Catalina의 경우 다음과 같이 DB를 찾았습니다.

~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db

다음 정보를applicationId폴더를 수정된 날짜별로 정렬했지만 더 나은 방법이 있을 것입니다.

아직도 사자에서 이 문제를 겪고 있는 사람이 있다면 ~/라이브러리 디르를 볼 수 있는 19가지 팁이 포함된 훌륭한 기사가 있습니다.여기에서 댄 프레이크의 기사를 찾아보세요. http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html

시뮬레이터의 디렉토리는 아래와 같습니다.

~/도서관/애플리케이션 지원/아이폰 시뮬레이터/사용자/

저는 이 프로그램과 관련이 없지만, 만약 당신이 이것들 중 하나라도 찾는다면 심폴더스는 믿을 수 없을 정도로 쉽게 할 수 있습니다.

Xcode를 자주 사용하지 않는 반응 네이티브 사용자의 경우, 그냥 사용할 수 있습니다.find터미널을 열고 데이터베이스 이름으로 검색합니다.

$ find ~/Library/Developer -name 'myname.db'

정확한 이름을 모르는 경우 와일드카드를 사용할 수 있습니다.

$ find ~/Library/Developer -name 'myname.*'

아래 코드를 사용해 볼 수 있습니다.

NSString *fileName = @"Demo.pdf";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
    NSLog(@"File path%@",pdfFileName);

시뮬레이터에서 xCode로 빌드한 App 위치의 사전을 열려면 다음을 수행합니다.

  1. 파인더 창 열기(웃는 얼굴 아이콘)
  2. 그런 다음 이동 -> 폴더로 이동을 클릭합니다.
  3. 유형: ~/도서관/애플리케이션 지원/아이폰 시뮬레이터
  4. 디렉터리는 여러 시뮬레이터의 iOS 버전입니다.
  5. 하위 디렉터리는 시뮬레이터에 설치된 앱입니다.
  6. Documents 폴더는 사용자가 iCloud에 백업하는 컨텐츠를 생성한 곳입니다.

언급URL : https://stackoverflow.com/questions/1108076/where-does-the-iphone-simulator-store-its-data

반응형