2013-10-03 5 views
9

Xcode 5の新しいアセットライブラリを使用すると、画像を追加して整理することがこれまでになく簡単になりました。しかし、ビルドの作成に使用するスクリプトがいくつか壊れているようです。アセットライブラリを有効にしたXcode 5でInfo.plistのCFBundleVersionを変更する

スクリプト実行フェーズでCFBundleVersionをplist内の現在のタイムスタンプに設定するスクリプトがあります。このスクリプトでは、私はこの文を実行します。

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $timestamp" $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH 

しかし、これが実行されます場合は、次の文が表示さ:このビルドきれいに起こるよう

Set: Entry, ":CFBundleVersion", Does Not Exist 
File Doesn't Exist, Will Create: /Users/SpacePyro/Library/DerivedData/BundleTest-duikdqngfmrovnagrcsvdcuxxstz/Build/Products/Debug-iphoneos/BundleTest.app/Info.plist 

に思えます。おそらく資産ライブラリのために、ビルドの途中までplistは生成されないようです。

私も、このコマンドを使用しました、そして、それはエラーをスローしませんが、それはまだ私の変化(INFO_PLIST="${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Info"を想定)吹き飛ばす:私が始めたとき

defaults write $INFO_PLIST CFBundleVersion $timestamp 

をこれが当てはまらないために使用されますアセットライブラリを使用してアプリのアイコンと画像を整理します。誰もがなぜこれが起こるか知っていますか?さらに良いことに、この値をplistに追加する回避策はありますか?私はすでに、プレアクションビルド段階と、アクション後のビルド段階にスクリプトを配置しようとしました。ビルドが完了したらコマンドを実行しようとしましたが、コード化してパッケージ化しようとすると、plist変更のために署名が無効であると表示されます。

合理的な解決策が存在しない場合は、スクリプトが動作するまで、私はいつでもAsset Librariesから移行することができます。

答えて

11

これは一見わかりやすいものでした。スクリプトの段階を最後まで動かすことができます。私はこれらが移動可能であること、またはそれが重要であることを知らなかった!しかし、Run Scriptフェーズをそのまま下にドラッグすることで、スクリプトは必要に応じてスクリプトを実行して修正することができました。

Build Phases

+0

ありがとうございます!それも私の問題を解決しました。 – Sway

+6

残念ながらこれを終わりに移しても、これは私にとっては解決しませんでした。 – Ants

+0

残念ながら、それは問題を解決するのに役立ちません – MackC

9

私は同じ問題を抱えていた、私の場合、私はXXX-Info.plistファイルに誤ったファイルのパスを持っていた:

ビルド設定を - >包装 - >のInfo.plistファイル

実際の場所に変更して作業を開始しました。

Description to where to change the wrong settings

+0

Xcodeはinfo.plistを選択するように私に依頼します。私はそれをした後、パスは完全なパスです。つまり、shは呼び出されたときにinfo.plistを見つけることができません。したがって、**相対パス**に変更してください。 –

1

あなたのplistファイルがPreprocessed-Info.plistである場合には、 "前処理を行いのInfo.plistファイル" の値を変更する(INFOPLIST_PREPROCESS) "はい"(truethisように。

4

私はかつて同様の問題があったが、ここでは最終的には私を助けたものです:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${INFOPLIST_FILE}" 

(直接使用INFOPLIST_FILE、ない$ BUILT_PRODUCTS_DIR/$ INFOPLIST_PATH

希望、これは可能性が有用である。

関連する問題