certain file extensions cause Google Drive files viewed with UIDocumentPickerViewController are always disabled

Originator:mmorton
Number:rdar://24187873 Date Originated:14-Jan-2016
Status:Open Resolved:
Product:iOS SDK Product Version:
Classification:Serious Bug Reproducible:Always
 
Title:
certain file extensions cause Google Drive files viewed with UIDocumentPickerViewController are always disabled

Description:
From both our real app and a testbed app, certain files appear disabled when picking from Google Drive. We suspect this is a problem in Google Drive, but have had no response to a posting for the Drive team <http://stackoverflow.com/questions/34744770/certain-file-extensions-always-appear-disabled-viewing-google-drive-through-ios> and hope it’s appropriate to file this with Apple.

We believe the disabling is solely a function of the extension — for example, the CAD extensions iges, sldprt, or stl all cause the file to be disabled, no matter what the content.

Other extensions, including popular CAD extensions (sat, x_t, step) do not show this problem.

Steps to Reproduce:
* Install Google Drive on your device and sign in
* Create empty files on Drive (or non-empty — we see the problem either way). Name them x.iges, x.sldprt, x.stl, x.sat, x.x_t, x.step.
* Build and run the enclosed app on an iPad
* From the document menu, tap Google Drive
• Tap your account
• Scroll through files if needed

Expected Results:
All x.* files are enabled

Actual Results:
x.iges, x.sldprt, and x.stl are disabled

Configuration:
iPad Air (A1475). Wifi.

Version & Build
iOS 9.1 (13B143)

We also see this bug running our production app (Onshape v1.40.6820) on an iPad Pro running iOS 9.2 We haven’t tried the enclosed testbed app on that device.

Additional Notes
We don’t think that using kUTTypeItem is the problem. We’ve also tried the code below to explicitly OK the three troublesome extensions and to try other broad categories of UTI:

    NSString *c1 = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)@"sldprt", NULL);
    NSString *c2 = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)@"iges", NULL);
    NSString *c3 = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)@"stl", NULL);


    NSArray *types = @[(NSString *)kUTTypeData, (NSString *)kUTTypeContent, (NSString *)kUTTypeArchive, (NSString *)kUTTypeText, (NSString *)kUTTypePlainText, (NSString *)kUTTypeXML,
                       (NSString *)kUTTypeJSON, (NSString *)kUTTypeImage, (NSString *)kUTTypeAudiovisualContent, c1, c2, c3];
    UIDocumentMenuViewController *importMenu =
        [[UIDocumentMenuViewController alloc] initWithDocumentTypes:types
                                                             inMode:UIDocumentPickerModeImport];

Comments

It looks like Microsoft OneDrive has the same problem, except that many more extensions get disabled. All the CAD extensions mentions below get disabled. Things like .tiff and .jpg don’t.

DropBox has no such problems that we can find.


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!