【iOS12】WCErrorCodeFileAccessDeniedと出た時の対処法

2019年8月29日

watchOSからiOSへWatchConnectivityを使ってファイルを送信しようとした時に以下のようなエラーがでました。

[WC] -[WCSession notifyOfFileError:withFileTransfer:] ~~~~~ with WCErrorCodeFileAccessDenied

iPhone側からwatchのファイルにアクセスができないというエラーのようです。
今回はこちらのエラーの対処法を紹介します。

WCErrorCodeFileAccessDeniedと出た時の対処法

1. App Groupsを使えるように設定する

WatchConnectivityを使ってiPhone側からwatch側にあるファイルにアクセスするには、ファイルをwatchのAppGroupディレクトリ以下に配置する必要があります。

まずはAppIDにAppGroupsを追加しましょう。

AppGroups名は

group.バンドルID

となるが一般てきです。

バンドルIDがcom.example.AppNameの場合

group.com.example.AppName

となります。

最後にAppIDにAppGroupsの設定を追加したらプロビジョニングの更新も忘れずにしましょう。

AppIDとプロビジョニングを更新できたら、TAGETもAppGroupsに対応させます。

TARGETS > Capabilites > App Groups > ON

に変更します。

次に先ほど作成した group.com.example.AppName というAppGroups名があるのでチェックを入れます。

以上でAppGroupsを使えるようにする設定は終わりです。

2. AppGroupsのディレクトリ以下にファイルを設置する

Swift5

Objective-C