MacとiPhoneでコピペ共有(ユニバーサルクリップボード)できない!

Blog-Thumbnail_Apple-01 Apple

はじめに

お久しぶりです、KUDs です。

ユニバーサルクリップボード」、使ってますでしょうか。
Handoff を有効にすることで Mac でコピーしたテキストを iPhone でペーストできる(逆も可) という素敵機能です。

この記事を訪れた人は、「元々この機能を使ってたけど、なぜか使えなくなっちゃった」という人でしょう。
さらに言うと、「Handoff の設定が有効になってることは確認済みなんだけどなぁ」という方かなと思います。

Apple Community では再起動やサインアウト等普通の対策では直らなかったケースも実際に報告されてました。

ご安心ください。
今回は、このユニバーサルクリップボード復活の方法を簡単に解説します。
いつもと違って(?)初心者向けなので是非お付き合いください。

対処法 – ユニバーサルクリップボードを復活させる手順

基本設定の確認


まずユニバーサルクリップボードを利用するための基本条件が満たされているか確認しましょう。
そんなの確認済みだよ!と言う方は飛ばしてください。

  • Apple IDの確認:
    • MacとiPhoneの両方で同じApple ID(iCloudアカウント)にサインインしていること
  • 通信機能の確認:
    • 両デバイスでWi-FiとBluetoothがオンになっていること
    • 近くに置き、可能であれば同じWi-Fiネットワークに接続してください
  • Handoff機能の確認:
    • 両デバイスでHandoff機能が有効になっていること(通常デフォルトでオンですが念のため)
    • Mac側
      • Appleメニュー →「システム設定」→「一般」→「AirDropとHandoff」を開き、「このMacとiCloudデバイス間でのHandoffを許可」のチェックが入っているか確認できます
    • iPhone側
      • 「設定」アプリの「一般」→「AirPlayと連係」にHandoffの項目があり、オンになっていることを確認してください

以上の設定が一つでもオフになっている場合、それをオンにするだけで問題が解決する場合もあります。

逆に、これらがすべて満たされているのにコピペ共有ができない場合(本記事のメインターゲットはあなたです)、次の手順に進んでください。

ターミナル(CLI)の起動

次に、問題解決のためMacのターミナル(Terminal) を使用します。
使い慣れた CLI が他にある方はターミナルじゃなくてもいいです。
よくわからない人は Mac 標準アプリのターミナルを起動しましょう。

ターミナル起動手順

普段ターミナルを使わない方のために簡単に手順を説明します。

  1. [Command ⌘] + [スペース] を押してスポットライト検索を開く(上記画像)
    • 「ターミナル」と入力
  2. Mac 画面右上の 🔍 をクリックしてスポットライト検索を開く
    • 「ターミナル」と入力します
  3. 4本指でピンチインでアプリ一覧を開く方法
    • ターミナルアプリがどこかにあります。アイコンを探してください
    • 多分、「その他」グループとかにあります

ターミナル(CLI)はコマンドでMacを操作するツールです。
コマンド打てないという方もご安心ください。
以降の手順では、コマンドをコピー&ペーストして実行すればOKなので、知識不要です。

現在のクリップボード共有設定を確認

それでは、ユニバーサルクリップボード機能の現在の設定値を確認してみましょう。

ターミナルのウィンドウで以下のコマンドを入力して、Enter キーを押してください。

defaults read ~/Library/Preferences/com.apple.coreservices.useractivityd.plist ClipboardSharingEnabled

このコマンドは、現在のユーザーの設定ファイル内にある ClipboardSharingEnabled という項目の値を読み取ります。
実行すると、ターミナル上に結果 (0 か 1) が表示されます。

  • 0 と表示された場合:
    • ユニバーサルクリップボード共有機能が無効になってます。
    • 想定通りなので、次のステップに進んでこの機能を有効化します。
  • 1 と表示された場合:
    • 設定上はユニバーサルクリップボード共有機能が既に有効になっています。
    • 本記事で紹介する方法では改善しないと思いますので、再起動等他の方法を試すか、Apple へお問い合わせください。

クリップボード共有機能を有効化

いよいよユニバーサルクリップボードを再有効化するコマンドを実行します。
ターミナルで次のコマンドを入力してEnterキーを押してください。

defaults write ~/Library/Preferences/com.apple.coreservices.useractivityd.plist ClipboardSharingEnabled -bool true

このコマンドは、先ほど確認した ClipboardSharingEnabled の値を true(有効)に書き換えるものです。
要するに、ユニバーサルクリップボード機能を強制的に「オン」にする設定を書き込む操作になります。

実行後、特にメッセージは表示されませんが心配いりません。コマンドがプロンプトに戻ってきたら成功です。

もう一度先ほどの設定を確認した以下のコマンドを実行すると、次は 1 が表示されるはずです。

defaults read ~/Library/Preferences/com.apple.coreservices.useractivityd.plist ClipboardSharingEnabled

動作確認

以上で設定変更は完了です。

通常、この時点でユニバーサルクリップボード機能が即座に復活しているはずです。

Mac と iPhone で動作を確認してみてください。

  • Mac上で任意のテキストや画像をコピー(⌘+C)し、iPhone側で長押し→「ペースト」を実行
  • 逆に、iPhone上でコピーした内容をMacに切り替えて⌘+Vでペースト

以上の操作で双方のデバイス間でコピー&ペーストができれば、無事問題解決です。

技術的な内容に興味がある方へ

ここからは、本事象の根本原因や、今回実施した対策の詳細を少しだけ追ってみる話です。

「もう解決したしいいかな」という方は読む必要ないものです。
ここまでご覧いただきありがとうございました。

根本原因は何だったのですか?

「追ってみる」とかカッコつけた直後にすみませんが、結論謎です

可能性としては、「サードパーティソフトウェアによる干渉」等かなと思ってます。

特に、「高いセキュリティ要件を有するソフト」を起動した場合はこの事象が起きるかもです。

理由としては以下です。

  • 前提として、macOS では useractivityd というデーモンがユーザアクティビティ(クリップボード含む)を管理してます
  • ユニバーサルクリップボードを有効化すると useractivityd はクリップボード情報を App Group Container のディレクトリで管理するようになります (具体的なディレクトリは後述)
  • こちらの中継ディレクトリを介して複数デバイス間でのセキュアなクリップボード共有を実現してます
    • (ユニバーサルクリップボード機能の前提条件として、各デバイスでの同一 iCloud サインイン + Bluetooth + Wi-Fi 接続が必要なのもこれが理由)

それ故、外部へテキスト情報漏らさないために(あるいは逆にクリップボード情報を外部から入れないために) ClipboardSharingEnabledFalse にする処理がサードパーティソフトによって実行された可能性はあるのでは?という邪推でございます。(適当言ってますんで、有識者の方教えてください)

あるいは単に macOS アップデート時の不具合とか?と思ってます。

クリップボード情報の参照先が変わったっぽい?

前述の通り、ユニバーサルクリップボードを有効化すると、クリップボード情報を管理するディレクトリが変わります。
実際に有効化する前後を見てみましょうか。

# びふぉー
{
  "ClipboardSharingEnabled" => 0
  "kLocalPasteboardBlobName" => "/var/folders/g9/hogehoge/T/com.apple.useractivityd/shared-pasteboard/HOGE-FUGA"
  "kRemotePasteboardBlobName" => "/var/folders/g9/hogehoge/T/com.apple.useractivityd/shared-pasteboard/FUGA-HOGE"
}

# ユニバーサルクリップボード有効化
$ defaults write com.apple.coreservices.useractivityd ClipboardSharingEnabled -bool true

# あふたー
$ plutil -p ~/Library/Preferences/com.apple.coreservices.useractivityd.plist
{
  "ClipboardSharingEnabled" => 1
  "kLocalPasteboardBlobName" => "~/Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/FUGA-PIYO"
  "kRemotePasteboardBlobName" => "~/Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/PIYO-FUGA"
}

ClipboardSharingEnabled が 0 から 1 になっている点は先ほど確認しましたね。
加えて、 kLocalPasteboardBlobNamekRemotePasteboardBlobName がディレクトリ /var/folders/… から ~/Library/Group Containers/… に変わってることがわかります。

このことから、ユニバーサルクリップボード有効化に伴い、ローカル一時ファイル用のディレクトリからユニバーサルクリップボード用ローカル中継ディレクトリへ変更されたと見れますね。

Mac は iPhone の画像をどうやって参照してる?

iPhone で写真をコピーすると、Mac でペーストできるのはご存知かと思います。
あれはどうやってるんですかね?

先ほどの kLocalPasteboardBlobNamekRemotePasteboardBlobName をさらに見てみるとわかります。
※ 事前に iPhone 側では写真アプリを開いて画像をコピーしておきましょう

# kLocalPasteboardBlobName を見ると
$ cat ~Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/FUGA-PIYO
PIYO-FUGA ## kRemotePasteboardBlobName が書かれてる

# kRemotePasteboardBlobName を見ると
$ cat ~/Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/PIYO-FUGA
file:///private/var/mobile/Containers/Shared/AppGroup/FUGA-FUGA-FUGA/shared-pasteboard/type-clone/piyopiyo.jpegPIYO-PIYO-PIYO/L0/001 ## 何やらファイルパスが書かれている

file:///private/var/mobile/… というディレクトリが出てきましたね。
Swift 書いたことある人は見慣れたディレクトリかもしれません。
こちらは、iOS 上の実画像ファイルを示しております。

つまり、「iOS のこの画像ファイルを参照してね」という情報が Mac 側へ伝達されているということですね。

Mac は iPhone のテキストをどうやって参照してる?

え、画像と一緒じゃないの?」と思われるかもしれません。

違います

同様に kRemotePasteboardBlobName を実際に見てみましょうか。
※ iPhone 側では事前にブラウザを開いて Web ページ上の文字をコピーしておきます。

$ cat ~/Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/PIYO-FUGA2
iOS rich content paste pasteboard typebplist00␞_WebMainResource␞

_WebResourceFrameName^WebResourceURL_ebResourceTextEncodingName_WebResourceData_WebResourceMIMETypeP_5

よくあるご質問 - AWS Summit Japan | 2025 年 6 月 25 日(水)、26 日(木)
AWS Summit は、AWS に関して学習し、ベストプラクティスの共有や情報交換ができる日本最大級の AWS イベントです。基調講演・スペシャルセッションに加え、160+ セッション、 270+ 展示やハンズオンなどの Expo コンテ...
UTF-8 <!DOCTYPE html><head><meta charset="UTF-8"></head><body dir="ltr"> <span style="...">クラウド</span></body> text/html

画像の時と異なり、iOS のファイルパスではなく、何やら HTML 形式のようなデータになりましたね。

そう、つまり、iPhone 上のブラウザで Webページ中の「クラウド」という単語をリッチテキストとしてコピーし、それが Mac 側の共有ペーストボードに直接伝送、保存されていた、ということがわかります。

なので、リッチテキストエディタにペーストしてやれば元の情報を保持できるということですね。

Mac は iPhone のプレーンテキストをどうやって参照してる?

先ほどのケースでは、「ブラウザを開いて Web ページ上の文字をコピー」しましたよね。
だから HTML 形式であるのは当然です。
では、メモ帳アプリ等のプレーンテキストをコピーするとどうなるでしょうか。

実際に見てみましょう。
※ iPhone 側では事前にメモ帳アプリを開いて「テスト」という文字をコピーしておきます。

$ cat ~/Library/Group Containers/group.com.apple.coreservices.useractivityd/shared-pasteboard/PIYO-FUGA3
テスト

シンプルに、テキストデータだけが Mac 側に伝送・保存されるという結果になりました。

当然ですね。

さいごに

本記事では、ユニバーサルクリップボード機能の前提条件を満たしているにも関わらず、何故か Mac と iPhone 間でコピペ共有ができなくなる問題について、その対処法について解説しました。

「ClipboardSharingEnabled」をターミナルからコマンドで手動オンにすることで解消する方法を解説しました。
無事に問題が解決したなら何よりです。

後半は、技術的な内容に興味がある方向けに(というか自分が興味あっただけですが)、根本原因や実際の挙動を少し追ってみました。
画像は参照先のパスを、テキストは実際の内容を渡していることがわかりましたね。

お付き合いいただきありがとうございました。

お疲れ様です。

コメント