簡體   English   中英

如何保持 ios 模擬器應用程序文檔路徑相同,不要更改每次運行 xcode 項目

[英]how to keep ios simulator app document path same,don't change every run xcode project

正如我們所知,在 xcode6 或 xcode7 中,應用程序文檔路徑會隨着每個運行的項目而改變,如下所示

/Users/jakey/Library/Developer/CoreSimulator/Devices/0149D36B-A46E-4326-BF59-AFEF7D2CA8B2/data/Containers/Data/Application/FDCA4FAF-4940-485B-A6B6-5CEE4C75B72F/Documents

我經常使用一些工具,如 navicat 來訪問文檔的. sqlite,如果每次運行路徑都變了,navicat無法正常連接db。

這不可能。 每次點擊 Build & Run 時,您的應用都會重新安裝,因此它的容器會發生變化。

在 Xcode 7 中,有一個新的 simctl 子命令可能對您有所幫助:

$ xcrun simctl get_app_container --help
Usage: simctl get_app_container <device> <app identifier>

您可能想要創建一個別名,例如:

alias cdmyapp='cd $(xcrun simctl get_app_container booted com.mycompany.myapp)'

然后你可以從 Terminal.app 運行“cdmyapp”來進入你的應用程序的容器。

恐怕這是不可能的。 我想您想將文件保存在您的文檔目錄中。 這完全在你提到和改變的路徑之內。

老問題,但我想分享我的解決方案,以防將來對某人有所幫助。

您可以使用ln(又名鏈接)命令創建一些硬鏈接,以跟蹤最新的 iOS 模擬器沙箱文件。

例如,您可以在桌面上創建一個“SimulatorDB”文件夾,然后運行您的應用程序並獲取最新的 Core Data sqlite 文件在 Sandbox 中的路徑,然后運行這 3 個命令來創建 3 個硬鏈接:

ln /{your-app-container-path}/Library/Application\ Support/App.sqlite ~/Desktop/SimulatorDB/App.sqlite
ln /{your-app-container-path}/Library/Application\ Support/App.sqlite-shm ~/Desktop/SimulatorDB/App.sqlite-shm
ln /{your-app-container-path}/Library/Application\ Support/App.sqlite-wal ~/Desktop/SimulatorDB/App.sqlite-wal

然后配置您的數據庫瀏覽器軟件以直接連接~/Desktop/SimulatorDB/App.sqlite

注意:這僅適用於少量文件,如果您需要跟蹤包含許多文件的沙箱文件夾, APFS似乎不支持此操作: https://github.com/selkhateb/hardlink/issues/31#問題評論-332993819

有一些用於在 macOS 中的目錄上創建硬鏈接的工具,但我還沒有嘗試過: What is the Unix command to create a hard link to a directory in OS X?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM