【Swift/PhotoKit】PHPickerViewControllerで画像のメタデータ取得する方法!

この記事からわかること
- Swift/PhotoKitのPHPickerViewControllerの使い方
- 画像のメタデータ(撮影日時やロケーションなど)情報を取得する方法
- 取得できるメタデータ情報
index
[open]
\ アプリをリリースしました /
環境
- Xcode:15.0.1
- iOS:17.1
- Swift:5.9
- macOS:Sonoma 14.1
PHPickerViewController
でアルバムから写真を取得する方法は以下の記事を参考にしてください。
PHPickerViewControllerで画像のメタデータ取得する方法
PHPickerViewController
を使用してアルバムから写真を取得している場合に写真のメタデータ(撮影日時や撮影地など)を取得するにはいくつか注意点がありました。
- info.plistにNSPhotoLibraryUsageDescriptionキーを追加
- PHPickerConfigurationにPHPhotoLibrary.shared()を渡す
- PHPickerResultからメタデータを取得する
info.plistにNSPhotoLibraryUsageDescriptionキーを追加
PHPickerViewController
を使用した方法では不要であったアプリ内からデバイスのカメラロールにアクセスするためのNSPhotoLibraryUsageDescriptionキーを「info.plist」に追加する必要がありました。

「info.plist」を開いたらKeyにNSPhotoLibraryUsageDescription
と入力し、Valueにはカメラロールを使用する旨を記載しておきます。
PHPickerConfigurationにPHPhotoLibrary.shared()を渡す
PHPickerConfiguration
をインスタンス化する際にシングルトンになっているPHPhotoLibrary.shared()
を渡す必要があります。
PHPickerResultからメタデータを取得する
これで準備ができたのでPHPickerViewControllerDelegate
のpicker(PHPickerViewController, didFinishPicking: [PHPickerResult])
メソッドで受け取ったPHPickerResult
型からassetIdentifier
を取得し、PHAsset.fetchAssets
メソッドをPHAsset
型を取得することで画像のメタデータに参照することができました。
取得できるメタデータ情報
PHAsset
型が取得できれば以下のメタデータを取得できるようになります。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。