AppleScriptを持つXcodeのプロジェクトを再帰的にリソースを追加
-
22-08-2019 - |
質問
それはグループとファイルリストにドラッグしているかのように再帰的にそれ以下のすべてを追加する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"
所属していません StackOverflow