Sqlite 파일 위치 핵심 데이터


91

일반적으로 핵심 데이터 앱용 sqlite 스토어 파일은 다음 위치에 있습니다.

라이브러리> 응용 프로그램 지원> iPhone Simulator> 7.1 (또는 사용중인 버전)> 응용 프로그램> (앱이 포함 된 폴더)> 문서

폴더이지만 IOS 8에서는 찾을 수 없습니다. iPhone Simulator 폴더 안에 8.0 폴더 만 추가한다고 가정 할 수 있지만 거기에는 없습니다. 아무도 그것을 찾을 수 있었습니까?


2
나는 당신의 질문이 요청되기 일주일 전에 내가 그것을 물었다는 것을 고려할 때 당신의 질문이 중복이라고 확신합니다. 내가 물어 본 첫 번째 질문이라는 점을 고려할 때이 질문에 대한 공로를 인정해 주시면 감사하겠습니다. @HenryGlendening
enlyte

DBPATH 확인하려면이 방법을 확인 stackoverflow.com/a/27358291/3840428
Nagarjun


2
아무도 실제 장치에서 CoreData 파일을 얻는 방법을 알고 있습니까? 이전 버전의 Xcode에서 iTunes를 통해이 작업을 수행했지만 Xcode 8 / iOS10 이후 CoreData 파일이 앱의 문서 디렉토리에 저장되어 있으므로 iTunes에서 볼 수 없다고 생각합니다. 컴퓨터의 장치에서 CoreDate 파일을 가져 오는 방법이 있습니까?
Bocaxica 2016 년

1
나는 그들이 이것을 계속 움직이는 이유를 모른다. 그들은 그것을 어딘가에 놓고 그냥 두어야합니다.
RegularExpression 2016

답변:


135

나는 sqlite 파일을 찾았으며 지금이 경로에 있습니다.

Library / Developer / CoreSimulator / Devices / (숫자 및 문자) / data / Containers / Data / Application / (숫자 및 문자) / Documents /

(숫자 및 문자)는 앱 / 컴퓨터에 고유하지만 다음과 같은 폴더를 나타냅니다. 779AE2245-F8W2-57A9-8C6D-98643B1CF01A

appDelegate.m으로 이동하여 아래로 스크롤하여 찾을 수있었습니다.

- (NSURL *)applicationDocumentsDirectory 

다음과 같이 반환 경로를 NSLogging합니다.

// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
    NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory  inDomains:NSUserDomainMask] lastObject]);

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

이름이 지정되지 않은 2 개의 폴더 / 문자 및 숫자 문자열로 찾기가 까다롭기 때문에 고유 한 경로를 제공하여 쉽게 찾을 수 있습니다.

Swift 4.2 :

let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
print(paths[0])

4
xcrun simctl list시뮬레이터 이름 및 UUID 목록을 가져 오는 데 사용 합니다.
Sandy Chapman

1
앱 그룹에 공유 데이터베이스를 사용하는 경우 (예 : 확장 프로그램을 사용하는 경우) 경로는 Library / Developer / CoreSimulator / Devices / $ number / data / Containers / Shared / AppGroup / $ number / Name.sqlite입니다.
andreacipriani 2015 년

7
에, 그 주 없습니다 2019 , Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/더 이상 사실이다. 이제 .sqlite 및 관련 두 파일을 찾을 수 있습니다.Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Library/Application Support/
Gang Fang

@GangFang Xcode 7에서 빌드 된 Objective C 코드를 최신 빠른 버전으로 변환하고 새 프로젝트를 만들려고하는데,이 두 가지 .sqlite 파일을 한 번에 마이그레이션하는 방법은 무엇입니까?
Sanjay Shah

85

실제로 DB 파일의 위치를 ​​얻는 가장 간단한 방법은 언급되지 않았습니다.

XCode의 간단한 런타임 스위치이므로 소스 코드를 수정할 필요도 없습니다.

  1. 실행 버튼 옆에있는 스키마 편집 ...을 선택합니다.

    구성표 편집

  2. Run / Arguments를 선택하고 다음 두 가지 옵션을 추가합니다.

    -com.apple.CoreData.SQLDebug 1
    -com.apple.CoreData.Logging.stderr 1

    선택권

  3. 앱을 실행하면 로그에 다음이 표시됩니다.

    로그


2
이것은 실제로 가장 간단하고 최상의 솔루션입니다. 감사!
Omid Ariyan 18.01.08

저에게 로그가 나타나지 않습니다. 도와 줄 수 있습니까?
Augusto

@Augusto 나는 여기서 당신을 도울 수 없지만 그것에 대해 새로운 질문을하면 사람들이 대답하고 당신을 도울 수 있습니다.
hyperknot

좋은 대답입니다! 이것은 받아 들여진 대답이어야합니다. 또한 Xcode 환경 설정을 통하지 않고 콘솔 에서이 출력의 색상을 변경하는 방법이 있습니까? 그것은 좀 더 두드러 있다면 좋을 것
Coreyd303

힌트 주셔서 감사합니다! 경로가 지속적으로 변경됩니다. 현재 (iOS 13.3.1) 경로는 / Users / *** / Library / Developer / CoreSimulator / Devices / A91CEB1C-B15D-46B5-9B83-DB22056DEFD1 / data / Containers / Shared / AppGroup / B835599A- CA36-432F-871A-17EDA181CC54 / 따라서 직접 추측하는 것보다 CoreData 디버그 정보에서 가져 오는 것이 좋습니다.
AlKir

52

이 간단한 3 단계 시도

  1. 에 다음 코드를 복사 didFinishLaunchingWithOptions하여 appdelegate.m그리고 전에 브레이크 포인트를 추가NSLog()

    (BOOL)application:(UIApplication *)application  
    
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSLog(@"%@",[paths objectAtIndex:0]);
     }

또는 Swift에서 :

let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
print(paths[0])

여기에 이미지 설명 입력

2. Finder-> Go-> Go to folder를 열고 1 단계에서 복사 한 경로를 붙여 넣습니다.

여기에 이미지 설명 입력

3. 예 !!! 당신은 당신의 목적지에 있습니다.


2
swift3 사용 : NSSearchPathForDirectoriesInDomains (.applicationSupportDirectory, .userDomainMask, true)
Yohst

38

앱이 Core Data를 사용하는 경우 터미널에서 sqlite 파일을 검색하기 만하면됩니다.

find ~ -name app_db_file_name.sqlite

결과는 앱이 포함 된 시뮬레이터 폴더의 전체 경로를 나열합니다.


2
@AlexWei Apple이 파일 메뉴에 "Reveal Simulator 문서 폴더 찾기"또는 이와 유사한 버튼을 추가하기를 바랍니다. 파일을 저장하는 위치를 계속 변경하고 있다는 점을 고려할 때 여전히 존재하지 않는다는 것은 어리석은 것 같습니다 ...
DiscDev

1
다른 사람들이 관심이있는 경우이 명령을 내 .profile :에 별칭으로 추가했습니다 alias myapp_simulator_db="find ~/Library/Developer/CoreSimulator/Devices -name MyApp.sqlite". 이 명령을 반복적으로 실행해야 할 때 편리합니다.
토스트

sudo find ~ -name app_db_file_name.sqlite 도와 줘
Qadir Hussain

21

이 한 줄짜리를 해킹했습니다 ( Gist )를 . find ~/Library/Developer/CoreSimulator/Devices/ -name device.plist -exec sh -c "/usr/libexec/PlistBuddy -c \"print UDID\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print name\" '{}' | tr '\n' ' '" \; -exec sh -c "/usr/libexec/PlistBuddy -c \"print runtime\" '{}' | sed -n 's/com\.apple\.CoreSimulator.SimRuntime\.\(.*\)/\1/p'" \;

이것은 다음을 인쇄합니다.

14F313C8-3813-4E38-903E-2010C136B77B iPad Retina iOS-8-0
1F6B82A2-C467-479A-8CAF-074BE507AC8E iPad Air iOS-8-0
2DA83944-BE5D-4342-B330-08F67A932D8C iPad 2 iOS-7-1
48703432-A5C5-4606-9369-0D21B53EB1E8 iPhone 4s iOS-7-1
4AFB71CC-6752-4F9A-A239-4DC9CA53A8B8 iPhone 5s iOS-8-0
53A65771-DF50-4A5C-A8D2-4D1C3A5D0F60 iPhone 5 iOS-7-1
6B97C174-5914-4E89-8D17-943F0E2703BA iPhone 5 iOS-8-0
6C2DF3E9-FA26-4391-8B66-72E1467D6297 iPad 2 iOS-8-0
7F85E299-A3C2-4704-8B44-2984F6F995F5 iPad Retina iOS-7-1
8B9EDFFD-2240-476B-88AD-06ABE8F9FF51 iPhone 6 Plus iOS-8-0
97691E5D-5C38-4875-8AA7-C2B1E4ABCBB5 Resizable iPhone iOS-8-0
9BBF3408-6CA4-4CE0-BD4E-B02001F1262B iPhone 5s iOS-7-1
C9237847-F0AA-44BC-A74E-C08C2E0F7A6C Resizable iPad iOS-8-0
CC44C1BA-F39C-4410-AE34-4ABBD7806D45 iPad Air iOS-7-1
CDF4D811-5011-4464-8291-5CDA378375EA iPhone 6 iOS-8-0
E77DE00C-E244-4F25-A5E2-E6581614D5A2 iPhone 4s iOS-8-0

최신 정보:

누군가가 여기서 지적했듯이 xcrun simctl list devices비슷한 결과를 얻기 위해 실행할 수도 있습니다.

== Devices ==
-- iOS 7.0 --
-- iOS 7.1 --
    iPhone 4s (48703432-A5C5-4606-9369-0D21B53EB1E8) (Shutdown)
    iPhone 5 (53A65771-DF50-4A5C-A8D2-4D1C3A5D0F60) (Shutdown)
    iPhone 5s (9BBF3408-6CA4-4CE0-BD4E-B02001F1262B) (Shutdown)
    iPad 2 (2DA83944-BE5D-4342-B330-08F67A932D8C) (Shutdown)
    iPad Retina (7F85E299-A3C2-4704-8B44-2984F6F995F5) (Shutdown)
    iPad Air (CC44C1BA-F39C-4410-AE34-4ABBD7806D45) (Shutdown)
-- iOS 8.1 --
    iPhone 4s (0763EF65-DD0D-4FAD-84C7-2DE63D416526) (Shutdown)
    iPhone 5 (868ED444-8440-4115-AF37-F419CC682D2F) (Shutdown)
    iPhone 5s (E0455E5D-7315-4EC8-B05E-76284728244C) (Shutdown)
    iPhone 6 Plus (72554908-FF99-4B8F-9B87-65255ED08CFC) (Shutdown)
    iPhone 6 (32AA8133-53A4-4BE0-8CE5-0C7A87E81CAF) (Shutdown)
    iPad 2 (4AF84DE8-CBA2-47AE-A92A-0C0CEF9F41F8) (Booted)
    iPad Retina (69238B44-AAFD-4CD5-AAEA-C182D0BC300D) (Shutdown)
    iPad Air (E580AD99-0040-4EC1-B704-0C85567E6747) (Shutdown)
    Resizable iPhone (32E872FC-6513-41AB-A5B9-B23EB7D10DC8) (Shutdown)
    Resizable iPad (99997922-4A9F-4574-9E3E-EF45F893F4A2) (Shutdown)

18

Swift를 사용하는 경우 문서 디렉토리의 절대 경로를 반환합니다.

func applicationDirectoryPath() -> String {
    return NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last! as String
}

1
이름을 "func documentDirectoryPath ()"로 지정해야합니다 ...
Yohst

13

시뮬레이터 내에서 Application 폴더와 Application data 폴더의 위치를 ​​찾기위한 bash 스크립트를 작성했습니다 . 여기에서 다운로드 할 수 있습니다 . 스크립트의 압축을 풀면 스크립트가있는 폴더로 이동하여 사용할 수 있습니다. 옵션없이 호출하면 설치된 iOS 시뮬레이터 목록이 제공됩니다. 그런 다음 옵션을 사용하여 프로그램을 찾을 수 있습니다. 쓰기:

./simulatorAppFolders -s "iPad Air" -i iOS-8-0 -a <MyApp>

iPad Air iOS 8 시뮬레이터에서 앱의 응용 프로그램 폴더와 홈 영역 폴더를 찾습니다. 예를 들면 다음과 같습니다.

MacBook-Air:_posts user$ ./simulatorAppFolders -s "iPad Air" -i iOS-8-0 -a MyApp
App folder = /Users/james/Library/Developer/CoreSimulator/Devices/6A9DEE93-FAEF-4BF4-9989-BC14CD38AEA0/data/Containers/Bundle/Application/8F64CD7F-A227-43D6-98AC-41D3919827CB
dataFolder = /Users/james/Library/Developer/CoreSimulator/Devices/6A9DEE93-FAEF-4BF4-9989-BC14CD38AEA0/data/Containers/Data/Application/96C40A21-5A5C-4399-839C-B155B8A72932

최신 정보

-d 옵션을 사용하여 장치 유형을 기반으로 검색 할 수있는 원본 스크립트에 대한 업데이트가 있습니다. 또한 응용 프로그램 및 응용 프로그램 문서를 찾을 수 있도록 일련의 합리적인 이름의 폴더를 만드는 또 다른 스크립트를 작성했습니다. 이 스크립트 는 홈 영역에 iOS_SIMULATORS라는 폴더를 만들고 거기에서 애플리케이션으로 쉽게 이동할 수 있습니다.


완벽합니다. 특정 앱의 모든 시뮬레이터 데이터를 다시 초기화하는 다른 스크립트를 만들기 위해 스크립트를 편집했습니다. 고마워요 제임스!
Martin

감사! 일반적인 PITA에 대한 훌륭한 솔루션입니다.
David Hersey

6

다음 콘솔 출력으로 시뮬레이터 폴더를 찾을 수있었습니다.

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

제 경우에는 (Xcode 6 베타)

app dir: file:///Users/user/Library/Developer/CoreSimulator/Devices/D00C56D4-DDA3-47B0-9951-27D3B9EC68E8/data/Applications/6ABF3E54-37F5-4AD1-A223-F7467F601FB6/Documents/

6

Michaels 답변에 따르면 Swift 3 용입니다.

    func applicationDirectoryPath() -> String {
        return NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! as String
    }

여기에 유일한 해결책!
Fattie

5

Swift 3.0의 경우

let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
print(paths[0])

Xcode 8.2에서 Coredata의 위치를 ​​얻을 수 있습니다.


5

Xcode를 새로 업데이트 한 후 SQL 파일이 이제 새 폴더에 저장된다는 사실을 발견했습니다. /Library/Application Support이것은 고유 한 상황 일 수 있지만 문서 폴더에서 SQL 파일을 찾지 못한 경우 여기에서 검색합니다.

~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Library/Application Support/

Documents폴더 에 저장되기 전 :

~/Library/Developer/CoreSimulator/Devices/[@device_id@]/data/Containers/Data/Application/[@application_id@]/Documents/


4

SWIFT 3의 경우 :

이 코드를 didFinishLaunchingWithOptions에 붙여 넣으십시오.

 print(NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).last! as String)

이것은 나를 도왔다. 하지만 터미널을 통해 해당 경로로 이동하려고하면 다음과 같이 표시됩니다. 그런 파일이나 디렉터리가 없지만 폴더 옵션으로 이동하려고하면 실제로 존재합니다.
Qadir Hussain

이것은 OSX에서 나를 위해 일했습니다. .sqlite 파일을 수정하려면 <my app name>이라는 "응용 프로그램 지원"디렉터리 내에 디렉터리를 하나 더 추가해야했습니다.
Jacksonsox

3

신속한 3

print(NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).last! as String)

2

James Snook 처럼 시뮬레이터 앱에 쉽게 액세스 할 수 있도록 자체 스크립트를 만들었습니다. 저 이외에도 이곳에 오는 많은 사람들에게 편리하다고 생각합니다.

그의 스크립트와 달리 광산은 검색 도구가 아니며 모든 장치 / 런타임이 포함 된 완전한 (그리고 사람이 읽을 수있는) 폴더 구조를 만들고 그 안에 앱에 대한 소프트 링크를 넣습니다.

이 요점에서 얻을 수 있습니다 .

시뮬레이터에 앱을 설치할 때마다 실행하거나 어떤 이유로 든 앱을 가져올 때마다 실행하십시오 (업데이트되고 Finder에서 기기 폴더가 열립니다).


이 스크립트를 조정하여 일부를 자동화 할 수 있습니다. 하지만 방금 찾은 이 GUI 앱 은 앱 폴더에 액세스하려는 경우 정말 유용한 대안으로 들린다 고 말해야합니다. :)
fbeeper

이것은 또한 꽤 좋지만 데이터 디렉토리에 대한 소프트 링크도 생성하므로 James Snook이 게시 한 두 번째 스크립트를 선호합니다.
David Hersey

2

디렉토리를 지정하지 않은 경우 아래 코드를 사용하여 기본 디렉토리를 인쇄 할 수 있습니다.

print (NSPersistentContainer.defaultDirectoryURL ())


1

에 대한 iOS 10.0+ 당신이 사용할 수있는 persistentContainer.persistentStoreCoordinator.persistentStores.first?.url

sqlite 파일을 원하는 위치에 복사하는 유틸리티 기능을 만들었습니다 (시뮬레이터에서만 작동).

다음과 같이 사용할 수 있습니다.

import CoreData


let appDelegate = UIApplication.shared.delegate as! AppDelegate
UTility.getSqliteTo(destinationPath: "/Users/inderkumarrathore/Desktop", persistentContainer: appDelegate.persistentContainer)

이미 sqlite, shm 및 wal 파일에 액세스 한 경우 터미널에서 명령을 실행하여 WAL 파일을 sqlite 파일에 병합합니다.

$ sqlite3 persistentStore
sqlite> PRAGMA wal_checkpoint;
Press control + d

위의 명령을 실행 한 후 sqlite 파일의 데이터를 볼 수 있습니다.


다음은 유틸리티 방법의 정의입니다.

/**
 Copies the sqlite, wal and shm file to the destination folder. Don't forget to merge the wal file using the commands printed int the console.
 @param destinationPath Path where sqlite files has to be copied
 @param persistentContainer NSPersistentContainer
*/
public static func getSqliteTo(destinationPath: String, persistentContainer: NSPersistentContainer) {
  let storeUrl = persistentContainer.persistentStoreCoordinator.persistentStores.first?.url

  let sqliteFileName = storeUrl!.lastPathComponent
  let walFileName = sqliteFileName + "-wal"
  let shmFileName = sqliteFileName + "-shm"
  //Add all file names in array
  let fileArray = [sqliteFileName, walFileName, shmFileName]

  let storeDir = storeUrl!.deletingLastPathComponent()

  // Destination dir url, make sure file don't exists in that folder
  let destDir = URL(fileURLWithPath: destinationPath, isDirectory: true)

  do {
    for fileName in fileArray {
      let sourceUrl = storeDir.appendingPathComponent(fileName, isDirectory: false)
      let destUrl = destDir.appendingPathComponent(fileName, isDirectory: false)
      try FileManager.default.copyItem(at: sourceUrl, to: destUrl)
      print("File: \(fileName) copied to path: \(destUrl.path)")
    }
  }
  catch {
    print("\(error)")
  }
  print("\n\n\n ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ NOTE ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n")
  print("In your terminal run the following commands to merge wal file. Otherwise you may see partial or no data in \(sqliteFileName) file")
  print("\n-------------------------------------------------")
  print("$ cd \(destDir.path)")
  print("$ sqlite3 \(sqliteFileName)")
  print("sqlite> PRAGMA wal_checkpoint;")
  print("-------------------------------------------------\n")
  print("Press control + d")      
}

에 대한

/**
 Copies the sqlite, wal and shm file to the destination folder. Don't forget to merge the wal file using the commands printed int the console.
 @param destinationPath Path where sqlite files has to be copied
 @param persistentContainer NSPersistentContainer
 */
+ (void)copySqliteFileToDestination:(NSString *)destinationPath persistentContainer:(NSPersistentContainer *)persistentContainer {
  NSError *error = nil;
  NSURL *storeUrl = persistentContainer.persistentStoreCoordinator.persistentStores.firstObject.URL;
  NSString * sqliteFileName = [storeUrl lastPathComponent];
  NSString *walFileName = [sqliteFileName stringByAppendingString:@"-wal"];
  NSString *shmFileName = [sqliteFileName stringByAppendingString:@"-shm"];
  //Add all file names in array
  NSArray *fileArray = @[sqliteFileName, walFileName, shmFileName];

  // Store Directory
  NSURL *storeDir = storeUrl.URLByDeletingLastPathComponent;

  // Destination dir url, make sure file don't exists in that folder
  NSURL *destDir = [NSURL fileURLWithPath:destinationPath isDirectory:YES];

  for (NSString *fileName in fileArray) {
    NSURL *sourceUrl = [storeDir URLByAppendingPathComponent:fileName isDirectory:NO];
    NSURL *destUrl = [destDir URLByAppendingPathComponent:fileName isDirectory:NO];
    [[NSFileManager defaultManager] copyItemAtURL:sourceUrl toURL:destUrl error:&error];
    if (!error) {
      RLog(@"File: %@ copied to path: %@", fileName, [destUrl path]);
    }
  }


  NSLog(@"\n\n\n ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ NOTE ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");
  NSLog(@"In your terminal run the following commands to merge wal file. Otherwise you may see partial or no data in %@ file", sqliteFileName);
  NSLog(@"\n-------------------------------------------------");
  NSLog(@"$ cd %@", destDir.path);
  NSLog(@"$ sqlite3 %@", sqliteFileName);
  NSLog(@"sqlite> PRAGMA wal_checkpoint;");
  NSLog(@"-------------------------------------------------\n");
  NSLog(@"Press control + d");
}

0

스위프트 3.x

찾아 didFinishLaunchingWithOptions은 당신의 기능을 AppDelegate에의 파일이이 코드를 과거.

let path = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true)
print("\(path)")

0

스위프트 4.x

    let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
    print(paths[0])

0

스위프트 4.2

let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
        print(paths[0])

-1

다음 코드를 사용할 수 있습니다.

   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    **print(persistentContainer.persistentStoreDescriptions)**
    return true
}

핵심 데이터 영구 저장소, 즉 sqlite의 위치를 ​​인쇄합니다.

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