アプリ開発
iPhoneアプリの開発で困ったこと、原因を調べたこと、決めたことの記録。設計、実装、App Store の審査と公開までの手順を書いています。

このカテゴリーで扱っていることiPhone アプリの設計と実装(SwiftUI、録音、カメラ、通知)、業務アプリのサーバーとデータベース、TestFlight とビルド、App Store の審査(Guideline 2.1・3.2)と非公開配布、Apple Developer の組織の登録。
SwiftUI の画面を開くと落ちる:EXC_BAD_ACCESS の原因は、ビューの型が深すぎて「スタックを使い切る」ことだった
Gemini の構造化出力が MAX_TOKENS と 400 で失敗し続けた:thinking でも音声形式でもなく、response_schema が原因だった
録音を誰が見られるかを、画面・同意・ポリシーのすべてに書いた理由
現場のスタッフに TestFlight は無理だった:業務アプリを「リンクとGoogleログインだけ」で配る
TestFlight のビルド番号が食い違う問題と、審査に出す前の7つの自動検査
生成 AI を使わず、iPhone の無料の部品だけで歯を見つけて色を変える
写真の背景と、ガラスのような半透明の画面を SwiftUI で作る:全画面に広げた時に決めたこと
アプリが計算した数字には、必ず計算式を出す:決めるのは担当者、アプリは手助け
本番のアプリから「テスト環境に切り替えるボタン」を消した理由と、#if DEBUG では足りなかった話
画面を閉じても止まらない、失わない:iPhone の録音アプリで直した4つのこと
業務アプリの本番とテスト環境の分け方:データベースとドライブは分け、AI の鍵は共通に
iPhone 内蔵の文字起こしは、AI の56%しか言葉を拾えなかった:接客の録音で比べた結果
データベースの更新が1つ飛ばされて当たった事故と、番号の順番を検査する仕組み
カメラに映したまま歯が白くなる「ライブ表示」を、iPhone の中だけで動かす
個人事業主が Apple Developer に「組織」として登録するまで(D-U-N-S 番号)
業務アプリが Guideline 3.2 で戻された時の、非公開配布(Unlisted)への切り替え
App Store 審査で「Guideline 2.1 Information Needed」と言われたら出す6つのもの
アプリのアイコンに枠を入れない:背景を全面に敷いて、角丸は iPhone に任せる
AI の文字起こし代が月1万円を超えて、アプリの料金の設計を見直した
管理画面の URL を /admin にしない:「サービス名+推測できない英数字」の決まり
メンションされなくても仲間の動きを通知する:営業の業務アプリの通知の設計