iOS 10将很快发布,因此值得测试应用程序与它的兼容性.在此类测试期间,我们发现我们的应用程序无法在iOS10上恢复后台下载.在以前的版本上运行良好的代码在模拟器和设备上都不适用于新版本.
我没有将我们的代码减少到最小的工作测试用例,而是在互联网上搜索NSUrlSession教程并测试它们.行为是相同的:恢复工作在iOS的previos版本,但在10日休息.
下载恢复.您可以查看iOS10之前版本的工作原理.
下载失败.在xcode控制台中,您可以看到:
2016-09-02 16:11:24.913 HalfTunes[35205:2279228] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-02 16:11:24.913 HalfTunes[35205:2279228] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-02 16:11:24.913 HalfTunes[35205:2279228] Invalid resume data for background download. Background downloads must use http or https and must download to an accessible file.
Run Code Online (Sandbox Code Playgroud)
如果您在下载文件时激活离线模式,则可以获得
Url session completed with error: Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSLocalizedDescription=unsupported URL} {
NSLocalizedDescription = "unsupported URL";
}
Run Code Online (Sandbox Code Playgroud)
当网络关闭时,下载永远不会在网络再次启动时恢复.暂停的其他用例(例如重新启动)也不起作用.
我试图使用建议的代码检查返回的resumeData是否有效 …