【问题标题】:Launching app from XCode vs from Device?从 XCode 与从设备启动应用程序?
【发布时间】:2015-04-08 15:09:32
【问题描述】:

我只是重写了一些使用 NSURLSession 的后台配置将音频文件上传到 s3 的代码。从 XCode 启动我的应用程序时(在我连接的设备上 - 而不是模拟器上),一切正常。当我通过点击断开连接的设备上的图标启动应用程序时,我的 NSURLSessionUploadTask 不会上传,也不会触发它的任何回调。网络连接不是问题。

如果我能更好地理解从 XCode 启动和从设备启动之间的区别,我想我可以弄清楚。现在,我很茫然。有任何想法吗?非常感谢。

【问题讨论】:

  • 一般情况下不会发生这种情况。只需将设备与您的 PC 连接,然后再次使用断点运行以检查。可能是您尚未安装最新版本
  • 我已经尝试删除并重新安装该应用程序 - 它绝对是相同的版本。不过,感谢您的建议。
  • 您能否仅使用那段代码创建新的测试项目,并证明应用程序的启动类型(Xcode 或直接设备)定义了NSURLSession 是否有效?
  • “当我通过点击断开连接设备上的图标启动应用程序时” 当您这样做时,应用程序真的是从头开始启动的吗?还是只是回到最前面?
  • 是的,我每次都强制退出应用程序。 Azat - 我一直在使用 Crashlytics 从设备启动和从 XCode 启动时的 NSLog 进行调试 - 我可以确切地看到它失败的地方(回调在 [uploadTask resume] 之后没有触发。我一直在寻找关于启动时究竟发生了什么的文档来自 XCode,但到目前为止找不到任何帮助。感谢您的回复。

标签: ios xcode cocoa-touch


【解决方案1】:

我想通了。 NSURLSessionConfiguration 的任意属性显然会导致不同的行为,具体取决于您是从 XCode 还是设备本身启动应用程序。

sessionConfiguration.discretionary = YES;   // Deleted this.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    相关资源
    最近更新 更多