2009-05-15 15 views

答えて

2

でAppleScriptでは、シェルコマンドを実行することができます。資産がこのような構造であった。

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のために構築する場合にのみ機能します

${assetsDir}/${targetCode}/ 
    Icon.png 
    en.lproj 
    ja.lproj 
    ... 
    *.lproj 
    resources{$targetCode/ 
     Target.plist 
     audio/Audio.plist 
      *.mp3 

私は、スクリプトの実行は次のようなもので、位相前に「コピーバンドルリソース」を構築追加しましたデバイス、したがって、テスト

2

私はそれを正確にはしませんが、私は非常によく似ています。あなたのアプリへ$FOLDERこのコマンドは、コピー

/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp 
    -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks 
    $FOLDER $APP_FOLDER 

(それが読みやすいですので、私はいくつかの行にそれを壊れました)、そして $APP_FOLDERはの場所である:私は、ビルド後のコマンドとして次のシェルコマンドを実行します。 .appフォルダー、 ではありません。 Xcodeプロジェクトです。たとえば、私のコマンドは、最終結果があることデータフォルダある

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

/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フォルダにコピーされます。これはXcodeにコピーするのをバイパスしますが、私はXcodeにそのフォルダが表示される必要はないことを発見しました。各ビルドの後、フォルダをコピーするので、Xcodeにフォルダをドラッグしたかのようにファイルを使用できます。

明らかにこれはAppleScriptのではないですが、私はの.appバンドルに平坦に、離れてlprojディレクトリから、サブディレクトリ内のすべてのファイルを必要と

do shell script "whatever" 
+0

ありがとう、私はこれが答えかもしれないと思う。私はテストする機会があったときにそれを正しいものとしてマークします。 –

+0

私は最終的に何をしたかについて別の答えで返信しますが、ありがとう、あなたは確かにそこにいます! –

関連する問題