2013-01-08 3 views
1

내가 Root.plist의 버전을 업데이트하는 실행 스크립트를 작성하는 것을 시도하고 실패합니다.업데이트 버전은 아이폰

이 스크립트 ": 1의 DefaultValue $ 버전 PreferenceSpecifiers 설정"-c

버전 = /usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $SRCROOT/AppName/AppName-Info.plist는/usr/libexec 디렉토리/PlistBuddy "$ SRCROOT/프로그램 응용/Settings.bundle/Root.plist"입니다 설정 번들

Root.plist 내가 this 대답에서 지시를 따랐다

<?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를 참조하십시오. ' 그러나 휴대 전화의 이전 응용 프로그램을 삭제하고 새로 설치하면 응용 프로그램이 성공적으로 설치되고 올바른 버전이 전화 설정에 나타납니다. xcode 4.5.2를 사용하고 있습니다. 누구든지 도와주십시오.

답변

0

나중에 다시 시도하고 스크립트를 사용하여 깨끗한 빌드를 시도했습니다. iTunes의 기존 사본을 대체하여 동기화했습니다. 이전 시도와 다른 유일한 단계는 이전에 iTunes 보관함에서 기존 사본을 삭제하고 새로운 사본을 드래그했습니다. 그 원인이 '1 개의 항목을 동기화 할 수 없습니다.' 자세한 정보는 iTunes를 참조하십시오 '메시지가 표시되지만 이제는 전화기 설정에 올바른 버전이 나타납니다.

1

다음 스크립트는 현재 서브 버전 리비전 번호를 우리 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