是否可以将文件夹添加到Xcode项目为使用AppleScript一组,递归增加它下面的一切,因为如果它拖动到组&文件列表?

有帮助吗?

解决方案 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建立用于该装置时,作品因此测试

其他提示

我不这样做正是这一点,但我做了非常类似的事情。我运行下面的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的外壳命令
do shell script "whatever"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top