1

我有一个大小为50MB以上的应用程序。它充满了图像集。由于该应用程序具有IAP,因此我希望按需下载图像集(当用户购买一个图像集时)。为了做到这一点,我正在尝试使用苹果托管的内容选项。IAP - 托管内容 - 资产目录编译器错误 - 输出目录“.../.../...”不存在

我使用正确的名称/软件包ID创建了一个新项目,并在iTunes中配置了所有内容。为了交付这些IAP映像集,我为每个IAP产品使用了一个Asset目录。 然而,当我想archieve产品的Xcode给了我下面的消息:

/用户/ MyCompany的/桌面/编程项目/教程/ Vegetables1/Vegetables1/Media.xcassets: 输出目录“/用户/ MyCompany/Library/Developer/Xcode/DerivedData/Vegetables1-dzbpbuiozhaliyezacnqehsgubdt/Build/Intermediates/ArchiveIntermediates/Vegetables1/InstallationBuildProductsLocation/Library/InAppPurchaseContent/Vegetables1/Contents“does not exist

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

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

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

回答

1

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

+0

我遇到了同样的问题。我仅限于将其包含在带有图像xcassets文件的应用程序中,还是有办法为Apple设置IAP以将其托管,以便托管(并实质上下载).xassets? – 2015-01-05 01:42:00

+0

ST1 - “资产目录是捆绑中的资源,因此无法在运行时修改或添加它们” - 此声明意味着资产目录不能在运行时使用(通过可下载的内容)? ST2 - “您也无法引用在编译时不可用的资源” - 您是指“引用资源”的含义?对我来说,这意味着我不能运行需要资源的代码,但只要我不运行它(这会导致崩溃),我可以编写它。我会在更新Xcode后立即对其进行测试:) – 2015-01-05 08:28:02

+0

1.您无法修改与您的主应用捆绑在一起的资产目录* ever *,因为您无法在运行时修改应用包中的任何内容。它是预编译的。你实际上做的是从软件包(在磁盘上)加载内容到内存中并修改它。 2.在主应用程序中,您不能在应用程序内购买资产目录,而这些资源目录在编译时不可用。 – stewjacks 2015-01-15 19:33:03

2

只有在您的复制包资源下列出的文件不是图像xcasset时才能执行此操作。

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

+0

到目前为止,我根据@stewjacks和您的解决方案阅读的内容,没有办法在应用程序包之外使用.xassets,在我的情况下也是如此。我认为你是对的。我会测试它=)。 – 2015-01-05 08:26:37

+0

我目前正在做同样的事情。我已经托管它,只是试图执行代码。下载并安装.pkg – 2015-01-05 13:15:49

+0

当试图使用带有FinderSync扩展名的资源目录时,我遇到了这个问题。你是对的,@ErikBean,只有在Copy Bundle Resources中有另一个文件时才可以这样做。我添加了一个空文件,编译错误消失了。谢谢!! – nickjwallin 2015-04-06 18:48:40