Xcode iOS应用程序模拟器代码在设备上运行,但不在构建代码上运行
我们有一个(运行iOS 1.5-1.7的iPad)应用程序,希望用户填写表单并按下按钮上传数据。然后,应用程序使用VPN连接到运行MS-SQL web服务的组织后端服务器,并上载数据。在过去的一年中,该应用程序在连接和上传方面从未出现过任何问题,直到更新分发证书后重新编译 现在,Mac OSX(10.9)XCode(5.1.1)->产品->存档并通过iTunes等将.ipa上传到设备生成的.ipa在数据输入部分运行时没有任何问题,但在按下服务器上传按钮时立即崩溃。我不打算详细介绍连接和web服务等,因为当通过Xcode->Product->Run创建ipa并连接设备时,.ipa会被传输到设备上,并且在连接web服务和上传时没有问题Xcode iOS应用程序模拟器代码在设备上运行,但不在构建代码上运行,xcode,upload,simulation,vpn,product,Xcode,Upload,Simulation,Vpn,Product,我们有一个(运行iOS 1.5-1.7的iPad)应用程序,希望用户填写表单并按下按钮上传数据。然后,应用程序使用VPN连接到运行MS-SQL web服务的组织后端服务器,并上载数据。在过去的一年中,该应用程序在连接和上传方面从未出现过任何问题,直到更新分发证书后重新编译 现在,Mac OSX(10.9)XCode(5.1.1)->产品->存档并通过iTunes等将.ipa上传到设备生成的.ipa在数据输入部分运行时没有任何问题,但在按下服务器上传按钮时立即崩溃。我不打算详细介绍连接和web服务
因此,XCode->Product->Run或for simulation(连接设备)生成的代码在进行网络连接等操作时运行良好,但Product->Archive生成的代码没有任何更改,无法进行网络连接和上传 除非使用XCode->Product->Run更改默认值,否则将使用调试配置生成。但是,Archive会构建应用程序的发布配置。调试版本中有可能隐藏问题的更改并不少见。内存的定时和处理通常是不同的 使用Run命令时,可以部署发布版本。为此:
- 在XCode中打开您的项目
- 进入产品->方案->编辑方案
- 在左侧的方案列表中,选择Run
- 将生成配置从调试更改为发布
- 运行应用程序并尝试重现崩溃
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Crashed Thread: 0
它们表示该应用程序已触发EXC_BAD_访问异常。如果访问未初始化或已释放的对象,则可能发生这种情况。如果在对象上调用不受支持的选择器,也可能发生这种情况。它还表示它发生在线程0上,该线程基于日志引用包含此块的堆栈
[RootViewController uploadCompletedSlips] (RootViewController.m:120)
这意味着您的起点应该是RootViewController.m中的第120行,该行应该位于uploadCompletedSlips方法中的
除了检查代码是否有任何明显错误外,我建议遵循Rob在回答中的步骤。这些步骤的摘要如下:
除非使用XCode->Product->Run更改默认值,否则将使用调试配置生成。但是,Archive会构建应用程序的发布配置。调试版本中有可能隐藏问题的更改并不少见。内存的定时和处理通常是不同的 使用Run命令时,可以部署发布版本。为此:
- 在XCode中打开您的项目
- 进入产品->方案->编辑方案
- 在左侧的方案列表中,选择Run
- 将生成配置从调试更改为发布
- 运行应用程序并尝试重现崩溃
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Crashed Thread: 0
它们表示该应用程序已触发EXC_BAD_访问异常。如果访问未初始化或已释放的对象,则可能发生这种情况。如果在对象上调用不受支持的选择器,也可能发生这种情况。它还表示它发生在线程0上,该线程基于日志引用包含此块的堆栈
[RootViewController uploadCompletedSlips] (RootViewController.m:120)
这意味着您的起点应该是RootViewController.m中的第120行,该行应该位于uploadCompletedSlips方法中的
除了检查代码是否有任何明显错误外,我建议遵循Rob在回答中的步骤。这些步骤的摘要如下: