问题标签 [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 回答
150 浏览

ios - 按需资源功能 iOS

请在下面提供建议。

我们正在使用 ODR 构建 iOS 应用程序,尽管我有以下几个问题。请求您的帮助。

  1. 我们如何提供从应用程序下载游戏的提示?上下文 - 我们的应用程序中共有 25 款游戏,玩家可以一次下载一款游戏来玩/尝试。完成后,用户可以下载其他游戏。

    1. 我们可以发送用户设置以仅通过 wifi 下载与 wifi 和数据下载吗?

3.如果用户在设备上没有足够的存储空间会怎样?

  1. 用户可以轻松地从本地存储中清除游戏吗?

  2. 如果在下载过程中强行关闭应用程序,重新打开应用程序时是否会重新开始下载?

非常感谢您的帮助。非常感谢。

问候

0 投票
1 回答
79 浏览

ios - Apples On Demand 资源存储

我已经获得了用于下载按需资源的代码正常工作,并且我可以获得文件当前存储并可以访问的路径。我的问题是,如果我将文件移动到另一个位置,该文​​件以后会像往常一样被删除,还是只删除默认文件夹中的文件?通过查看文档,我真的找不到这个问题的答案。任何帮助将不胜感激。提前致谢

0 投票
0 回答
500 浏览

ios - ODR 异常“NSBundleResourceRequest 无法连接到它的辅助守护程序”

我在我的市场内应用程序中遇到随机崩溃,我认为这是由 ODR 引起的。而且看起来我不是唯一遇到它的人,我发现了这个雷达和这个线程,但他们似乎都没有解决这个问题。我希望这里有人遇到了这个问题并找到了解决方法,或者重现步骤也会有帮助,因为我无法重现它

堆栈跟踪

0 投票
0 回答
81 浏览

ios - 防止新提交的按需资源覆盖旧版本 iOS

我正在使用 iOS ODR 将各种内容分发到我的应用程序。我遇到了一个问题,如果我对这些资产包进行调整并发布对我的应用程序的更新,则旧版本的应用程序也会下载这些新的资产包,但旧版本的应用程序不会旨在与他们一起工作,因此会出错。

对于一些背景故事:我正在使用 ODR 将 Unity 场景作为资产包分发。因为 iOS 是提前编译的,所以我必须在下载的应用程序中包含一个基本的 Unity 场景,这样当我加载其中一个资产包时,它就已经在应用程序中包含了所有必要的脚本。问题是,如果我在其中一个场景中更改脚本,我需要重新构建统一项目并将其嵌入到 iOS 项目中,并使用新的资产包重新提交到应用商店。问题是在我对其中一个脚本进行更改后,新的资产包可能无法在不包含该脚本更改的旧版本的应用程序上运行。

有没有办法可以保留资产包的版本并让我的应用程序的不同版本下载其相应的资产包?

谢谢!

0 投票
1 回答
392 浏览

javascript - 通过 Javascript 下载 Apple 托管的按需标记资源

我正在挖掘有关按需资源的Apple 文档,但找不到此信息。

是否可以通过 Javascript 从 WKWebView 获取按需资源(例如图像、Javascript 包)?

我的意图是在 Apple 服务器上发布一些(大型)HTML+JS 游戏作为按需标记的资源,然后通过 Javascript XHR 调用或通过 Cordova/Phonegap/Ionic 插件获取它们。

这样:

  1. 我们不会影响包括所有游戏在内的应用程序最终捆绑包大小

  2. 苹果将​​能够审查这些游戏(因为它不是外部“注入代码”——这违反了他们的指导方针)。


在我的具体情况下,我会使用 Cordova 插件cordova-plugin-filetransfer下载标记的按需资源,并使用 cordova-plugin-file将下载的游戏加载并显示到 webview 中。


由于业务限制,这是我们需要实现的。可行吗?

0 投票
1 回答
803 浏览

ios - Unity - 按需资源 IOS 13.4

按照这个统一教程:https ://docs.unity3d.com/Manual/AppThinning.html

我们正在尝试使用应用程序的按需资源来满足苹果商店的 200mb 限制。

  • 资产被标记为资产包

  • 资产包已构建

  • 按需资源已启用

  • xcode on demand 资源已启用

  • appleconnect 列出了一个资产包

  • testflight 应用可在我们的测试手机上运行(已在此手机上测试了多个版本)

  • ODR 在苹果端无法提交审查错误:按需资源请求失败:请求的应用程序数据不存在

我们测试的当前 iOS 是 12.3。Xcode 版本 11.4。Unity 版本 2019.2.17

测试 iphone 是否有可能缓存了捆绑包,因此不会遇到此错误。在每次测试之前,之前的构建都会被删除。

从错误看来,捆绑包没有被托管。测试手机会同时更新到13.4,但是好像少了一个重要的步骤。

我们已经在互联网上搜索了几个星期,但没有任何结果,所以如果有人有信息,将不胜感激。

0 投票
3 回答
1067 浏览

cordova - 在 iframe 中显示位于 www 文件夹之外的 html 文件——在 InAppBrowser 中工作或解析文本

我设法使用我构建的自定义插件将一些按需资源下载到我的 Cordova 应用程序中。

我现在需要做的是将它们加载到我的应用程序的 iframe 中。这可能吗??

如果它们位于(叹息,只读)www 文件夹中,我可以简单地指向${cordova.file.applicationDirectory}/www/game.html
...但是将它们放在 Library 文件夹中(例如,参见下面的路径)有没有办法在 iframe 中显示它们?
('/var/mobile/Library/OnDemandResources/AssetPacks/2F2887A0-7B16-4S5D-83C2-1C588A69DA80/15533301173473852725/com.us-company.sports-beta-enterprise.asset-pack-5a105e8b9d10e3329780d62ea2226)


到目前为止,我设法显示它们的唯一方法是:

1. InAppBrowser使用cdvfile://localhost路径(见下文)--> 但我想避免这种情况
(cdvfile://localhost/root/Users/user/库/开发者/CoreSimulator/设备/D016D3BC-E9F9-43F2-8EC1-9A471819A9B5/data/Library/OnDemandResources/AssetPacks/11129225-E96A-4BEC-9051-735912378DB0/15538308173473832725/com.us-company-us-company- enterprise.asset-pack-5a105e8b9d40e1329780d62ea2265d8a.assetpack/flying-block-game.html) 2. 自己使用document.createRange + createContextualFragment

解析 html 文本--> 对于非平凡的游戏来说管理起来很复杂。

任何帮助在应用程序本身的 iframe 中显示此内容,以便所有请求都通过 Ionic 引擎并拥有我自己的iosapp://自定义方案而不是cdvfile://localhost(这可能会导致 CORS 阻止程序)?

或者,它是否可以为提供这些 ODR 下载文件的本地网络服务器使用不同的插件?

                                                                                                Github问题

0 投票
1 回答
355 浏览

ios - 从终端添加按需资源

我目前能够在我的 iOS 应用程序中使用按需资源,但我必须执行一系列手动步骤:

  • 在 XCode 中手动添加 ODR 资源
  • 在 XCode 中手动标记它们
  • 存档应用程序以生成将提交给 Apple 的捆绑包,并将它们临时推送到我们用来测试非产品应用程序的 ODR 的网络服务器上。


是否有一些我可以使用的命令行实用程序?

这些步骤中的任何一个都可以实现自动化吗?是否有一些我可以使用的命令行实用程序?


就我而言,我使用的是 Cordova,所以到目前为止,我发现了这个(仍然)开放 PR:https ://github.com/apache/cordova-node-xcode/pull/87

0 投票
1 回答
443 浏览

ios - iOS On Demand 资源下载正常 - 但在我需要使用它们时,应用程序无法在主包中找到它们

我已经浏览了文档和所有与 iOS 中的按需资产相关的 SO 问题,但找不到答案,因此希望您能提供帮助。我有一个能够很好地访问文件的应用程序(特别是位于名为“GameVideos”的组/文件夹中的视频 mp4 文件)。我用来执行此操作的代码是:

现在我已经切换到制作“点播”视频,我看到打印了“未找到”消息。当它没有被列为按需资源时,我不需要引用子目录 - 没有它它工作得很好(尽管我尝试添加它只是为了查看)。我也很高兴我没有拼错文件名,因为它也很好用。

创建 On Demand 资源时 - 我已使用标签进行设置并使用以下代码调用资源(此代码位于 GameViewController.swift 和“viewDidLoad”覆盖内 - 我正在构建一个 SpriteKit 游戏所以只有一个视图控制器 - 所有其他逻辑都在 SKScenes 中处理。):

这段代码似乎可以工作,我可以在 Xcode 的磁盘监视器中看到 On Demand 包正在成功下载。

我尝试过的其他事情:我已经仔细检查了视频的目标成员资格,并且分配正确。
我尝试使用列出的文件夹的子目录调用 Bundle.Main.url(这也不起作用)我尝试重命名文件夹目录(因为它的名称中有空格)我尝试清理多次建造

以上都没有奏效......我做错了什么?任何猜测或指示将不胜感激。

0 投票
1 回答
126 浏览

ios - AppStore 与 TestFlight 的按需资源下载速度

我正在我的应用程序中实现 Apple 的按需资源,并使用 TestFlight 对其进行测试。如果使用 App Store 托管环境时的下载速度高于 TestFlight 环境,是否有人可以回答?使用 WiFi 或高速蜂窝连接下载 20-40 MB 的文件需要 3-4 分钟,速度非常慢......提前致谢!