Xcode 和 iOS9 的 "Asset packs must be in /OnDemandResources" 错误

Xcode and iOS9's "Asset packs must be in /OnDemandResources" error

我更新到 iOS 9 GM 和 Xcode 7 GM,并且正在提交我的游戏更新。

但是,验证过程现在出现 "Asset packs must be in /OnDemandResources." 错误。

这是日志

2015-09-14 18:50:52 +0000 [MT] Failed to generate distribution items with error: Error Domain=IDEFoundationErrorDomain Code=1 "Unexpected asset pack at /Applications/churningseas.app/AssetPacks/Dropbox.assetpack. Asset packs must be in /OnDemandResources." UserInfo={NSLocalizedDescription=Unexpected asset pack at /Applications/churningseas.app/AssetPacks/Dropbox.assetpack. Asset packs must be in /OnDemandResources.}

2015-09-14 18:50:52 +0000 [MT] Presenting: Error Domain=IDEFoundationErrorDomain Code=1 "Unexpected asset pack at /Applications/churningseas.app/AssetPacks/Dropbox.assetpack. Asset packs must be in /OnDemandResources." UserInfo={NSLocalizedDescription=Unexpected asset pack at /Applications/churningseas.app/AssetPacks/Dropbox.assetpack. Asset packs must be in /OnDemandResources.}

这里是我的 Xcode 目录,显示资产包目前在 Ressources 下(我对模糊有点疯狂,对此感到抱歉):

我猜这是由于 Apple 的新 "app thinning" 系统,我现在不是特别想使用它进行小更新。

有没有办法禁用点播资源?如果没有,如何解决这个问题(我是否只需要将我的 "Assetpacks" 文件夹移动到另一个名为 "OnDemandResources" 的文件夹)?我是,在哪里?我有点紧张弄乱了我的文件结构...

此外,我已经查看了构建设置的资产部分,并且 "Enable on-demand resources" 已经设置为 "no"

感谢任何帮助。非常感谢!

我花了一些时间才弄明白这一点,但我似乎得到了一些有用的东西。存档构建后,如果转到 XCode 的首选项并单击选项卡位置,您将找到存档保存文件的位置。如果您随后单击“档案”部分正下方的 link,它将带您进入一个包含档案的文件夹(您打开该文件夹)。导航到您存档构建的日期,然后(使用获取信息来确定时间)找到您的构建。右键单击它,然后单击 "Show Package Contents"。然后点击产品。创建一个名为 "OnDemandResources" 的新文件夹。单击“应用程序”并右键单击该文件并打开包内容。根据您的资产以前的位置,它们将在那里的某个地方,但对我而言,它们位于一个名为 Assets 的方便文件夹中。找到包含资产的文件夹后,您需要复制并删除它。在我们之前创建的 OnDemandResources 文件夹中,创建一个名为您的包标识符的新文件夹 (com.-----.-----) 并添加到它的末尾:.New.assetpack .然后将您的 AssetPacks(或资产)文件粘贴到里面。现在你新建一个文本编辑文件,设置为纯文本,然后输入:bplist00“TTags_CFBundleIdentifier°SNew_?com.Identifier.Identifier.asset-pack-00000008CM2Z9 ')-o 这就是它对我的说法,我不知道它是否适合你,但我不明白为什么不。 这种方法对我有用,现在我有一个可以工作的 .ipa 文件。希望对你有用!

自从 iOS9 引入按需资源以来,这似乎已成为一个问题。文件夹引用中的术语 "AssetPacks" 或 "assetpack" 在尝试验证存档时会导致错误。

因为这似乎会影响 Codea 导出的 2.3.1 及更早版本的项目。这是专门针对 Codea 导出项目的修复:

  • 在导出项目的根目录中找到名为 libversion 的文件。它将包含一个版本号,很可能是 2.3.1。将其更改为 2.3.2
  • 从您的 Libs/ 文件夹中删除 libcodea.alibtools.a
  • 从导出的 Xcode 项目中的 "Resources" 组中删除 "AssetPacks" 文件夹引用 — 如果 Xcode 要求您将文件移至垃圾箱,请说不。
  • 在 Finder 中:将 "AssetPacks" 文件夹重命名为 "Assets"
  • 在 Finder 中:将其中的每个 "SomePack.assetpack" 文件夹重命名为 "SomePack.assets"
  • 将根级别 "Assets" 文件夹拖回 Xcode,告诉 Xcode 将其添加为 "Folder Reference"(不是 "Group")

这里有更深入的讨论https://bitbucket.org/TwoLivesLeft/core/issues/366/trying-to-export-xcode-file-so-i-can#comment-22075482