【问题标题】:iOS: Issues with background uploading large filesiOS:后台上传大文件的问题
【发布时间】:2021-06-21 06:05:51
【问题描述】:

我有一个应用程序可以记录和上传大文件(每个最多 5gigs)

录制完成后,用户触发一个动作开始上传文件。

已注册上传以进行后台处理,因此如果手机进入休眠状态,它们会继续进行。

我遇到的问题:

  1. 某些文件超过 4 gig 时随机内存崩溃
  2. 应用已暂停时无法启动后台上传。

因此,如果用户录制了 4-5gigs 之间的文件,则应用在上传时会随机崩溃。同时上传多个 5 个演出文件也会增加崩溃的机会。

我们目前按顺序上传文件,但在我的列表中遇到了问题 #2。如果用户录制了多个 5 gigs 文件,并让手机处于休眠状态,则只会上传第一个文件,用户必须重新打开应用才能开始处理下一个文件。

我尝试使用 BackgroundTasks 来查看它是否可以触发上传,但后台任务从不触发,并且我已经阅读了它认为用户即将使用手机时触发后台任务的唯一尝试。

我还尝试在uploadTask 上使用urlSessionDidFinishEvents 回调。但它似乎从未触发过,或者至少不能用于调用 API 请求。

有人对为大文件启动后台文件上传有什么建议吗?

【问题讨论】:

    标签: ios swift uploading


    【解决方案1】:

    我认为问题在于您可能会达到系统资源限制。发生这种情况时,系统将弹出您的二进制文件;它们被称为 Jetsam 事件。我建议您在设备上触发 sysdiagnose 事件(每个设备不同 - 通常同时按下音量增大、减小和侧边按钮)。

    然后从Settings > Privacy > Analytics and Improvements > Analytics Data恢复日志

    文件名以sysdiagnose_YEAR.MONTH.DAY_*.开头

    将文件复制到 Mac 后(使用 iOS UI 中的“共享”按钮),您可以具体查看被破坏的内容。

    请使用检索到的特定日志信息更新您的问题。

    最后,值得实现applicationDidReceiveMemoryWarning:,因为您的应用在此类处理期间可能会使用大量内存。

    【讨论】:

    • Cheers 明天将对此进行测试,看看怎么说!
    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 2014-12-26
    • 1970-01-01
    • 2022-10-07
    • 2013-05-07
    • 2012-10-05
    • 2015-01-23
    相关资源
    最近更新 更多