Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Xcode iOS应用程序模拟器代码在设备上运行,但不在构建代码上运行_Xcode_Upload_Simulation_Vpn_Product - Fatal编程技术网

Xcode iOS应用程序模拟器代码在设备上运行,但不在构建代码上运行

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服务

我们有一个(运行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->Product->Run或for simulation(连接设备)生成的代码在进行网络连接等操作时运行良好,但Product->Archive生成的代码没有任何更改,无法进行网络连接和上传

除非使用XCode->Product->Run更改默认值,否则将使用调试配置生成。但是,Archive会构建应用程序的发布配置。调试版本中有可能隐藏问题的更改并不少见。内存的定时和处理通常是不同的

使用Run命令时,可以部署发布版本。为此:

  • 在XCode中打开您的项目
  • 进入产品->方案->编辑方案
  • 在左侧的方案列表中,选择Run
  • 将生成配置从调试更改为发布
  • 运行应用程序并尝试重现崩溃
这至少可以让您看到更详细的调用堆栈信息

另一个选项是从设备检索崩溃日志。您可以通过将设备(已崩溃)连接到XCode并转到“窗口->管理器”来完成此操作

进入Organizer后,选择连接的设备并转到设备日志。任何碰撞都应该记录在那里。如果您按下Re Symbolicate按钮,您将看到一个可用的调用堆栈,它将为您提供一个起点

根据其他信息进行更新

这两行来自崩溃日志,是你的出发点:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Crashed Thread:  0
它们表示该应用程序已触发EXC_BAD_访问异常。如果访问未初始化或已释放的对象,则可能发生这种情况。如果在对象上调用不受支持的选择器,也可能发生这种情况。它还表示它发生在线程0上,该线程基于日志引用包含此块的堆栈

[RootViewController      uploadCompletedSlips] (RootViewController.m:120)
这意味着您的起点应该是RootViewController.m中的第120行,该行应该位于uploadCompletedSlips方法中的

除了检查代码是否有任何明显错误外,我建议遵循Rob在回答中的步骤。这些步骤的摘要如下:

  • 通过静态分析器(Xcode“产品”菜单上的“分析”)运行您的代码,并确保它不提供任何警告

  • 打开异常断点,查看它是否标识了问题源的特定代码行。有时,它可以识别代码行,而无需通过查看堆栈跟踪对错误发生的位置进行反向工程

  • 暂时打开僵尸。您可以在方案配置设置中看到此设置

  • 请参阅Ray Wenderlich的文章


  • 除非使用XCode->Product->Run更改默认值,否则将使用调试配置生成。但是,Archive会构建应用程序的发布配置。调试版本中有可能隐藏问题的更改并不少见。内存的定时和处理通常是不同的

    使用Run命令时,可以部署发布版本。为此:

    • 在XCode中打开您的项目
    • 进入产品->方案->编辑方案
    • 在左侧的方案列表中,选择Run
    • 将生成配置从调试更改为发布
    • 运行应用程序并尝试重现崩溃
    这至少可以让您看到更详细的调用堆栈信息

    另一个选项是从设备检索崩溃日志。您可以通过将设备(已崩溃)连接到XCode并转到“窗口->管理器”来完成此操作

    进入Organizer后,选择连接的设备并转到设备日志。任何碰撞都应该记录在那里。如果您按下Re Symbolicate按钮,您将看到一个可用的调用堆栈,它将为您提供一个起点

    根据其他信息进行更新

    这两行来自崩溃日志,是你的出发点:

    Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
    Crashed Thread:  0
    
    它们表示该应用程序已触发EXC_BAD_访问异常。如果访问未初始化或已释放的对象,则可能发生这种情况。如果在对象上调用不受支持的选择器,也可能发生这种情况。它还表示它发生在线程0上,该线程基于日志引用包含此块的堆栈

    [RootViewController      uploadCompletedSlips] (RootViewController.m:120)
    
    这意味着您的起点应该是RootViewController.m中的第120行,该行应该位于uploadCompletedSlips方法中的

    除了检查代码是否有任何明显错误外,我建议遵循Rob在回答中的步骤。这些步骤的摘要如下:

  • 通过静态分析器(Xcode“产品”菜单上的“分析”)运行您的代码,并确保没有提供任何警告。

    <