iOS 7에서 iOS 시뮬레이터의 문서 디렉토리는 다음 위치에서 찾을 수 있습니다.
/Users/Sabo/Library/Application Support/iPhone Simulator/
그러나 iOS 8 Beta Simulator 에서는 위의 디렉토리에서 iOS 8 에 해당하는 디렉토리를 찾을 수 없습니다 .
iOS 8 시뮬레이터의 문서 디렉토리 경로는 어디에 있습니까?
답변
내 컴퓨터에서 경로는 다음과 같습니다.
~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/
참고 : 이러한 긴 ID (예 : UDID)는 컴퓨터에서 다를 수 있습니다.
답변
NSLog
“AppDelegate”의 어딘가에 코드 아래에서 프로젝트를 실행하고 경로를 따르십시오. 이렇게하면 “~ / Library / Developer / CoreSimulator / Devices /”내부에서 무작위로 검색하는 대신 문서를 쉽게 찾을 수 있습니다.
목표 -C
NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
Swift
Swift 1.2를 사용하는 경우 아래 코드를 사용하면 #if
#endif
블록으로 인해 Simulator를 사용할 때만 개발 중에 출력됩니다 .
#if arch(i386) || arch(x86_64)
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString
NSLog("Document Path: %@", documentsPath)
#endif
“/ Users / ankur / Library / Developer / CoreSimulator / Devices / 7BA821 …”에서 경로를 복사 한 다음 ” Finder “로 이동 한 다음 ” 폴더로 이동 “또는 command+ shift+ g를 붙여넣고 경로를 붙여 넣습니다. 문서 디렉토리 🙂
답변
그냥 쓰기 에 울부 짖는 코드 AppDelegate에 -> didFinishLaunchingWithOptions
목표 C
#if TARGET_IPHONE_SIMULATOR
// where are you?
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
#endif
스위프트 2.X
if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path {
print("Documents Directory: " + documentsPath)
}
스위프트 3.X
#if arch(i386) || arch(x86_64)
if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
print("Documents Directory: \(documentsPath)")
}
#endif
스위프트 4.2
#if targetEnvironment(simulator)
if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
print("Documents Directory: \(documentsPath)")
}
#endif
출력
/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A / data / Containers / Data / Application / 25174F64-7130-4B91-BC41-AC74257CCC6E / Documents
“/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A …” 에서 경로를 복사 한 다음 “ Finder “로 이동 한 다음 “폴더로 이동”또는 command + shift + g 및 경로를 붙여넣고 Mac에서 문서 디렉토리로 이동합니다.
답변
iOS 앱을 개발하는 동안 파일과 폴더를 쉽게 찾을 수있는 SimPholders라는 멋진 유틸리티 앱을 추천합니다. SimPholders2라는 새로운 시뮬레이터와 함께 작동하는 새 버전이 있습니다. simpholders.com 에서 찾을 수 있습니다.
답변
여기에 많은 답변이 있음에도 불구하고 iOS 8.3 시뮬레이터의 폴더 구조가 어떻게 변경되었는지에 대한 이해를 제공하지 않으며 앱 데이터 (문서 폴더)를 찾는 빠른 방법을 제공하지 않습니다.
iOS 8 이후 앱의 데이터 저장 폴더는 앱의 실행 파일과 분리되어 있지만 iOS 7 이하의 폴더 구조는 동일합니다. 유일한 차이점은 모든 시뮬레이터 (다른 유형 및 버전)가 이제 하나의 큰 폴더에 있습니다.
따라서 iOS 8,7,6 시뮬레이터의 경로는 다음과 같습니다.
~/Library/Developer/CoreSimulator/Devices
모든 시뮬레이터는 이제 시뮬레이터를 재설정 할 때마다 변경되는 고유 식별자로 이름이 지정된 폴더에 포함됩니다.
Identifier
로 이동하여 각 장치 및 시뮬레이터에 대한를 찾을 수 있습니다 Xcode > Window > Devices
(식별자의 처음 3-4 개 문자는 기억하기에 충분합니다).
앱을 설치 한 앱을 찾으려면 Run scheme > devices
(화면 2)를 살펴보십시오 .
이제 시뮬레이터를 식별 한 후 버전에 따라 폴더 구조가 매우 다릅니다.
iOS 8 에서 앱의 실행 파일과 데이터 폴더는 서로 다른 폴더에 있습니다.
실행 가능 :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]
데이터 폴더 :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/
문서 폴더 :
~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents
에 아이폰 OS 7 단지 지금 기억하기 전에 모든 시뮬레이터 (위 참조) 같은 폴더에 같이 폴더 구조 아래 것은 동일합니다.
답변
앱에서 CoreData를 사용하는 경우 터미널을 사용하여 sqlite 파일의 이름을 검색하는 것이 유용한 방법입니다.
find ~ -name my_app_db_name.sqlite
결과에는 앱을 실행 한 모든 시뮬레이터의 전체 파일 경로가 나열됩니다.
정말 Apple이 “Finder의 Reveal Documents 폴더”와 같은 버튼을 iOS 시뮬레이터 파일 메뉴에 추가하기를 바랍니다.
답변
~ / Library / Developer / CoreSimulator / Devices / 경로를 살펴 봐야하는 것이 맞습니다.
그러나 내가보고있는 문제는 앱을 실행할 때마다 경로가 계속 변경된다는 것입니다. 경로에는 Application 문자열 뒤에 다른 긴 ID 세트가 포함되어 있으며 앱을 실행할 때마다 계속 변경됩니다. 이것은 기본적으로 내 앱이 다음에 실행될 때 캐시 된 데이터가 없다는 것을 의미합니다.