GEMINI LABEN
ROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応していますROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応しています
記事一覧/高度な活用
高度な活用/2026-05-19中級

Gemini 2.5 Pro に Apple の Privacy Manifest 作成を任せた1ヶ月 — 個人開発者の実装メモ

Apple が必須化した PrivacyInfo.xcprivacy の作成と更新を、Gemini 2.5 Pro で1ヶ月運用してみた所感です。何を任せられて何を任せられなかったか、個人開発の現場視点で整理しました。

Gemini 2.5 Pro17Privacy ManifestiOS13App Store6個人開発111

2024 年に Apple が Privacy Manifest(PrivacyInfo.xcprivacy)の提出を事実上必須化してから、個人で運営している壁紙アプリ群を更新するたびに、同じファイルを書き直す細かな作業が積み重なっていきました。私自身は 2014 年から個人でアプリ開発をしており、累計 5,000 万ダウンロードを超えるストア群を一人で運用しています。リリースのたびに NSPrivacyAccessedAPITypes の項目を読み直す時間を、別の作業に回したいと感じていたところでした。

そこで先月の頭から、Privacy Manifest の生成と更新を Gemini 2.5 Pro に部分的に任せてみました。1ヶ月使ってみて見えてきたのは、「ファイル全体を生成させる」よりも「差分を読み、必要な追加項目だけを提案させる」運用のほうが現実的だ、という地味な結論です。本稿はその記録です。

なぜ Privacy Manifest 対応に Gemini を入れたか

きっかけは、AdMob 経由で SDK のバージョンを上げたタイミングで、PrivacyInfo.xcprivacy に追加すべき API 利用カテゴリが増えていたことを後から App Store Connect の警告で気付いた、という出来事です。配信が止まる種類のエラーではないのですが、配信前の整合性を一人で確認するには時間がかかります。

要件をざっくり整理すると、こうなりました。

  • アプリ本体・各 SDK・サードパーティライブラリの 3 層分xcprivacy を毎回突き合わせる
  • NSPrivacyAccessedAPITypesNSPrivacyAccessedAPITypeNSPrivacyAccessedAPITypeReasons をペアで読む
  • 新しい SDK が増えたら、Apple の Required Reasons API リストから該当理由コードを探す
  • アプリ本体側で重複している宣言を取り除く

このうち「Apple の Required Reasons API リストとの突き合わせ」と「xcprivacy 同士の差分を見て重複や漏れを洗い出す作業」は、判断ロジックが定型化していて Gemini 2.5 Pro に向いていそうだと感じました。一方で「アプリの実コードのどこで該当 API を呼んでいるか」を確定する作業は、ハルシネーションを警戒する必要がある領域です。

最初の1週間で気付いた使い分け

最初の数日は、xcprivacy 全体を生成させてみたのですが、結果はいまひとつでした。返ってきた XML はそれらしく見えるのですが、NSPrivacyAccessedAPITypeReasons の理由コード(CA92.135F9.1 のような4文字コード)の組み合わせが微妙にずれることがあり、私が手で照合し直すコストが結局かかりました。

そこで、運用を次の3段階に分解しました。

  1. xcprivacy 同士を Gemini に diff させる — 既存ファイルと新しい SDK が同梱した xcprivacy を貼り付け、不足している NSPrivacyAccessedAPIType だけを列挙させる
  2. Apple の Required Reasons API リストを Gemini にコピー — 新規追加が必要な API に対して、選択肢になる理由コードを提示させる(最終判断は私)
  3. アプリのソース該当箇所だけ私が確認UserDefaultsFileTimestamp の参照箇所は手で grep して、コードに即した理由を 1 つ選ぶ

この分解で、1リリースあたりの作業時間が体感で約 40 分から 10 分前後まで縮まりました。完全自動化ではなく「ファイル横断の読み」と「リストとの突き合わせ」だけを任せる構成です。

PrivacyInfo.xcprivacy の生成を任せるときに整えたプロンプト

任せる範囲を絞ったうえで、Gemini 2.5 Pro に渡すプロンプトのテンプレートも、運用しながら少しずつ整えていきました。コツは、出力フォーマットを XML ではなく 「差分の理由付き表」 に固定することです。

あなたは Apple Privacy Manifest の差分レビュアーです。
以下の 2 つの xcprivacy ファイルを比較してください。

[ファイル A: 現行アプリの xcprivacy]
<plist>
...省略...
</plist>

[ファイル B: 新しく追加された SDK 同梱の xcprivacy]
<plist>
...省略...
</plist>

タスク:
- B に含まれているが A に不足している NSPrivacyAccessedAPIType を列挙してください
- 各項目について、A 側に追加すべき NSPrivacyAccessedAPITypeReasons の候補を、Apple 公式リストの理由コード形式で 1〜2 個示してください
- 推測ではなく「B の宣言にあった理由コード」を優先してください
- 出力形式: Markdown の表(API名 / 追加理由コード / B での宣言根拠)

このプロンプトで返ってきた表を、私が xcprivacy に手で反映していくのが現在の運用です。XML を直接書き換えさせると Property List のクォート位置が崩れたりするので、最終生成は Xcode の Property List Editor 任せにしています。

ちなみにこの「出力をフォーマットで縛る」コツは、Gemini に限らず Claude や ChatGPT でも同じだと感じます。生成タスクをいちど「読み取りタスク」に翻訳してから渡すと、ハルシネーションがぐっと減ります。

試して合わなかった3つのこと

期待していたほどうまくいかなかった使い方も書いておきます。

1つ目は、Privacy Manifest を Swift コードから自動生成させる試みです。UserDefaults を参照しているコードを grep して、対応する NSPrivacyAccessedAPITypexcprivacy に書き出してください」と頼んでみたのですが、サードパーティライブラリ内部の UserDefaults 参照まで列挙されてしまい、ノイズが多すぎました。アプリ本体のターゲットだけに絞れば多少マシになりますが、最終的に手で確認する手間が変わらず、運用に組み込むのはやめました。

2つ目は、複数アプリの xcprivacy を一括チェックさせる運用です。 5本ぶんの XML をまとめて貼ると、1ファイルあたりの粒度が落ち、差分の出し漏れが増えました。1ファイルずつ独立に処理させたほうが品質が安定します。これは Gemini 2.5 Pro のロングコンテキストを過信した失敗でした。長く読めることと、長く読んだうえで正確に差分を取れることは別の能力なのだと、改めて気付かされました。

3つ目は、App Privacy Details(App Store Connect のプライバシー回答)との同期です。 Privacy Manifest と App Privacy Details は内容が連動するべきですが、後者は質問項目の意図を Apple のドキュメントとあわせて読まないと回答できないため、Gemini に要約させるよりも、Apple の英語ドキュメントを自分で精読した方が結局速かったです。ここは AI で短縮できないと割り切りました。

1ヶ月運用して見えてきた所感

正直なところ、Privacy Manifest 作業の総時間は半減程度で、想定していた「9 割削減」には届きませんでした。それでも、月に十数本のリリースを一人で回している身からすると、地味に効きます。私自身、両親方の祖父がともに宮大工で、子どもの頃から「丁寧に組み上げる」という感覚を当たり前に見てきました。AI を入れる場所も、勢いに任せて全自動にするよりは、判断の濃い部分だけ人が残るくらいの組み方が、自分には合っているのだと改めて感じます。

短くまとめると、現時点での私の使い分けはこうなっています。

  • Gemini 2.5 Pro に任せる: 既存 xcprivacy と SDK 同梱 xcprivacy の差分抽出、Required Reasons API リストとの突き合わせ
  • 自分で判断する: 実コードに対する NSPrivacyAccessedAPIType の最終確定、App Privacy Details の回答
  • 任せない: アプリ本体ソースからの全自動生成、複数アプリの一括処理

来月は、Claude in Chrome 経由で App Store Connect の警告画面を読み取り、Gemini 側の差分提案にフィードバックする小さなパイプラインを試したいと考えています。同じように個人で iOS アプリを運用されている方の参考になれば嬉しいです。お読みいただきありがとうございました。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

高度な活用2026-06-04
Gemini の画像理解で壁紙アプリの審査リスクを事前点検した2週間の運用メモ
壁紙アプリの新規バッチを提出する前に、Gemini の画像理解でストア審査リスクを事前点検した2週間の運用メモです。商標の写り込みなど何を拾えて何を拾えなかったか、コストと処理時間の実測、目視チェックとの役割分担を個人開発の視点で記録しました。
高度な活用2026-05-20
Gemini 2.5 Pro の 1M コンテキストを実運用で2ヶ月使ってわかった、向く作業と向かない作業
Gemini 2.5 Pro の 1M トークン長文コンテキストを2ヶ月間、個人開発12年分の運用メモ整理や大量MDX記事のレビューに使い続けて見えた、向く作業と向かない作業を正直にまとめた所感メモです。
API / SDK2026-05-17
Gemini API で iOS/Android アプリのメタデータを30言語自動生成した実装 — Beautiful HD Wallpapers の多言語化で気づいたこと
累計5,000万DLの壁紙アプリで実際に試した、Gemini APIを使ったApp Store/Google Playメタデータの多言語自動生成。翻訳精度を担保するプロンプト設計から文字数制限への対応まで、実装コードとともに公開します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →