iOS开发:如何更改应用程序,使其仅影响新用户?

问题描述

| 我想对我的iOS应用程序进行一些重大更改,但我不希望这些更改影响现有安装,因为这可能会导致现有用户抱怨。如何将新功能限制为仅新安装? 一种简单的方法是在代码中仅在用户完成教程之前发生的位置设置全局标志,然后,如果设置了该标志,则使用新代码。其他更优雅的解决方案? 非常感谢您的智慧!     

解决方法

        我将搁置是否应该执行此操作。其他答复者已经说了我要说的话。 从技术上讲,您将通过查找用户更新应用程序后保留的任何数据来做到这一点。因此,您已设置的任何NSUserDefaults值,已写入应用程序的沙箱的所有内容,钥匙串值...您以前在这里遇到过的任何提示,都将自己的userDefaults标志设置为仅显示老东西。否则,给自己设置一个标志以仅显示新内容。     ,        如果您想要2种不同的应用程序行为,则只需将一个新的不同应用程序提交到App Store。苹果公司可能会或可能不会喜欢他们在审查过程中找不到的“隐藏”行为。     ,        我能想到的最优雅的解决方案是让用户选择。 如果您对更改的定界非常严格,可以使用标志(如您在问题中说的那样)来确定要运行的代码,则我将添加一个设置“ 0”,默认情况下为“是”,除非您检测到该应用程序已安装(进一步阅读)有关此的更多详细信息)。然后,用户可以转到设置(您可能还会问他们)并做出决定,并随时进行更改。 您可以通过检查
NSUserDefaults
中存储的任何数据来确定您的用户是新用户还是旧用户。在程序启动时,检查是否有数据,然后将“ 0”添加到NSUserDefault中,其值为NO,否则将其添加为“ YES”。 即使您忽略让用户通过设置进行选择的可能性,基于NSUserDefault的此方法也可能对您有用。     ,        如果应用完全不同,请制作一个新应用。否则,任何更新的人都会得到新的。 一些现有用户可能想要新的,一些可能想要旧用户。这给大家选择。     ,        你不能。提交更新后,您的所有用户都可以下载它,并且将具有新功能。如果此更新使您的现有客户烦恼,那么它也可能会惹恼您的新用户。