質問

それはグループとファイルリストにドラッグしているかのように再帰的にそれ以下のすべてを追加するAppleScriptを持つグループとしてXcodeプロジェクトにフォルダを追加することはできますか?

役に立ちましたか?

解決 2

私はの.appバンドルに平坦に、離れてlprojディレクトリから、サブディレクトリ内のすべてのファイルを必要としていました。資産は、このような構造であった。

${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が動作し、従って試験

他のヒント

私はまさにそれをしないが、私は非常によく似たことを行います。私は、ビルド後のコマンドとして次のシェルコマンドを実行します(それは読みやすいですので、私はいくつかの行にそれを壊れました)

/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

(私のビルドシステムは.appフォルダが型破り位置のビットである理由であるCMakeのを、使用しています。)

( - .appあなたが期待するよう)

最終結果は、データフォルダが../Myproj.app/data/フォルダにコピーされていることです。これはXcodeのにコピーバイパスが、私はXcodeで表示するフォルダを必要としないことを発見しました。各ビルドした後、それをコピーフォルダ、私はXcodeのにフォルダをドラッグしたかのように私はそれにファイルを使用することができます。

これは明らかにAppleScriptのではないですが、

によりAppleScriptでは、シェルコマンドを実行することができます
do shell script "whatever"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top