1

在进行 iOS 开发时,我发现打开以下文件很有用:

/Users/disappearedng/Library/Application Support/iPhone Simulator/6.1/Applications/B957F50E-CF57-4797-AA14-C580F5596E56/Documents/MyApp.sqlite

目前我的 bash_profile 中有以下别名:

alias cdi='cd /Users/disappearedng/Library/Application\ Support/iPhone\ Simulator/6.1/Applications'

我必须在这里停下来的原因是因为在我的 iOS 模拟器上每次新安装应用程序时,哈希 B957F50E-CF57-4797-AA14-C580F5596E56 都会发生变化。

有谁知道一个别名的好方法,以便我可以将以下内容别名为我的 bash_profile 中的命令?

'/Users/disappearedng/Library/Application Support/iPhone Simulator/6.1/Applications/<any-hash>/Documents/*.sqlite'

我尝试对 has 使用通配符,但文件夹中存在 .DS_Cache 文件导致此操作失败。

4

4 回答 4

2

这显然只是您在模拟器中运行时在开发期间想要的东西。为什么不让您的应用程序在启动时获取文件的路径,然后将路径写入主目录中的文件。更新您.bash_profile以获取此文件。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#if TARGET_IPHONE_SIMULATOR
    NSString *sqlitePath = ... // path to the Documents folder
    NSString *command = [NSString stringWithFormat:@"alias cdi='cd %@'", sqlitePath];
    [sqlitePath writeToFile:@"/Users/disappearedng/.sqlitePath" atomically:YES encoding:NSUTF8StringEncoding error:nil];
#endif
}

然后在你的.bash_profile,做:

. ~/.sqlitePath
于 2013-02-26T21:32:00.013 回答
0

怎么样:

find /Users/disappearedng/Library/Application Support/iPhone Simulator/6.1/Applications/.{38}/Documents/MyApp.sqlite | xargs <your_text_editor>
于 2013-02-26T21:09:16.780 回答
0

如果有多个匹配的目录,并且您想输入最新的目录,请使用以下脚本:

cd "$(find "/Users/disappearedng/Library/Application Support/iPhone Simulator/6.1/Applications/" -name '*.sqlite' -type d -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" ")"
于 2013-02-26T21:10:21.460 回答
0

您可以尝试添加.DS_CacheFIGNOREshell 参数。这样,通配符应该只匹配一个目录,并且cd仍然可以工作。在您的.bashrc文件中:

# To avoid adding .DS_Cache multiple times, just to be safe
[[ $FIGNORE =~ .DS_Cache ]] || FIGNORE="$FIGNORE:.DS_Cache"
于 2013-02-26T22:04:50.430 回答