问题标签 [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 投票
4 回答
687 浏览

swift - 按需资源的资产目录编译错误:没有输出规范

我一直在尝试让 On-Demand Resource 工作,但我不断收到此编译错误:

/* com.apple.actool.errors */

:错误:“xxx.imageset/xxx@3x.png”的标签组合“tagName”没有输出规范。

我查看了actool 手册页,有一个选项:

其中说:

告诉 acttool 将有关在资产目录中找到的 ODR 资源的信息写入何处。发出的文件将是一个 plist。

但是我不确定该放什么作为参数/使用此 plist 的位置,或者即使此选项处于修复错误的正确轨道上。

0 投票
2 回答
805 浏览

ios - How Does Apple's On Demand Resource System download files to the App's Main Bundle?

I am currently trying to implement Apple's API for On Demand Resource Management for AWS Cloudfront because Apple's ODR is somehow too unreliable.

I noticed that when I tag images inside of Assets.scnassets/ with an ODR resource tag, I can access that image using

once it has been downloaded by a NSBundleRequest object. Because I can access the downloaded resource as a UIImage, I know that the resource is located in the app's main bundle but I thought this was impossible because Bundles were read-only. How did apple do this? The most important aspect is being able to create UIImages using this incredibly simple interface.

0 投票
0 回答
797 浏览

ios - 来自框架或 Cocoapod 的 iOS 按需资源?

从 iOS 9 开始,iOS 具有“按需资源”(ODR) 功能,允许 Apple 托管可以按需下载的资源,而不是将它们放在应用程序包中。通过使用资源标签标记资产,然后使用NSResourceBundleRequest给定标签请求资产,我们可以通过在需要时将不经常使用的资产远离设备来减少我们的应用程序包大小。

可悲的是,我只能让它与 Xcode 中应用程序目标中特别包含的资源一起使用。有时代码和资源不包含在应用程序目标中,而是包含在共享或外部框架中(例如,通过 Cocoapods 分发的库或用于在 iOS、tvOS、watchOS、macOS 应用程序之间共享代码和资产的共享框架)。理想情况下,由于这些框架最终都嵌入到您的应用程序目标中,Xcode 将能够简单地从嵌入式框架中提取资源并标记它们以供下载。

尽管这些框架目标在其项目文件中具有“资源标签”部分,并且我们仍然可以在这些目标中配置资源标签,但在运行时,资源请求会以NSBundleOnDemandResourceInvalidTagError. Debug Navigator 中的“Disk”窗格也没有显示 On-Demand Resources 部分。

我找不到任何明确说明使用 ODR 是否可以使用外部框架的文档。有谁知道这是否可能,如果可以,如何实现?

0 投票
0 回答
650 浏览

ios - iOS/Xcode 为项目中的框架启用按需资源

是否有人构建了一个已Enable On Demand Resources设置YES为链接到该项目的框架的项目。我正在处理的应用程序中的大多数目录资产都被保留并带入框架中的项目中,我得到构建错误Target '<Framework/Bundle>Name' has on-demand resources enabled (ENABLE_ON_DEMAND_RESOURCES = YES), but it is not supported for framework target types.并且无法编译项目。

0 投票
1 回答
386 浏览

ios - 使用按需资源,如果它们在构建时未知,是否可以下载文件列表?

我想在运行时通过网络获取文件列表。我打算在我的服务器上托管很多文件(spritekit atlas)。我希望用户能够将这些文件下载到应用程序中。由于我目前不知道我将拥有多少文件,我是否仍然可以使用 ODR 并让用户下载新添加的文件而无需编译应用程序的新版本。

0 投票
0 回答
267 浏览

ios - iOS 12. OnDemand 资源返回 NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ondemand.client"

有没有人遇到过这个错误?这是什么原因?

我的名为“Tag”的资源包含在“Prefetched”和“Download Only On Demand”中。

XCode 10 (10A255)、iOS 12、iPhone 6 Plus。

我的代码:

0 投票
2 回答
682 浏览

demandware - 在 OCAPI 中更新 Stock_level

如何使用(业务经理 API)更新库存(stock_level)。

我使用业务管理器 API 来检索产品。我能够检索产品,但我不确定如何设置其库存 (stock_level)。

我有一个特殊要求,产品数量不能超过 1,所以我需要将它设置在库存中以便我可以测试它。

我试图查看是否可以使用产品设置库存水平,但这似乎不可能。

当我尝试获取库存时,以下是错误

0 投票
1 回答
815 浏览

swift4 - 按需资源下载但无法访问。斯威夫特 4

在我的 iOS 应用程序中,我有一堆 mp4 视频,我在特定时间使用 On Demand Resources 在应用程序上下载了这些视频。使用本教程: https ://www.raywenderlich.com/520-on-demand-resources-in-ios-tutorial

我在应用程序开始时在以前的视图控制器中下载了这样的资源:

该资源似乎下载得很好,通过查看 xcode 中的磁盘报告,我知道它们已被下载。

但是,当视频应该在应用程序中播放时,应用程序只会显示黑屏。这是我播放视频的代码:

现在,当资源没有标记,并且它们随应用程序一起提供并且以后没有下载时,它们可以正常工作。控制台打印文件名,就像我做的一样 (print(videoURL.absoluteString)。但是在它们被标记并稍后下载后​​,它们就不起作用了,控制台中也没有打印任何东西。应用程序中只出现一个黑屏。

我多年来一直坚持这一点,并提供真正的帮助。

谢谢

0 投票
1 回答
725 浏览

ios - iOS 按需资源 - 仅按需下载。调试

我正在为我的应用程序中的多个视频使用点播资源。我已经标记了资源,并将它们放在 Targets Resource Tags 中的“按需下载”标签中。我使用 NSBundleResourceRequest 下载资源,一切都很好。当我执行代码时,资源会被下载,我可以在 xcode 的磁盘部分看到它。

对于我的问题,我认为我不需要发布我的代码。

我的问题是,当我在设备上从 xcode 运行应用程序时,我看到 xcode 运行应用程序,并立即将视频复制到应用程序,甚至在我执行下载代码之前。另外,如果我在设置中检查我的应用程序,iPhone 存储,我发现该应用程序占用了大量空间,因为视频已经下载。为什么视频在“下载”之前就已经占用了存储空间?

发生这种情况仅仅是因为我正在调试应用程序,但是当我发布应用程序时,只有在用户执行下载代码时才会下载视频?

这似乎是一个基本问题,但我看不到任何人解决这一点/

谢谢

0 投票
1 回答
417 浏览

on-demand-resources - 未从 testflight 下载的按需资源

我启用了 OnDemandResources 并检查了模拟器中的流程。它工作正常。当进行试飞发布时,我可以看到启用了 ODR 字段并且有 1 个资产文件可用。但是安装后,资源不会被下载。

我正在使用 Xcode 10.1 并将构建设置更改为旧模式,但它不起作用。