Using the document picker

  1. SDK Version: 34
  2. Platforms(Android/iOS/web/all): iOS

Hello,

I can’t seem to get the document picker to work. I’ve set

{
  "expo": {
   //
    "ios": {
      //
      "usesIcloudStorage": true,
    },

in my app.json but in the Expo app I still get

[Unhandled promise rejection: Error: DocumentPicker requires the iCloud entitlement. If you are using ExpoKit, you need to add this capability to your App Id. See https://docs.expo.io/versions/latest/expokit/advanced-expokit-topics#using-documentpicker for more info.]

I haven’t yet tried building the app to see if it works in the completed one, but I would expect it to work in the expo client, no?

Have I missed something?

I would also like to know the answer to this.

It is my understanding iOS 13 requires the iCloud entitlement whereas iOS 12 did not. My testing confirms this.

What is not clear is if this applies to the Expo client in addition to standalone and ExpoKit projects.

Given that it does not work in the Expo client on iOS 13 I take it this requirement applies to the Expo client as well, though there is no mention of it in the Expo docs:

https://docs.expo.io/versions/v36.0.0/sdk/document-picker/

On iOS, for standalone apps and ExpoKit projects, the DocumentPicker module requires the iCloud entitlement to work properly. You need to set the usesIcloudStorage key to true in your app.json file as specified here.

In addition, you’ll also need to enable the iCloud Application Service in your App identifier. This can be done in the detail of your App ID in the Apple developer interface.

Enable iCloud service with CloudKit support, create one iCloud Container, and name it iCloud.<your_bundle_identifier> .

Does this mean we must enroll in the Apple Developer Program to test the DocumentPicker in the Expo client on iOS 13?

I assume like me, many others are using the Expo client to develop before building a standalone app. I was hoping to delay enrollment in the Apple Developer Program until my app is feature complete but if this is a hurdle I must jump I wish it were stated so explicitly in the Expo docs.

Please let me know if I’m mistaken.

In the end I just needed to use the latest DocumentPicker package, and it works fine.
I did also have to set up the iCloud service entitlement in itunesconnect for the live app

By itunesconnect do you mean the Apple Developer Program?

I’m on sdk 36 and expo-document-picker 8.0.0 (latest version).

I don’t yet have an Apple Developer account.

Yeah, if you’re publishing to the apple store you need an apple developer account. You should be able to use the document picker in Expo client though

I can open the DocumentPicker but the files are grayed out and I cannot pick them which makes me wonder if something else is wrong.

Post a cut-down snack of your issue

Huh, turns out my problem was the Simulator. Works on device.