actool --print-contents fails for some asset types

Originator:david.jennes
Number:rdar://29574730 Date Originated:
Status:Open Resolved:
Product:Developer Tools Product Version:Xcode Version 8.1 (8B62) macOS Version 10.12.1 (16B2555)
Classification: Reproducible:
 
Summary:
When using the "actool --print-contents" command to print the contents of a catalog, it completely fails for some asset types, either crashing or simply not outputting anything. 

I've found that it fails for these asset types:
- Texture set
- Cube Texture set
- tvOS App icon and top shelf image
- Watch Complication

Steps to Reproduce:
xcrun actool --print-contents PATH_TO_CATALOG

Expected Results:
A Plist describing the contents of the asset catalog.

Actual Results:
No output, or the following crash:

2016-12-08 13:11:13.158 ibtoold[54364:27141199] [MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-11542/Foundation/Utilities/IBFoundationAdditions.m:199
Details:  +[IBICSlot orderedComponentClasses] is expected to override abstract method from base class.
Function: void IBAbstractMethodHelper(__strong id, SEL)
Thread:   <NSThread: 0x7ffeb7d18750>{number = 1, name = main}
Hints: None
Backtrace:
  0   -[DVTAssertionHandler handleFailureInFunction:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3   IBAbstractMethodHelper (in IBFoundation)
  4   +[IBICSlot orderedComponentClasses] (in IBFoundation)
  5   -[IBICSlottedAssetCollection(DisplayAdditions) populatePlistWithDescriptionForIctool:forChild:] (in IDEInterfaceBuilderKit)
  6   -[IBICAbstractCatalogItem(DisplayAdditions) plistDescriptionForIctool] (in IDEInterfaceBuilderKit)
  7   -[IBICAbstractCatalogItem(DisplayAdditions) plistDescriptionForIctool] (in IDEInterfaceBuilderKit)
  8   -[IBICAbstractCatalogItem(DisplayAdditions) plistDescriptionForIctool] (in IDEInterfaceBuilderKit)
  9  0x00000001061b59e3 (in ibtoold)
 10  0x00000001061b664e (in ibtoold)
 11  0x00000001061b6c9f (in ibtoold)
 12  0x00000001061c53f0 (in ibtoold)
 13  0x00000001061c5a91 (in ibtoold)
 14  0x00000001061c5964 (in ibtoold)
 15  0x00000001061b3c2b (in ibtoold)
 16  0x00000001061c4feb (in ibtoold)
 17  0x00000001061c40a2 (in ibtoold)
 18   start (in libdyld.dylib)

Version:
Xcode Version 8.1 (8B62)
macOS Version 10.12.1 (16B2555)

Notes:
Also tried with Xcode Version 8.2b2, still fails.

Configuration:
If a catalog does not contain a failing type (mentioned above), it works.
If a catalog contains a combination of failing and functioning types (mentioned above), it fails.


Attachments:
'Working catalog.zip' and 'Crashing catalog.zip' were successfully uploaded.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!