1

Root.plistのバージョンを更新する実行スクリプトを作成しようとしています。これはスクリプトです

version = /usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $SRCROOT/AppName/AppName-Info.plist/usr/libexec/PlistBuddy "$ SRCROOT / AppName / Settings.bundle / Root.plist" -c "set PreferenceSpecifiers:1:DefaultValue $ version"

設定バンドルのRoot.plistは

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-    1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
    <dict>
        <key>Title</key>
        <string>About</string>
        <key>Type</key>
        <string>PSGroupSpecifier</string>
    </dict>
    <dict>
        <key>DefaultValue</key>
        <string>1.0.24</string>
        <key>Key</key>
        <string>version_preference</string>
        <key>Title</key>
        <string>Version</string>
        <key>Type</key>
        <string>PSTitleValueSpecifier</string>
    </dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>

私はこの回答の指示に従いました。.ipaを作成すると、バージョン番号が正常に更新され、iTunesで新しいバージョンを確認できます。しかし、アプリをアップグレードしようとすると、デバイスに「1アイテムを同期できませんでした」と表示されます。詳細については、iTunesを参照してください。ただし、電話の古いアプリが削除され、新しいインストールが行われると、アプリは正常にインストールされ、電話の設定に正しいバージョンが表示されます。xcode4.5.2を使用しています。誰か助けてください

4

2 に答える 2

1

次のスクリプトは、現在のSubversionリビジョン番号をplistに挿入するために機能します。

G_VERSIONRP="`/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString"  ${TARGET_BUILD_DIR}/${INFOPLIST_PATH}`"
G_BUILDRP="`svnversion -n`"
G_TITLERP="MyApp v"
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:0:Title ${G_TITLERP}${G_VERSIONRP} (${G_BUILDRP})" ${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Settings.bundle/Root.plist
于 2013-01-08T15:23:04.973 に答える
0

数日後に再試行し、スクリプトを使用してクリーンビルドを実行しました。iTunesの既存のコピーを置き換え、同期して、動作しました!! 以前の試みと同じではない唯一のステップは、以前にiTunesライブラリの既存のコピーを削除し、新しいコピーをドラッグしたことでした。それが原因で'1アイテムを同期できなかったかどうかはよくわかりません。詳細については、iTunesのメッセージを参照してください。ただし、電話の設定に正しいバージョンが表示されるようになりました。

于 2013-01-29T09:41:09.490 に答える