【问题标题】:IAP - Hosted Content - Asset Catalog Compiler Error - The output directory ".../.../..." does not exitsIAP - 托管内容 - 资产目录编译器错误 - 输出目录“.../.../...”不存在
【发布时间】:2014-12-19 10:19:07
【问题描述】:

我有一个大小超过 50MB 的应用程序。它充满了图像集。由于该应用程序具有 IAP,我想按需下载图像集(当用户购买一个图像集时)。为了做到这一点,我正在尝试使用苹果的托管内容选项。

我创建了一个具有正确名称/捆绑 ID 的新项目,并在 iTunes conect 中配置了所有内容。为了交付这些 IAP 图像集,我为每个 IAP 产品使用了一个资产目录。 但是,当我想归档产品时,Xcode 会给我以下消息:

/Users/MyCompany/Desktop/Programming projects/Tutorials/Vegetables1/Vegetables1/Media.xcassets: 输出目录 "/Users/MyCompany/Library/Developer/Xcode/DerivedData/Vegetables1-dzbpbuiozhaliyezacnqehsgubdt/Build/Intermediates/ArchiveIntermediates/Vegetables1/InstallationBuildProductsLocation/Library/InAppPurchaseContent/Vegetables1/Contents" 确实不存在

Media.xcassets 是空的...我没有添加任何图片。无论我做什么,它都会一直给我这个错误。

Media.xcasset 已正确添加到 Copy Bundle Resources 中,并且可以通过 Finder 看到。

我可以在没有资产目录的情况下手动添加所有图像。我认为这不是一个好方法,但如果它不起作用,我将别无选择。

【问题讨论】:

    标签: in-app-purchase xcode6.1 ios8.1 asset-catalog iap-hosted-content


    【解决方案1】:

    只有在 Copy Bundle Resources 下列出的文件不是图像 xcasset 时,您才能执行此操作。

    对我来说,因为我的 IAP 包中也有音乐,所以我必须简单地将音乐添加到包中以使其正确构建。尝试使用空白文件或其他项目,以便您可以包含在 IAP 中,这些项目不一定需要但可以包含在 Xcode 中的 IAP 中。

    【讨论】:

    • 到目前为止,我根据@stewjacks 和您的解决方案阅读的内容无法在应用程序包之外使用 .xassets 以及在我的情况下使用。我认为你们俩都是对的。我会测试它=)。
    • 我目前也在做同样的事情。我已经托管了它,只是试图实现代码。下载并安装 .pkg
    • 我在尝试使用带有 FinderSync 扩展的资产目录时遇到了这个问题。你是对的,@ErikBean,只有在 Copy Bundle Resources 中有另一个文件时才能这样做。我添加了一个空文件,编译错误消失了。谢谢!!
    • 很高兴能帮上忙! :) 请记住将我的答案标记为正确。我目前正在尝试找到一种有效的方法来解压苹果托管的包-.-'如果你看到了方法,请告诉我。
    【解决方案2】:

    资产目录是捆绑包中的资源,因此您无法在运行时修改或添加它们。您也不能引用在编译时不可用的资源。您必须预先打包所有 IAP 并通过购买解锁它们(如果您愿意,可以使用资产目录),或者以不同的格式(可能是带有原始图像和字典的 zip)打包您的 IAP 内容,以便您可以阅读它们来自包外的本地目录。

    【讨论】:

    • 我也遇到了同样的问题。我是否仅限于将它包含在带有图像 xcassets 文件的应用程序中,还是有办法设置 IAP 供 Apple 托管,以便它托管(并基本上下载).xassets?
    • ST1 - “资产目录是你的包中的资源,所以你不能在运行时修改或添加它们” - 这个语句意味着资产目录不能在运行时使用(通过可下载的内容) ? ST2 - “您也不能引用在编译时不可用的资源” - “引用资源”是什么意思?对我来说,这意味着我无法运行需要不可用资源的代码,但只要我不运行它就可以编写它(这会导致崩溃)。我会在更新 Xcode 后立即对其进行测试 :)
    • 1.您无法修改与主应用程序捆绑的资产目录永远,因为您无法在运行时修改应用程序包中的任何内容。它是预编译的。您实际上正在做的是将包中的内容(在磁盘上)加载到内存中并对其进行修改。 2. 您不能在您的主应用程序中,从在编译时不可用的应用程序内购买中引用资产目录。
    • 您要做的是将您的内容放入 IAP,在下载时将其从缓存复制到磁盘上的某个保存文档目录,然后使用UIImage(contentsOfFile: *path*) 读取图像。我认为您首先可以将它们添加到您的 IAP 的原因是因为 Mac App Store IAP 使用与 iOS IAP 相同的模板,并且您几乎可以肯定地将资产目录放在 Mac App Store 的 IAP 中。
    猜你喜欢
    • 2013-12-27
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2014-12-19
    相关资源
    最近更新 更多