2013-01-04 42 views
0

我的应用程序在从App Store下载时崩溃,但从未从Xcode执行时崩溃。 有点背景... 我开发的应用程序访问用户的联系人。该应用从我的服务器下载电话号码,并检查该联系人的姓名。 我已经执行了应用程序十亿次,它从不崩溃,但我上传到苹果商店,它崩溃了,我看着崩溃日志,它检查联系人的名称时崩溃,方法ABCMultiValueCopyValueAtIndex,我可以不会在Xcode上复制,我尝试卸载应用程序,但它永远不会崩溃!这是相同的代码,毫无疑问。如何模拟全新安装?

因此,事情是,当应用程序“新鲜”安装在手机中时有所不同,但我无法复制该“新”状态。

我该怎么做?它从来不问我是否让应用程序访问我的联系人...

回答

0

如何模拟全新安装?

为此,您只需从设备上删除您的应用程序,然后再运行它。它将被“新鲜”安装。另外,不要忘记清理你的项目,以便从头开始构建。

在任何情况下,与您正在测试的设备相比,您的问题更可能来自设备上不同的iOS版本。如果您在致电ABCMultiValueCopyValueAtIndex时提供了一些代码,这将有助于理解事情。

+0

即时通讯使用相同的设备,用于应用商店安装和xcode执行。 – subharb

+0

这是错误的,删除不模拟相同的行为,当它从应用程序商店安装,我已经做了很多次,仍然我不能重现相同的错误 – subharb

+0

这是什么应用程序?它是免费的吗?我们可以在我们的设备上进行“全新安装”检查吗?我认为提供一些代码会更容易,但是... – sergio

0

唯一安全的方法=将设备重置为出厂设置。

但是,通常卸载应用程序并重新启动设备就足够了。 当谈到推送通知时,需要3天才能在卸载后将其移除。 重置钥匙串可能会很棘手,最好从应用程序内部完成。

另外请注意,您可以通常只是通过改变文件的名称模拟相同的行为/你在哪里保存数据钥匙扣条目(等),这样的数据将不会被加载重新启动应用程序时。

+0

我无法复制相同的错误 – subharb

+0

@DavidShaikh然后粘贴你的代码。新安装可能不是问题。 – Sulthan

0

如果您使用Keychain存储任何内容,那么删除该应用程序将不会清除这些条目。如果你没有绑定到你的Bundle Id,即推送通知,你可以将Bundle Id更改为其他内容,将其作为新应用运行

很明显,您需要在制定出来后将其更改回来问题

+0

我确实使用推送通知... – subharb