Reconociendo packages de files iOS (en Simulator y Finder)

Estoy intentando usar packages de files para que una aplicación de iOS defina un tipo de UTI. Después de search en Google y ver las inputs en Xcode.plist, probé algunas cosas, pero seguí encontrando problemas. Mi aplicación crea algunos documentos de testing y luego intenta leerlos con mi UTI personalizada.

Si no especifica "LSItemContentTypes", entonces el buscador los ve correctamente como packages. Pero luego mdls devuelve "dyn.longstring" como kMDItemContentType.

Si especifica "LSItemContentTypes", entonces el kMDItemContentType es correcto. Pero el buscador lo ve como una carpeta.

En ambos casos, la UTI que recibo vía

[url getResourceValue:&UTI forKey:NSURLTypeIdentifierKey error:nil]; 

Es incorrecto. Devuelve "dyn.longstring" o "public.folder". Mi aplicación no carga estos files debido a la UTI incorrecta. Podría reescribir esto pero quiero hacerlo de la manera correcta con las UTI.

Definí un package de files iOS como tipo de documento y tipo de UTI exportado como se puede ver a continuación. ¿Qué estoy pasando por alto?

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>CFBundleTypeExtensions</key> <array> <string>tdp</string> </array> <key>CFBundleTypeName</key> <string>MyFilePackage</string> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSItemContentTypes</key> <array> <string>reverse.dns.ios.package</string> </array> <key>CFBundleTypeIconFile</key> <string>Default</string> <key>LSIsAppleDefaultForType</key> <true/> <key>LSTypeIsPackage</key> <true/> </dict> </array> </plist> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>UTTypeTagSpecification</key> <dict> <key>public.filename.extension</key> <array> <string>tdp</string> </array> </dict> <key>UTTypeIdentifier</key> <string>reverse.dns.ios.package</string> <key>UTTypeConformsTo</key> <array> <string>com.apple.package</string> <string>public.composite-content</string> </array> </dict> </array> </plist> 

Intereting Posts