Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 测试更新时的TestFlight警报:您已经安装了此应用程序_Ios_Testflight - Fatal编程技术网

Ios 测试更新时的TestFlight警报:您已经安装了此应用程序

Ios 测试更新时的TestFlight警报:您已经安装了此应用程序,ios,testflight,Ios,Testflight,我试图使用TestFlight测试从live App Store应用程序构建到RC的更新场景,但TestFlight向我发出警告“您已经安装了此应用程序。是否要替换…”(请参见下面的屏幕截图)。确认后,应用商店版本中的所有数据都将消失 我执行的步骤: 从应用商店安装live应用程序 登录并执行一些操作以获取应用程序和密钥链中的数据 转到TestFlight iOS应用程序 点击TestFlight中的“安装”按钮->出现警告“您已经安装了此应用程序” 如果点击“选择安装”,则安装新版本 结果:

我试图使用TestFlight测试从live App Store应用程序构建到RC的更新场景,但TestFlight向我发出警告“您已经安装了此应用程序。是否要替换…”(请参见下面的屏幕截图)。确认后,应用商店版本中的所有数据都将消失

我执行的步骤

  • 从应用商店安装live应用程序
  • 登录并执行一些操作以获取应用程序和密钥链中的数据
  • 转到TestFlight iOS应用程序
  • 点击TestFlight中的“安装”按钮->出现警告“您已经安装了此应用程序”
  • 如果点击“选择安装”,则安装新版本
  • 结果

    • 当我再次打开应用程序时,包括共享容器(与扩展共享的数据)和钥匙链在内的应用程序内容将被完全删除
    编辑:TestFlight中的警报与任何应用一起出现(我已尝试了来自不同开发帐户的多个不同应用)。实际的数据删除只发生在某些情况下

    我的问题

    这是TestFlight的预期行为还是我的应用程序有问题?我不知道版本之间有任何可能导致任何问题的更改

    我相信这以前没有发生过(我最后一次尝试是在几周前)

    我找不到任何关于TestFlight应用程序行为或更改的文档或发行说明

    有没有人经历过同样的问题?或者您知道描述这种行为的任何资源吗


    谢谢你的回答

    经过长时间的研究、尝试和错误,创建了雷达并将更新发布到App Store,我有了一个答案:

    警报始终存在,与丢失数据无关。

    • 对于通过非TestFlight构建从TestFlight安装的任何应用程序,始终显示警告可能丢失数据的警报
    • 对于我尝试过的多个应用程序中的任何一个都是如此
    供应商标识
    在使用TestFlight build覆盖应用程序时发生更改。

    • 当您安装了应用程序商店版本的应用程序,并使用TestFlight生成的版本覆盖它时,
      [[UIDevice currentDevice]identifierForVendor]
      的结果会更改
    • 这是意外的,因为文档中未提及(见下文)
    • 在我的例子中,供应商的
      标识的意外更改导致了“数据丢失”,这并不是实际的数据丢失,但它只发生在无法调试的TestFlight构建中,因此很难找到问题

    供应商的
    [[UIDevice currentDevice]标识文件]
    说明:

    在iOS设备上安装应用程序(或来自同一供应商的其他应用程序)时,此属性中的值保持不变。当用户从设备中删除该供应商的所有应用程序并随后重新安装其中一个或多个应用程序时,该值将发生变化。当使用Xcode安装测试生成或在使用即席分发的设备上安装应用程序时,该值也会更改


    据我所知,

    如果您在设备上安装了App Store(假设版本号为1.0)中的应用程序,并且假设您再次从TestFlight下载/安装版本号为1.0的相同应用程序,您将收到上述消息。

    这是因为您正在尝试安装与设备上已存在的版本和捆绑id相同的应用程序。

    当然,您将丢失应用程序的数据/设置,因为它不会更新您的应用程序。

    我也经历过这种情况。

    如果您的设备上安装了应用程序的完整版本,并且安装了相同的测试版应用程序,则您的应用程序数据可能已损坏或丢失,并且可能无法恢复。在安装测试版应用程序之前,您应该备份您的信息



    我不知道这是怎么发生的

    我遇到了同样的问题。如果您确实想保留和访问app store版本的数据,那么最好的程序是什么?例如,您想读取保存的某些首选项。@JoeBlow由于供应商的标识发生了变化,所以出现了这个问题。所以,如果你想从TestFlight测试应用商店版本的更新场景,只要确保你不使用供应商的
    identifierForVendor
    ,因为IFV的更改可能会导致你的数据丢失,或者你处理得很好。damnnnnnnnmmmmnnnnnnnnnnn!!!!!!!!!!!!!!!!!很好的发现,卢卡斯。问题是:有没有什么方法可以从TFA安装,而不是专门删除数据?因为,当然,我希望能够测试新系统是否能够拾取旧数据。你找到办法了吗?谢谢我确实发现了这可能是相关的…@JoeBlow实际上我的同事发现供应商的标识正在发生变化,我只是在这里总结了所有的发现。嗨@Lukaskukaka--所以我想知道,一旦应用程序通过appstore并从appstore正常更新,您是否会丢失NSUserDefault数据?还是很好。thanks@JoeBlow不,只有在用TestFlight构建(测试更新)覆盖应用商店版本时才是这种情况<代码>供应商标识
    仅在那时更改。当用更新的应用商店版本更新应用商店版本时,一切正常,因为在这种情况下IFV不会改变。但是你弄错了<代码>NSUserDefaults数据不会消失,但导致我丢失数据的
    供应商标识
    更改。您好@avinash。。。但是假设你安装了2.0版,实际上是从应用商店安装的。因此,您有了AngryBirds 1.0,然后单击以升级到AngryBirds 2.0。当然,你不会失去你的偏好。是这样吗?那么,“在app store上升级”和“从TFA升级”之间的行为真的不同吗?是的,如果升级下一个版本