NSBundle PathsForResources 在下载按需资源包后返回 null

NSBundle PathsForResources returning null after downloading On Demand Resource Bundle

提问人:Anthony Guella 提问时间:4/15/2021 最后编辑:Anthony Guella 更新时间:4/15/2021 访问量:135

问:

我的团队在使用 Apple 的按需资源框架时遇到了一个非常奇怪的问题。这是一个随机发生的问题,用户将成功下载我们的一个资源,但当我们尝试通过 NSBundle.PathsForResources() 访问此资源的路径时,它没有显示出来。当用户使用特定资源标记进入此状态时,我们尚未找到解决问题的方法。每次访问应用程序的这一部分时,我们的代码都会尝试重新获取受影响的资源标签,因此这不是不重新获取的问题,我们肯定会获取并成功下载。奇怪的是,卸载应用程序并重新安装甚至无法修复这种损坏状态。人们会认为在 iOS 上删除应用程序和重新安装之间没有任何内容,但这里似乎并非如此。此外,这发生在看似随机的资产上,没有某些按需资源包受到影响的模式,在所有情况下都是不同的。一旦资源标签被“砖砌”,它就会保持这种状态。任何可能导致这种情况/我们可以尝试解决此问题的想法吗?

下载代码:

        // create and initialize new resource request
    public async Task CreateODRResourceRequest(string tag)
    {
        if (string.IsNullOrWhiteSpace(tag))
        {
            throw new ArgumentNullException(nameof(tag));
        }

        // Create resource request
        var request = new NSBundleResourceRequest(new[] { tag });

        // Set highest loading priority
        request.LoadingPriority = NSBundleResourceRequest.LoadingPriorityUrgent;

        _currentResourceRequest = request;

        var resourcesAlreadyAvailable = await request.ConditionallyBeginAccessingResourcesAsync();

        // ensure we only download resource if it's not already on the device
        if (!resourcesAlreadyAvailable)
        {
            await request.BeginAccessingResourcesAsync();
        }
    }
iOS Xamarin 应用商店 nsbundle on-demand-resources

评论


答: 暂无答案