2014-02-27 15 views

回答

3

這經常發生在合併衝突時,可以在Finder中打開YourImageName.imageset文件夾並編輯Contents.json,刪除代碼衝突。

就我而言,我合併衝突的文件是這樣的:

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

移除代碼衝突,這樣的後:

{ 
    "images" : [ 
    { 
     "idiom" : "universal", 
     "scale" : "1x" 
    }, 
    { 
     "idiom" : "universal", 
     "scale" : "2x", 
     "filename" : "[email protected]" 
    } 
    ], 
    "info" : { 
    "version" : 1, 
    "author" : "xcode", 
    "template-rendering-intent" : "original" 
    } 
} 
0

如果您使用Xcode將一個圖像作爲圖像集添加到項目中,則Xcode會創建一個包含兩個文件的子目錄 - 圖像和Contents.json文件。 你可以在Finder中看到這個。在您的Xcode項目目錄中打開Images.xcassets。 例如Images.xcassets可能有myImage.png和Contents.json類似的子目錄myImage.imageset到

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

可以爲2倍分辨率指定其他圖像。 如果您的項目不包含與此類似的目錄和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

0

我刪除Images.xcassets所有內容,然後在Xcode選擇不使用資產目錄。

0

有點晚了,是的,但我只是碰到了這個問題,認爲它可能對OP或下一個具有相同問題的讀者有一定的用處。

文森特的答案絕對是一種解決方案,假設OP確實使用版本控制並且存在合併衝突。 OP沒有提出建議。

如果資產目錄是唯一的選擇,並且遵循令人畏懼的'爲什麼你要這樣做......這樣做'而不是'範式',lbsweek的答案並不是一個真正的解決方案。

因此,我將擴大beepscore所說的內容。雖然beepscore的答案解釋了文件是什麼以及它如何與添加到目錄中的圖像相關,但它沒有解釋可能導致OP描​​述的問題的原因,也沒有解釋如何解決該問題。

當無法解析文件Contents.json時,很可能會顯示此錯誤。這可能是由於某些明顯的問題,比如文森特描述的合併衝突字符被放置在文件內部,或者它可能更加微妙,比如編碼問題(有趣的不可見字符等)。

解決此問題的一種方法是在finder中備份.xcassets文件夾,讓Xcode通過IDE生成它,然後使用備份版本作爲指導修改生成的Contents.json文件。

0

對於我來說,原來,的Mac OS文本編輯使用智能雙引號,而不是常規的雙引號的XCode無法解析Constents.json文件I手動編輯後。所以我在Mac OS設置 - >鍵盤 - >文本下取消選中「使用智能引號和破折號」,並在「雙引號」選項中選擇與XCode預期相符的適當雙引號。對我而言,這是最底層的選擇。

1

當你轉到「xcassets」那裏你的圖像是無符號的。製作新的圖像集並將圖像分配給該圖像並刪除未簽名的圖像集。我希望你的問題得到解決。