連絡先を全部もらわずに、必要な1件だけ受け取る — iOS 18 の ContactAccessButton
iOS 18 で連絡先アクセスに「限定」の段階が増えました。ContactAccessButton を使えば、全連絡先の許可を求めずに、ユーザーが選んだ1件だけをその場で受け取れます。Rork Max が生成するネイティブ Swift を前提に、設計と実装をまとめました。
写真の「選択した項目だけ許可」に正しく向き合う設計
iOS の写真ライブラリ限定アクセス(選択した項目だけ許可)に Rork(Expo)アプリで正しく対応します。フルアクセス・限定・拒否の3状態の判定、選んだ写真だけを扱う前提の画面設計、追加選択を促す導線までを実装コードとともに整理します。
広告とサブスクを入れた途端に増える「Appプライバシー」の申告 — 実際にチェックを付けた項目の記録
AdMob・RevenueCat・Crashlytics を組み込んだ Rork(Expo) アプリで、App Store Connect の「Appプライバシー」に何をどう申告したか。トラッキングとATTの連鎖まで、6本運用の手元メモとして整理しました。
アプリスイッチャーに個人的な画面が残る——背景へ回した瞬間のスナップショットを隠す設計
Rork が生成した React Native アプリをホームに戻すと、iOS はその瞬間の画面をアプリスイッチャー用に撮影してディスクに保存します。手記や個人的な入力画面はそこに残り、第三者の目に触れます。iOS の目隠しオーバーレイ(inactive で出す理由)、Android の FLAG_SECURE、機密画面だけに絞る方法、スクショ検知までを動くコードで示します。
Rorkアプリの写真が、アップロードした先でだけ横向きになる——EXIF Orientation の正規化と位置情報メタデータの削除
端末では正しく見える写真が、サーバーや他端末でだけ90度回転する原因はEXIF Orientationです。expo-image-manipulatorで回転を焼き込み、位置情報メタデータを削除してからアップロードする実装を解説します。
Rork アプリのログ設計 — 何を残し、個人情報をどう伏せるか
Rork が生成したアプリは console.log が散らばりがちで、いざ不具合を追うときに肝心の情報が読めません。構造化ログ・ログレベル・個人情報の自動マスキング・本番での送信制御までを、そのまま使えるコードで設計します。
RorkでビルドしたiOSアプリがTestFlightで「ITMS-90683」拒否される — Info.plistの使用目的文字列の埋め方
Rork書き出しのiOSアプリをApp Store Connectに提出した直後、メールで「ITMS-90683: Missing Purpose String in Info.plist」を受け取る現象について、原因とapp.jsonからの恒久的な修正手順を、12年間の個人開発で繰り返しハマってきた立場から具体的に説明します。
Rork アプリが「データセーフティ」未入力でGoogle Playにリジェクトされたときの直し方
Google PlayのデータセーフティセクションをRorkアプリ向けに正しく記入する手順を解説。AdMob・Firebase・RevenueCatなど主要SDKが収集するデータの申告漏れパターンと対処法。
Rork Max で子ども向けアプリを作る — App Store Kids カテゴリ審査・COPPA対応・ペアレンタルゲートの実装ガイド
Rork Max で子ども向けアプリを開発・公開するための完全ガイド。App Store Kids カテゴリの審査基準、COPPA 準拠の実装パターン、ペアレンタルゲートのコード例、Ask to Buy 対応まで、個人開発者が実際に直面する落とし穴を軸に解説します。
Rork で iOS アプリ申請を通すための App Tracking Transparency 実装
Rork で作った iOS アプリが ATT(App Tracking Transparency)周りで App Store 審査に落ちないようにする実装手順を、Info.plist の説明文・プロンプトを出す位置・拒否されたときの後続フローまで含めて整理しました。