2011-08-08 110 views
3

我有幾個應用程序在Apple Store中存在,我們剛剛發佈了這些應用程序的更新版本,並增加了版本號。我發現所有資源都正確更新(更新的啓動畫面,背景圖像等),但新增功能沒有得到更新。例如,我添加了一項功能,以便iPhone應用程序從我的網站獲取新內容。當我從Appstore更新列表更新應用程序時,不會發生這種情況。iPhone:更新後的版本不會更新應用程序二進制文件?

...但其他奇怪的是,如果我從我的iPhone刪除應用程序,並從Apple商店再次下載,那麼一切工作正常!我無法理解發生了什麼事。任何人都可以請幫我調試呢?

this我得到以下代碼並添加到我的AppDelegate中。對我來說,它總是打印版本(空)。我可以看到我的Application-info.plist文件中正確設置了版本號!

#if DDEBUG // debugging/testing 
NSString *versionString = [NSString stringWithFormat:@"v%@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]]; 
#else 
NSString *versionString = [NSString stringWithFormat:@"Version %@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]]; 
#endif // DDEBUG 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setValue:versionString forKey:@"version"]; 
printf("Version: = %s\n", [versionString cStringUsingEncoding:NSMacOSRomanStringEncoding]); 
[defaults synchronize]; // force immediate saving of defaults. 

下面的代碼雖然工作!我的意思是它打印在application-info.plist文件中可用的正確版本!得到它從here

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSLog(@"Version: %@", version); 
[defaults setObject:version forKey:@"version_preference"]; 
[defaults synchronize]; 

我可以確認這是否重新提交申請後修復該問題。

謝謝。

+0

它可能是你對設備的二進制是你已經從xcode的下載,而不是從應用商店下載了一個。 –

+0

不...它發生在用戶手機上,我根本不運行xcode! – applefreak

+0

嗨Praveen,你認爲http://stackoverflow.com/questions/1311405/iphone-update-application-version-in-settings可能是一個問題?我們更新應用程序設置plist文件中的版本號。 – applefreak

回答

0

這工作:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSLog(@"Version: %@", version); 
[defaults setObject:version forKey:@"version_preference"]; 
[defaults synchronize]; 
相關問題