Google’s changes to the Google Drive API are forcing me to remove the built-in Google Drive client from Textastic for iOS/iPadOS.

Contents

What happened?

Google made some changes to the Google Drive API scopes and decided to classify some of them as “sensitive” or “restricted”.

Textastic includes file transfer clients for (S)FTP, Dropbox, WebDAV and Google Drive, which enable the uploading and downloading of individual files and whole folder trees, the creation of folders and the deletion of files and folders.

To implement file transfers for Google Drive, Textastic has been using the drive scope since version 6.1, which was released in 2016. This scope gives the app the ability to view and manage all files in a user’s Google Drive account.

The drive scope has been re-classified as “restricted” and Google has started to enforce this change for more apps, including Textastic.

In order to continue using that scope, Google requires me to complete a “CASA Tier 3 security assessment” for Textastic. This assessment is required annually.

“CASA Tier 3 is a comprehensive assessment that tests the application, the application deployment infrastructure and any user data storage location.”

According to Google, the “CASA assessment can take up to 6 weeks depending on how engaged and responsive you are in the whole process”. This assessment is conducted and validated by one of the CASA authorized labs.

The CASA Tiering website estimates that a tier 3 assessment takes 60 lab hours.

I contacted DEKRA, which is one of the labs listed by Google. They told me that the estimated execution time is 10 days, costing €9500.

Obviously, annual costs of this magnitude just to support Google Drive in Textastic are not sustainable - especially considering that there is no additional benefit for my business.

In addition to that, the lab staff would need “access to the development environment (user/password) for the application, access to source code, credentials and architecture documentation, etc.”, which I’m not necessarily comfortable with.

The alternative suggested by Google wouldn’t work

As an alternative, Google wants developers to switch from the drive scope to the drive.file scope. However, this scope would only allow Textastic to create new files and modify files created by Textastic.

It would not allow access to other existing files in Google Drive. So after connecting to a Google Drive account, the file list displayed by Textastic would be empty and the user would not be able to download any existing files.

There is also the “Google Picker API”, which would allow a user to pick individual files from Google Drive to share with an app. This API however is only available as a JavaScript library for web apps, not for mobile apps.

While it might be possible to use the Google Picker API in a web view, it does not allow the user to give Textastic access to folders. As a result it wouldn’t be very useful anyway since the same can be accomplished with the Google Drive app’s file provider and the iOS document picker.

What happens next?

For the reasons mentioned above, I have decided to remove the built-in Google Drive client from Textastic.

Google gave me a deadline of May 6, 2024.

Around that date, there’s going to be an ongoing 100 user limit for Google Drive connections added to Textastic and the Google Drive login will display an unverified app screen.

So even if your Google Drive connection is still working now, I don’t know exactly how long it will continue to work, but I expect it to start failing in May.

In Textastic’s next update, version 10.2, there will be a warning if you try to use or add a Google Drive connection, letting you know that it will eventually stop working. The warning will include a link to this post.

How can I continue to access files in Google Drive?

Please install the official Google Drive app on your iPad or iPhone. It includes a file provider, so you can enable Google Drive as a location in the Files app.

You can find more information in this Apple support article: “Use third-party cloud apps in the Files app”.

After adding Google Drive to the Files app, you can use the “Open…” command in Textastic to open individual files from Google Drive using the document picker.

To upload a file to Google Drive, you can use the share sheet. Alternatively, tap and hold a file in a file list in Textastic and select “Export” from the menu.

Limitations

Unfortunately, the Google Drive file provider doesn’t support opening folders, so the “Add External Folder…” command won’t work for folders in Google Drive.

Also, the “Create External File…” command will result in the error “Couldn’t communicate with a helper application” (com.google.DriveKit error 11) when you try to create an external file in Google Drive.

These are limitations of the Google Drive app’s file provider and part of the reason why I added a built-in Google Drive client to Textastic in the first place.

What are the alternatives to Google Drive?

Textastic supports iCloud Drive sync by storing files in its iCloud location.

There are also clients for Dropbox, SFTP, FTP, and WebDAV.

You can find more information in the manual: Connecting to Remote Servers.

Further Reading

Other developers are in a similar situation: