我正在查看文档目录中是否存在任何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
下有自己的子目录,以及它的容器集,所以如果引导不同的模拟设备,输出将会改变。