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



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

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

我搜索了苹果的文档,但可能我错过了。

例如,如果在iOS App文档目录中有一个"MyNotes.txt",我想运行一个针对该文件的脚本(复制并粘贴到另一个文件夹)。

谢谢。

不,文档目录没有Xcode构建设置。您可以添加一个空的运行脚本到您的构建阶段,并检查"在构建日志中显示环境变量"来验证。

您可以使用simctl命令找出文档目录,然后检查一堆列表。有点迂回。例如,这个脚本在当前启动的模拟设备中查找包标识符为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下有自己的子目录,以及它的容器集,所以如果引导不同的模拟设备,输出将会改变。

最新更新