LoginSignup
1
1

More than 5 years have passed since last update.

Core Data を使用したOS Xアプリの実行ファイルとDBファイルの場所

Posted at

最近、XCode + Swiftで iOSアプリ開発はしてましたが、OS Xアプリは開発したことなかったのでメモ。

プロジェクト作成

Core Dataを使用したアプリは、iOSアプリ開発と同じように、新規プロジェクト作成時に Core Data にチェック入れてやれば簡単にできました。

実行ファイル(test-osx.app)の場所

ビルド、実行はできるが、ビルド結果がどこにできるのよくわからなかった・・・
Build Locations て項目見てもよくわからんし・・・
findコマンドで test-osx.app 探しました。
~/Library/Developer/Xcode/DerivedData/test-osx-hafrwjhefqwrtqcqsdhjxmcubqyf/Build/Products/Debug/test-osx.app

~/Library/Developer/Xcode/DerivedData/
ここにプロジェクトごとに作成されるようです。

Core Data のDBファイル(CocoaAppCD.storedata)の場所

iOSアプリでは、Core DataのDBファイルは、◯◯.sqlite3 でしたが、
OS Xアプリでは、CocoaAppCD.storedata というファイルのようです。

コードでファイルパスを出力させました。
~/Library/Application Support/test.test_osx/CocoaAppCD.storedata

~/Library/Application Support/ プロジェクト名 / にできるようです。

AppDelegate.swift
        // Create the coordinator and store
        var coordinator: NSPersistentStoreCoordinator? = nil
        if failError == nil {
            coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
            let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("CocoaAppCD.storedata")
            do {
                try coordinator!.addPersistentStoreWithType(NSXMLStoreType, configuration: nil, URL: url, options: nil)
            } catch {
                failError = error as NSError
            }
//76行目
            print(url)   // 追加!!!これでパス出力する
        }
ViewController.swift
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

        // Mac上のsqliteファイルの確認用
        let coodinator = (NSApplication.sharedApplication().delegate as! AppDelegate).persistentStoreCoordinator
        print(coodinator)
    }
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1