iCloudへのVCFファイルのインポートに失敗する場合の対処法

家電&スマホ
スポンサーリンク

以前、VCFファイルをiPhone(iCloud)にインポートする方法を紹介しましたが、最近になって同じ手順でインポートしてみると失敗するようになっていました。今回、その問題について調べてみました。また、対策として簡易変換ツールも作りました!

スポンサーリンク

VCFファイルをiCloudにインポートする方法

AndroidからiPhoneへアドレス帳を移行するような場合、VCFファイルをiPhone(iCloud)にインポートすることでできます。Google連絡先などから取り出したVCFファイルをiCloudにインポートする方法については、こちらの記事にまとめてあります。

らくらくスマートフォン3(F-06F)からiPhoneへアドレス帳を移行(グループ分けも維持)する方法
先日、らくらくスマートフォン3(F-06F)からiPhone SE(第2世代)にデータを移行したい方がいたのでお手伝いしました。 この方、仕事の都合でアドレス帳に1000件近く登録してあり、グループ分けも維持してデータ移行したいとのことでし...
スポンサーリンク

iCloudへのインポートが失敗

VCFファイルのiCloudへのインポートが失敗

最近になって再度同じ手順で試してみましたが、なぜかiCloudへのインポートに失敗しました。念のため、Google連絡先からエクスポートするところからやり直してみましたが、やはり失敗します。

そのときのメッセージは以下の通りです。 以前は問題なくできていたので、何か仕様が変わったのでしょうか?

VCFファイルに大人数のデータが含まれていたので、とりあえず一人ずつのデータに分割してインポートを試してみました。それでもほとんどは失敗するのですが、まれにインポートが成功するデータがありました。成功する条件を絞り込んでいくと原因が見えてきました。

VCFファイルにFNフィールドがないとインポートに失敗するようです。

FNフィールド

FNというのは formatted name の略のようです。 名前の各要素が「;」で区切られて並んでいるNフィールドに対して、FNフィールドのほうはヒューマンフレンドリーな(人間に馴染みのある)形式になっています。

例:

N:Gump;Forrest
FN:Forrest Gump

 

VCARD バージョン3.0の規約(RFC2426)を見てみると、以下のような記述を見つけました。

The VERSION, N and FN types MUST be specified in a vCard.

たしかにFNフィールドは必須になっているようです。

iCloudへのインポートに失敗しているVCFファイルは、古いAndroidから取り出したためかFNフィールドが含まれてないようです。

NからFNを作る

iCloudの仕様としてFNフィールドがないVCFファイルをインポートできないようなので、FNフィールドを追加するしかありません。

空っぽのFNフィールドを追加するだけでもいいかもしれませんが、同じく名前を表すNフィールドがあるので、それをもとに作ってしまえばよさそうです。では、Nフィールドのデータの並びはどうなっているのでしょう?
規約には以下の記載がありました。

The structured type value corresponds, in sequence, to the Family Name, Given Name, Additional Names, Honorific Prefixes, and Honorific Suffixes.

つまり、以下の順に並んでいるようです。

  1. 苗字
  2. 名前
  3. ミドルネーム/旧姓
  4. 敬称(前)
  5. 敬称(後)

とりあえず、欧米風に考えて、4.→ 2.→ 3.→ 1.→ 5.の順番に並び替えて連結してFNフィールを作ることにします。

スポンサーリンク

変換ツール

上記のルールに従って、NからFNを生成するツールを作ってみました。

比較的単純なのでPythonのコードを公開するより、Webに埋め込んで使ってもらったほうがいい気がしたのでチャレンジしました。Webに埋め込むにはJavaScriptが良さそうだったのでまたググりながらコーディングしてみました。

そのツールがこちらで公開しているものです。

【簡易ツール】VCFファイルにFNフィールドがない場合に補完する
ツールの説明 VCFファイルの内容にFNフィールドがない場合、Nフィールドの情報を基にFNフィールドを生成して補完します。 FNフィールドがないVCFファイルをiCloudへインポートしようとすると失敗したので、変換ツールを作ってみました。...

よかったら使ってみてください。

ちなみに、変換してFNフィールドを追加するよりもWebに埋め込んだり、色をつけたりする方法のほうが難しかったですね。。その内容も別途まとめたいと思います。

なお、らくらくスマートフォン3(F-06F)からiPhoneへアドレス帳を移行するための自作変換ツールはPython版ですが、こちらもFNを補完するように対応済みです。

スポンサーリンク

まとめ

今回、以前は成功していたはずのVCFファイルのiCloudへのインポートが失敗するようになっていたため、その問題について調べてみました。原因はFNフィールドがなかったためのようです。その対策としてVCFファイルに自動でFNフィールド追加する簡易変換ツールも作りました。よかったら使ってみてください。

最後までお読みいただきありがとうございました!

タイトルとURLをコピーしました