如何解决ImageAssist编译时间?

时间:2014-02-27 17:55:43

标签: xcode5 xcode5.0.1

描述图像集“BG_Email_Textfield.imageset”的Contents.json必须以顶级词典开头。

我们如何解决这个问题?

5 个答案:

答案 0 :(得分:5)

这种情况经常发生在合并冲突时,您可以在Finder中打开YourImageName.imageset文件夹并编辑Contents.json,删除代码冲突。

就我而言,我合并了这样的冲突文件:

{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "BodySelfieTabbarItem@2x.png"
    }
  ],
  "info" : {
    "version" : 1,
<<<<<<< HEAD
    "author" : "xcode",
    "template-rendering-intent" : "original"
=======
    "author" : "xcode"
>>>>>>> f15823d967d53508370cfcbd708e15ee2fad328e
  }
}

删除代码冲突后如下:

{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "BodySelfieTabbarItem@2x.png"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode",
    "template-rendering-intent" : "original"
  }
}

答案 1 :(得分:0)

如果您使用Xcode将单个图像作为图像集添加到项目中,Xcode会创建一个包含两个文件的子目录 - 图像和Contents.json文件。 你可以在Finder中看到这个。在Xcode项目目录中打开Images.xcassets。 例如,Images.xcassets可以有一个子目录myImage.imageset with myImage.png和一个类似于

的Contents.json
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "myImage.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

您可以为2x分辨率指定另一张图像。 如果您的项目不包含与此类似的目录和Contents.json文件,则最简单的方法是使用Xcode添加图像集。 在Xcode项目导航器中,如果选择Images.xcassets,则会在底部显示一个带有“+”的窗格,以“添加组或图像集”。

参考
https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/AddingImageSets/AddingImageSets.html
https://www.iphonelife.com/blog/31369/unleash-your-inner-app-developer-managing-images-xcode-5-asset-catalogs

答案 2 :(得分:0)

我删除Images.xcassets中的所有内容,然后在xcode中选择不使用资产目录。

答案 3 :(得分:0)

有点晚了是的,但是我刚刚遇到这个问题并且认为对于OP或下一个具有相同问题的读者来说它可能仍然有用。

Vincent的答案绝对是一个解决方案,假设OP确实使用版本控制并且存在合并冲突。 OP没有建议。

lbsweek的回答并不是真正的解决方案,如果资产目录是唯一的选择,而且还要遵循可怕的“你为什么这样做呢......”这样做而不是&#39;范例

所以我将扩展beepscore的内容。虽然beepscore的答案解释了Contents.json文件是什么以及它与添加到目录中的图像有什么关系,但它没有解释可能导致OP描​​述的问题的原因,也没有解释如何解决它。

当无法解析Contents.json文件时,很可能会显示此错误。这可能是由于一些显而易见的事情,例如文档中描述的合并冲突字符放在文件中,或者它可能是更微妙的东西,例如编码问题(有趣的隐形字符等)。

解决此问题的一种方法是在finder中备份.xcassets文件夹,让Xcode通过IDE生成它,然后使用备份版本作为指南修改生成的Contents.json文件

答案 4 :(得分:0)

对我来说,事实证明Mac OS TextEdit使用智能双引号而不是常规双引号,并且在我手动编辑后,XCode无法解析Constents.json文件。所以我在Mac OS设置 - &gt;键盘 - &gt;文本取消选中&#34;使用智能引号和破折号&#34;在&#34;对于Double Quotes&#34; options选择与XCode期望的匹配的适当双引号。对我而言,这是最底层的选择。