1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

古いライブラリにも対応!自作PrivacyInfo.xcprivacyを使ってApp Store審査を突破する方法

Last updated at Posted at 2025-08-01

AppStoreConnect1.png

📌 対象:App Store 審査で ITMS-91061: Missing privacy manifest エラーが出て困っている人
🧑‍🎓 高校生でもわかるように会話形式で解説します!

🧩 本記事では、SDWebImageSVProgressHUD という代表的なライブラリを例に解説しています。


🎬 登場人物

  • 👨‍🏫 先生:Xcodeの達人。親切だけど時々厳しい。
  • 🧑‍🎓 生徒:iOS開発に挑戦中の高校3年生。SDK審査エラーに悩んでいる。

🗨️ Scene 1:審査エラーに立ち向かう

生徒

「先生ー!App Store に提出したら ITMS-91061 ってエラーが出たんですけど…!」

先生

「どのSDKを使っているか見せてごらん?」

生徒

SDWebImageSVProgressHUD です!」

先生

「それらは“よく使われるサードパーティSDK”だから、Appleからプライバシーマニフェストを求められるんだよ。」


🧩 Step 1:PrivacyInfo.xcprivacy を作成する

先生

「まずは、以下の内容で .xcprivacy ファイルをプロジェクトルートに置くんだ。」

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSPrivacyTracking</key>
    <false/>
    <key>NSPrivacyCollectedDataTypes</key>
    <array/>
    <key>NSPrivacyTrackingDomains</key>
    <array/>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>C617.1</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

🔍 ポイント:アクセスされるAPIカテゴリと理由を正しく書くこと。


🛠️ Step 2:Run ScriptでFrameworkにコピーする

生徒

「作ったファイルをどうやってアプリに含めるんですか?」

先生

「XcodeのBuild PhasesでRun Scriptフェーズを追加して、ビルド後に各フレームワークへコピーするんだ。」

# 自作の .xcprivacy ファイルをビルド後にコピー
SOURCE_PRIVACY_FILE="${PROJECT_DIR}/PrivacyInfo.xcprivacy"
DESTINATION_DIR="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"

echo "📦 Embedding PrivacyInfo.xcprivacy to Frameworks..."

cp "${SOURCE_PRIVACY_FILE}" "${DESTINATION_DIR}/SDWebImage.framework/PrivacyInfo.xcprivacy"
cp "${SOURCE_PRIVACY_FILE}" "${DESTINATION_DIR}/SVProgressHUD.framework/PrivacyInfo.xcprivacy"

echo "✅ Done embedding privacy manifests."

🔐 Appleは「フレームワーク内に .xcprivacy があるか」をチェックするよ。


🔍 Step 3:ビルド&検証する

  1. Product > Archive でアーカイブ
  2. Organizerで Validate を実行
  3. ITMS-91061 エラーが出なければ完了!🎉

✅ 補足:実際に含まれているか確認する方法

cd ~/Library/Developer/Xcode/Archives/<日付>/YourApp.xcarchive/Products/Applications/YourApp.app/Frameworks

ls SDWebImage.framework
ls SVProgressHUD.framework

→ それぞれのフレームワークフォルダ内に PrivacyInfo.xcprivacy があればOK。


🎓 おわりに

生徒

「先生!無事に審査通りましたー!!」

先生

「よしよし、これで古いSDKでも怖くないね。次はプライバシーラベル登録も忘れずに!」


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?