文档目录是否有Xcode构建设置参考?

o0lyfsai  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(133)

我正在查看文档目录中是否存在任何XCode build setting reference(如${PROJECT_NAME})。我有一些文件保存到文档目录中,我想运行一个以该文件为目标的脚本。文档目录来自:

NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentDirectory = documentDirectories[0];

字符串
我搜索了Apple's docs,但可能没找到。
例如,如果iOS应用程序文稿目录中有一个“MyNotes.txt”,我希望运行一个针对该文件的脚本(将其复制并粘贴到另一个文件夹)。
谢谢.

4smxwvx5

4smxwvx51#

没有,文档目录没有Xcode构建设置。您可以在构建阶段添加一个空的运行脚本,并检查“在构建日志中显示环境变量”来验证。
你可以通过使用simctl命令,然后检查一堆plist来找出文档目录。这有点迂回。例如,这个脚本在当前引导的模拟设备中找到bundle标识符为com.dqd.test的应用的目录:

#!/bin/bash

bundle=com.dqd.test

appdir=$(xcrun simctl get_app_container booted "$bundle")
appdataparentdir="${appdir%%/data/Containers/Bundle/*}"/data/Containers/Data/Application
for dir in "$appdataparentdir"/*; do
    if plutil -extract MCMMetadataIdentifier xml1 -o - "$dir/.com.apple.mobile_container_manager.metadata.plist" | grep ">$bundle<" >/dev/null; then
        break
    fi
    dir=
done

if [ "$dir" != "" ]; then
    echo "$dir/Documents"
fi

字符串
测试结果:

:; ./getdocdir
/Users/mayoff/Library/Developer/CoreSimulator/Devices/3699C4CE-D6F3-4E6E-B1AC-0B35D78BFD80/data/Containers/Data/Application/32068FBC-6191-4F5E-B18F-D47D8778D3BE/Documents


请注意,每个模拟设备都有自己的UUID,CoreSimulator/Devices下的自己的GUID,以及自己的一组容器,因此如果您 Boot 不同的模拟设备,输出将发生变化。

相关问题