0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UIDocumentBrowserViewControllerがiOS13シミュレータでろくすっぽ動かない問題

Posted at

起こった問題

Simulator Screen Shot - iPhone Xs Max - 2019-09-26 at 14.11.41.png

UIDocumentBrowserViewController、みなさん使ってますか?
使ってるわけないですよね。私は使ってます。

iCloudにファイル保存しようと思ったら、UIDocumentBrowserViewControllerを使うのが圧倒的に簡単なんです。とはいえ、マルチプラットフォームでアプリ開発しようと思うと、iCloudって微妙ですよね。だから人気がないんだと思います。だけど、Apple信者には関係のない話です。

さて、私の作っている小説エディタ「おめめライター」では、UIDocumentBrowserViewControllerでプレーンテキストファイルを取り扱っています。テキストファイルを新規作成するのには、以下のようなコードを書いてます。

    func documentBrowser(_ controller: UIDocumentBrowserViewController, didRequestDocumentCreationWithHandler importHandler: @escaping (URL?, UIDocumentBrowserViewController.ImportMode) -> Void) {
        if let url = Bundle.main.url(forResource: "File", withExtension: "txt") {
            importHandler(url, .copy)
        } else {
            importHandler(nil, .none)
        }
    }

バンドルファイルのFile.txtという空テキストファイルをテンプレートにして、それをユーザが指定した場所にコピーするわけですね。

iOS13がリリースされたので、さっそくXCode11をインストールしてダークモード対応をしようと思ったのですが、シミュレータを立ち上げて新規ファイルを追加しようとしたところ、ウンともスンとも言わなくなってしまったのです。そして、以下のようなエラーが。

...
error Error Domain=NSPOSIXErrorDomain Code=22 "couldn't issue sandbox extension com.apple.app-sandbox.read for ...

NSPOSIXErrorDomain Code=22ってなんでしょう?

そんな大層なことをしているわけでもないのに、なぜこんなエラーが出るのかわかりません。というか、ファイルが追加できないなんてエディタとして終わってます。
慌てて実機で動かしてみると、iOS13でも問題なく動きます。

これは何かシミュレータの問題なんだろうなと思って調べたら、以下のような記事を見つけました。

UIDocumentBrowserViewController error “Cannot create urlWrapper for url” on iOS13 simulator

I have a very strange problem with UIDocumentBrowserViewController when testing on iOS 13. The importHandler(newDocumentURL, .move) seems to crash without any reason

I've verified that the bug exists with Xcode 11.1 GM running on Mac OS Mojave.

Mojaveで動かすXCode11.1GMにバグがあるみたいです。
私の環境はXCode11.0 (11A420a)なんですが、まったく同じ現象が起きてますね。

というか、UIDocumentBrowserViewControllerを使っている人って私以外にもいたんですね。世界は広い。

#解決策

当面はCatalinaのベータを使うくらいしかないみたいです。
ていうか今投稿しようとしたらUIDocumentBrowserViewControllerのタグは長すぎるって言われたわ。

さあ、みんなも使おう、UIDocumentBrowserViewController!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?