[ios] Xcode 6 iPhone 시뮬레이터 응용 프로그램 지원 위치

Xcode 6에는 Core Data를 사용하는 앱이 있지만 iOS 8 iPhone Simulator의 응용 프로그램 지원에는 폴더가 없습니다. 내 파일과 Core Data sqlite 데이터베이스는 어디에 저장됩니까?



답변

시뮬레이터 디렉토리는 Xcode 6 베타로 이동되었습니다 …

~/Library/Developer/CoreSimulator

디렉토리를 앱의 Documents 폴더로 찾아 보는 것은 조금 더 힘든 일입니다.

~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite


답변

SimPholders 를 사용 하여 시뮬레이터 파일을 찾는 것이 좋습니다 . 시뮬레이터 앱을 추적하고 해당 폴더와 컨텐츠로 직접 이동할 수있는 메뉴 표시 줄 항목입니다. 그것은 굉장.


답변

SimulatorManager 응용 프로그램이 매우 유용하다는 것을 알았습니다 . 설치된 시뮬레이터의 응용 프로그램 폴더로 직접 이동합니다. 7.1, 8.0 및 8.1 시뮬레이터로 시도했습니다.

SimulatorManager는 시스템 트레이에 아이콘으로 있으며 “로그인시 시작”옵션을 제공합니다.

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

참고 : 이것은 Xcode 6 (필자의 경우 6.1.1) 이상에서만 작동합니다.

희망이 도움이됩니다!


답변

.sqlite 파일이 AppDelegate.m에 저장된 위치를 알려면 다음 코드를 추가하십시오.

- (NSURL *)applicationDocumentsDirectory
{
    NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory      inDomains:NSUserDomainMask] lastObject]);

    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory     inDomains:NSUserDomainMask] lastObject];
 }

이제 AppDelegate.m에서이 메소드를 호출하십시오.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  //call here
   [self applicationDocumentsDirectory];

}


답변

이것은 신속하게 나를 위해 일했습니다.

let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
println("App Path: \(dirPaths)")


답변

나는 얼마 동안 이것과 씨름했다. 단순히 내 지역 sqlite db에 도착하는 것은 큰 고통이되었습니다. 이 스크립트를 작성하고 XCode 내부의 코드 스 니펫으로 만들었습니다. 내 appDelegate 안에 appDidFinishLaunching 안에 넣습니다.


//xcode 6 moves the documents dir every time. haven't found out why yet. 

    #if DEBUG 

         NSLog(@"caching documents dir for xcode 6. %@", [NSBundle mainBundle]);

         NSString *toFile = @"XCodePaths/lastBuild.txt"; NSError *err = nil;

         [DOCS_DIR writeToFile:toFile atomically:YES encoding:NSUTF8StringEncoding error:&err];

         if(err)
            NSLog(@"%@", [err localizedDescription]);

         NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];

         NSString *aliasPath = [NSString stringWithFormat:@"XCodePaths/%@", appName];

         remove([aliasPath UTF8String]);

         [[NSFileManager defaultManager] createSymbolicLinkAtPath:aliasPath withDestinationPath:DOCS_DIR error:nil];

     #endif

이것은 드라이브의 루트에 simlink를 만듭니다. (처음으로이 폴더를 직접 작성하여 chmod하거나 다른 위치로 변경할 수 있습니다.) 그런 다음 xcodeway 플러그인 https://github.com/onmyway133/XcodeWay를 설치했습니다.

cmd + d를 누르기 위해 약간 수정했습니다. 현재 응용 프로그램의 영구 문서 디렉토리에 파인더 와인 더가 열립니다. 이 방법으로 XCode가 경로를 몇 번이나 변경하든 실행시에만 변경되며 각 실행마다 즉시 simlink를 업데이트합니다.

나는 이것이 다른 사람들에게 유용하기를 바랍니다!


답변

파인더 열기> 라이브러리> 개발자> CoreSimulator> 장치

그런 다음 파인더에서 배열 변경 아이콘을 클릭하여 추가 된 날짜를 선택하십시오.

앱> 데이터> 컨테이너> 데이터> 애플리케이션>을 선택하십시오.

앱을 선택하십시오.> 문서> 여기에 db 파일이 있습니다.

나의 경우에는:

/Users/pluto/Library/Developer/CoreSimulator/Devices/A75107D2-A535-415A-865D-978B2555370B/data/Containers/Data/Application/265A12BC-FF5B-4235-B5EF-6022B83754B4/Documents/dboPhotoBucket.sqlite

그렇지 않으면 다음을 수행하십시오.

NSLog(@"app dir: %@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); 

-데이터 폴더의 전체 경로를 인쇄합니다.

빠른:

let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
println("App Path: \(dirPaths)")