2009-09-30 34 views
0

爲了QA的目的,我將應用程序的構建版本作爲PSTitleValueSpecifier顯示在應用程序的設置視圖中。我將我們的應用程序的當前內部版本號設置爲DefaultValue,然後對每個新版本進行更新。Settings.bundle中的字符串值在更新後爲空

我的問題是,無論何時我通過Xcode在開發手機上部署應用程序的新版本,版本值都不會更新,而會保留在以前的版本中。更新版本值的唯一方法是從開發手機中刪除應用程序,然後部署新版本。顯然,這種方法並不滿足我們的質量保證部門,因爲他們隨後丟失了他們所有的持久數據。

我已經嘗試過,清理項目,重新編譯和部署,但我得到了相同的行爲。

是否有其他人遇到過這個問題?任何想法如何解決它/解決它?

回答

2

這是因爲這個值是使用存儲在磁盤上的NSUserDefaults存儲的,只有在刪除應用程序時才被刪除。您可以使用與其他用戶默認相同的方式在代碼中明確設置它。你可以在你的Info.plist中創建一個字段,當你想發送一個新的版本的時候你會改變它。閱讀從啓動時的plist該值,然後將其與寫信給你的用戶的默認值:

NSString *value = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"build_version"]; 
[[NSUserDefaults standardDefaults] setObject:value [email protected]"build_version"]; 
[[NSUserDefaults standardDefaults] synchronize]; 

當然,你替換「build_version」以您的鍵名是在你的設置文件。這是一種黑客攻擊,但它可能會讓你的質量保證人員滿意。

出於參數的原因,在看到版本號更新之前,期望您必須完全刪除以前的版本實際上是合理的,但是我意識到並非所有的QA人都是合理的。 ;-)

相關問題