0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【過去記事移植】iOSアプリ|プライバシーマニフェスト対応要否の確認方法

Posted at

※この記事はもともと 2024年6月 に執筆した内容を移行したものです。

Apple公式の告知情報

『リマインダー:アプリ提出時のプライバシー要件が5月1日から適用されます』
https://developer.apple.com/jp/news/?id=pvszzano

手探りで確認するとしたら...

Xcodeの検索機能を用いてCoreAPIでピックアップされているモノを全て検索すれば、テキストベースで目視確認できます。各自でチェックシートを作り、creationDatefstatを探し出せば網羅できるはずです。

サードパーティーのライブラリもpod installしたのであればPodfile.lockを確認すれば導入状況をチェックできるはずです。

ですが、規模の大きなアプリケーションとなるとチェック漏れ防止のためにも上記手段は避けたいところです。何時間も掛かる訳だし、「ボーッとした瞬間」に確認漏れのリスクが高まります。
個人的には規模に限らず、闇雲にチェックする方法は避けた方が良いと思っています。
−−−−というか、世界中のエンジニアがそう思ってるはずです。。。

待ってました自動チェックツール!!

GitHubで機械的にチェックできるソースを公開してくれています。(ありがとぉぉぉぉWooderさん!!)

GitHub - Wooder/ios_17_required_reason_api_scanner:
https://github.com/Wooder/ios_17_required_reason_api_scanner

【 "ios_17_required_reason_api_scanner" を利用する注意点】
Appleが公言しているサードパーティライブラリ、CoreAPIはカバーできています。(記事執筆時点)
このツールを利用すれば審査に100%通るという保証はありませんのでご承知おきください。

ちなみに、私の仲間うちでは「公言されていないライブラリも指摘を受けた」との報告がありました。
厳しい審査員に当たってしまったのかもしれないですね。。。

実際に使ってみよう

まずはXcodeでプロジェクトを用意しましょう。WelcomeウィンドウからCreateメニューで作ったばかりのプロジェクトをWorkフォルダに設置しました。

image001.png

次にターミナルを使ってGitのcloneコマンドでリポジトリをローカルにダウンロードします。clone先はXcodeのプロジェクトと同じく、Workフォルダに設置しました。

# bashコマンド

cd /Users/Shared/work/   # 場所は任意のフォルダでOKです。
git clone git@github.com:Wooder/ios_17_required_reason_api_scanner.git

image002.png

では、新品箱出し状態のTest001プロジェクトをツールでスキャンしてみましょう。以下はターミナルでテキストベースのスキャンを行う例です。

# bashコマンド

cd ./ios_17_required_reason_api_scanner
sh required_reason_api_text_scanner.sh ../Test001

image003.png

正常にスキャンが走りました。何もCoreAPIやサードパーティライブラリを導入していないので、スキャン結果が空っぽですね。プライバシーマニフェスト対応が必要無いということが確認できました。

次に、検索結果が出てくる表示パターンが気になってきますね。
XcodeでTest001プロジェクトを修正します。よく利用されている「UserDefaults」を記述してみましょう。

// ContentView.swiftに追加したコード

init() {
    UserDefaults.standard.object(forKey: "")
}

image004.png

再度ターミナルでスキャンします。

# bashコマンド

cd ./ios_17_required_reason_api_scanner
sh required_reason_api_text_scanner.sh ../Test001

「UserDefaults」がヒットしました。「Line numbers」でコードの行番号まで表示されています。
ちなみにCoreAPIをコメント化していてもスキャンでヒットします。不要なコメントは削除しましょうね。

ーーということで以上のスキャン結果から、

  • どのファイルが
  • 何のAPIを使用していて
  • マニフェストにAPI使用理由を書かないとリリース審査で落ちる

ということが分かりました。
的確ですね...自分もこのツールを使用してチェックしたかったです...

※次の記事ではプライバシーマニフェストファイルをプロジェクトに追加して何を記入すれば良いのかを記事にしてみたいと思います。

最後に - メーロンで働いてみませんか?

もしメーロン株式会社にご興味をお持ちいただけましたら、随時採用も行っております!
下記リンクのWantedlyページをご覧いただき、気になる点があればお気軽にご相談ください。

  • 在宅ワーク希望
  • 出社と在宅のハイブリッド勤務
  • インフラエンジニアからのキャリアチェンジ

など、ご要望があれば柔軟に対応いたします!

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?