是否可以将一个文件夹作为一个包含Applescript的组添加到Xcode项目中,递归地添加它下面的所有内容,就好像它被拖到了Groups&文件列表?
答案 0 :(得分:2)
我不是那样做的,但我做了一件非常相似的事情。我运行以下shell命令作为后构建命令:(我把它分成几行,这样更容易阅读)
/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp
-exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks
$FOLDER $APP_FOLDER
此命令将$FOLDER
复制到您的应用,$APP_FOLDER
是(已建立的).app
文件夹的位置,不是 Xcode项目。例如,我的命令扩展为
/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp
-exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks
/Users/beder/src/myproj/data
/Users/beder/src/myproj/build-iphone/Debug-iphonesimulator/Myproj.app
(我的构建系统使用CMake,这就是.app
文件夹位于非常规位置的原因。)
最终结果是数据文件夹被复制到.app
文件夹(正如您所期望的那样 - ../Myproj.app/data/
)。这绕过将其复制到Xcode,但我发现我不需要在Xcode中显示该文件夹。在每次构建之后,它会复制文件夹,因此我可以使用其中的文件,就像我将文件夹拖到Xcode一样。
显然这不是applescript,但你可以通过
在applescript中执行shell命令do shell script "whatever"
答案 1 :(得分:2)
除了lproj目录之外,我需要子目录中的所有文件在.app包中都是平的。资产属于这种结构:
${assetsDir}/${targetCode}/
Icon.png
en.lproj
ja.lproj
...
*.lproj
resources{$targetCode/
Target.plist
audio/Audio.plist
*.mp3
我在“复制捆绑资源”之前添加了一个运行脚本构建阶段,其中包含类似于以下内容的内容:
COPY_COMMAND="$DEVELOPER_LIBRARY_DIR/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp"
copyPNGCommand="$PLATFORM_DEVELOPER_LIBRARY_DIR/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng"
lprojDirectories=$( find ${assetsDirectory}/${targetCode} -type d -name *lproj )
for lprojDirectory in $lprojDirectories; do
"$COPY_COMMAND" -exclude .DS_Store -exclude .svn -resolve-src-symlinks "$lprojDirectory" "$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
done
MP3s=$( find ${assetsDirectory}/${targetCode}/resources${targetCode} -type f -name *.mp3 )
for MP3 in $MP3s; do
filename=$( basename "$PNG" )
"$COPY_COMMAND" -resolve-src-symlinks "$MP3" "$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
done
PNGs=$( find ${assetsDirectory}/${targetCode}/resources${targetCode} -type f -name *.png )
for PNG in $PNGs; do
if [ -x "$copyPNGCommand" ]; then
filename=$( basename "$PNG" )
"$copyPNGCommand" -compress "" "$PNG" "$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/$filename"
else
"$COPY_COMMAND" -resolve-src-symlinks "$PNG" "$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
fi
done
Plists=$( find ${assetsDirectory}/${targetCode}/resources${targetCode} -type f -name '*.plist' )
for Plist in $Plists; do
"$XCODE_APP_SUPPORT_DIR/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist" --convert binary1 "$Plist" --outdir "$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
done
注意:copypng仅在为设备构建时才有效,因此测试