问题标签 [on-demand-resources]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
753 浏览

swift - 按需资源下载 Swift 3 后使用文件

按需资源放置。

大家好。我已经为按需资源设置了标签,我已经编写了代码来下载它,但我不知道如何访问它?使用迅速 3

下面是我的代码。

在我设置 ODR 之前,我从 main.bundle 获取音频。

下载文件的代码。

我只是看不到下载后如何访问该文件?

0 投票
1 回答
518 浏览

ios - 了解应用瘦身大小报告

我已经使用按需资源实现了应用程序细化。现在,当生成 ipa 时,我得到一个应用程序细化大小报告,如下所示

我不明白这意味着什么以及它如何影响我的 ipa 大小。

任何帮助表示赞赏

0 投票
0 回答
148 浏览

ios - OnDemandResource 和新版本 App

我遇到了以下问题OnDemandResource

1)我从TestFlight旧版本的应用程序下载...应用程序下载OnDemandResource,一切正常。

2)我上传了一个新版本的应用程序,我在其中添加了新资源,并将其安装为旧版本的更新。并且当新版本App运行时,不下载新的OnDemandResource,App认为所有资源都下载完毕。

如何解决?

首先启动旧版本:

首先启动新版本(更新旧版本,添加新PACK_3):

0 投票
0 回答
177 浏览

ios - 无法使用 swift 访问其他文件中的按需资源

我开始处理按需资源。我可以下载资源,但无法在其他文件中使用这些资源。请有人帮我解决这个问题。PFA代码。


将此方法称为:

0 投票
1 回答
1149 浏览

ios - 按需资源崩溃 - NSBundle 资源请求无法连接到它的助手守护进程

使用此描述在 iOS 应用程序上使用 ODR(按需资源)时崩溃 -

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“NSBundleResourceRequest 无法连接到其帮助程序守护程序”

崩溃中常见的 iOS 版本 - 10.3.2

我在 Crashlytics 中看到崩溃,如果不调用私有方法,我无法在调试模式下重现此问题。我的 ODR 中包含图像和声音文件。附加堆栈跟踪屏幕截图 - ScreenShotofStackTrace

我也在-[NSBundleResourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler:]一个dispatch_after街区内打电话。这可能是罪魁祸首吗?

任何线索将不胜感激!

0 投票
1 回答
187 浏览

ios - Crashlytics 的 Beta 版是否支持 iOS 的按需资源?

我相当肯定这个问题的答案是“不”,但我还是在问。我证明 Crashlytics 的 Beta 不支持 iOS 的按需资源的证据是从 TestFlight 下载时可以正常工作的应用程序构建,但从 Beta 下载时会引发以下 iOS 错误:

错误域 = NSCocoaErrorDomain 代码 = 4994 “请求的应用程序数据不存在。” UserInfo = { NSLocalizedFailureReason = 请求代码未完成。集合“{(cardImage,cardAudio)} 中的标签无效。” }

0 投票
1 回答
978 浏览

ios - (ODR) OnDemandResource 'beginAccessingResources 被多次调用或在错误的时间被调用 (3)

我试图在我的应用程序中引入 ODR 并面临以下崩溃。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'beginAccessingResources was called more than once or at the wrong time (3)'

这是我到目前为止所做的。

  1. 创建了两个带有标签Bell1Bell2的资产包。
  2. 在调用conditionallyBeginAccessingResourcesWithCompletionHandler后请求 appDidFinishLauching 上的 Bell1标签
  3. 登录完成后在 Home 控制器的viewDidLoad上请求 Bell2 。

(仅供参考:我暂时不会在任何地方调用endAccessingResources。)

如果我删除第 3 步或在单个请求中请求两个资源,则应用程序可以正常工作。如果我同时创建两个 NSBundleResourceRequest 则应用程序崩溃。

到目前为止,我已经搜索了 stackoverflow 并阅读了文档,但找不到有关此问题的任何帮助。

0 投票
3 回答
345 浏览

on-demand-resources - 通过 NSBundleResourceRequest 下载后如何访问 Asset Catalog(图像)?

通过 NSBundleResourceRequest (按需资源)下载资产目录后,我无法访问资产目录中的图像。

我的代码,假设图像集名称为“snow_4”,按需资源标签为“tag1”

以下是我的磁盘报告,请注意 [UIImage imageNamed:@"snow_3"](标记为“使用中”)返回正确的对象,但不返回标记为“已下载”的图像

磁盘报告

感谢您的时间和帮助!

谢谢,火星

0 投票
1 回答
781 浏览

ios - NSBundleResourceRequest beginAccessingResources 永远不会完成

我正在尝试在我的应用程序中使用 ODR,但beginAccessingResources从未完成。以下是我的代码的简化版本:

我已经开始简单地用标签标记一个.sks文件,Level1另一个.sks用标签标记Home。当我开始访问 tag 的资源时Home,我可以顺利完成,没有任何问题。但是,当我尝试使用Level1标签时,完成块永远不会触发。我没有收到错误或成功。当我查看“磁盘报告”时,它显示HomeIn Use一个Level1永不Downloading移动的进度条。Level1总共有 16 KB,所以它不是太大,我让它坐了大约 10 分钟,但没有成功。

什么可能导致此功能永远无法完成?

0 投票
4 回答
2757 浏览

ios - 按需资源上传失败

最近我遇到了按需上传资源的问题。我正在使用 Xcode 9.0 将应用程序上传到 AppStore,并且每次上传都成功完成。但是查看 iTunes Connect 构建详细信息,我可以看到,按需资源已启用,但此构建有 0 个资产包。

这个问题还有一个更有趣的时刻。我的应用程序的 3 号内部版本也随按需资源一起上传,并且该版本的一切都很好。但是构建号 4 和 5 不包含资产包。我审查了应用程序的变化——根本没有与按需资源相关的变化。

在 Xcode->Build Settings -> Assets -> Embed Asset Packs in Product Bundle 中设置为 No。此外,一个资产包的大小约为 5MB,所有包的总大小约为 150MB。

也许,有人也有这个问题?谢谢。

更新 我检查了 Xcode 存档中的产品文件夹 - 共有 36 个资产包,但 iTunes Connect 仍然显示 0 个包。

更新 2 看来,它不止一次发生。开发人员一年前也遇到过同样的问题。我认为,我们应该向 Apple 报告一个错误。

更新 3 我们尝试使用 Application Loader 上传具有按需资源的应用程序,但结果是相同的。

更新 4 我们尝试将代码恢复到在按需资源上一切正常的版本,并将具有不同版本号的相同二进制文件上传到 iTC,但结果是相同的。

更新 5我们收到了 Apple Developer Technical Support (DTS) 的答复

感谢您联系 Apple 开发者技术支持 (DTS)。我们的工程师已审核您的请求,并确定您遇到了一个已知问题,目前尚无已知的解决方法。

我将在此处发布与此问题相关的任何更新。