2015-09-14 54 views
3

我已更新到iOS 9 GM和Xcode 7 GM,并正在向我的游戏提交更新。Xcode和iOS9的“资源包必须在/ OnDemandResources”错误

但是,验证过程现在会出现“资产包必须位于/ OnDemandResources中”。错误。

enter image description here

这里的日志

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的目录,显示了Assetpacks目前正在Ressources(我去一点点疯狂的模糊,我们对此深感抱歉):

enter image description here

我想这是由于苹果新的“应用程序细化”系统,我不是特别喜欢现在就使用它来做一个小小的更新。

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

此外,我确实已经看过构建设置的资产部分,并且“启用按需资源”已被设置为“否”

enter image description here

任何帮助表示赞赏。非常感谢!

回答

2

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

因为这似乎影响Codea导出的项目在版本2.3.1和更低版本。下面是一个针对Codea导出项目的修复程序:

  • 在导出的项目的根目录中找到名为libversion的文件。它将包含一个版本号,最有可能的是2.3.1。将其更改为2.3.2
  • 删除libcodea.alibtools.aLibs/文件夹
  • 删除导出的Xcode项目从“资源”组中的“AssetPacks”文件夹中的参考 - 如果Xcode中要求您将文件移动到回收站说NO。
  • 在Finder:重命名“AssetPacks”文件夹“资产”
  • 在Finder:重命名系统中它的每一个“SomePack.assetpack”文件夹“SomePack.assets”
  • 将根级别“资产”文件夹背到Xcode中,Xcode中说要添加为“文件夹参考”(而不是“集团”)

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

0

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

+0

谢谢雨果,我来试试,明天。我确实希望它能够工作,但每次我们想要提交构建时,我们都必须这样做。 :D任何想法为什么发生这种情况? – Rodolphe

+0

我有几个问题@Hugo Selvesta:应该调用什么文本文件?是否应该将其保存在包ID为的新文件夹中?另外,这可能听起来很愚蠢,但是我怎么从这里得到一个ipa(我在xcarchive文件夹中做了更改,它确实包含一个ipa,但不仅)? 以下是我的文件夹的外观: https://www.dropbox.com/s/fnp1ne3y7svvsn5/Capture%20d%27%C3%A9cran%202015-09-19%2010.08.57.png?dl=0 谢谢! – Rodolphe

相关问题