はじめに
この記事は DENSO アドベントカレンダー 2025の22日目の記事です。
今日はGlassTimerというMacアプリを開発し、App Storeにリリースしたお話です。
https://apps.apple.com/jp/app/glasstimer/id6754670509?mt=12
開発背景
時間というのは本来、1秒2秒3秒・・と「積み上がっていく」ものですが、
納期までの残り時間や会議の残り時間など、
「積み上がる」というよりむしろ「減っていく」ものとして認識する方が、仕事上は使いやすかったりします。
なので、砂時計のように時間が「減っていく」ことが可視化されるアプリが欲しいと考えました。
でも、もうカウントダウンタイマーアプリなんか世の中に沢山ありますよね?
・
・
・
ええ。ありますとも。。。あるけど、、、
・
・
・
・
・
・
自分が欲しいのは、
- 時間が減っていく感じが可視化されていて、
- PCの画面上に常時表示されていて、(且つ、さりげなく)
- シンプルで美しいデザインで
- セットした時間になったら画面いっぱいに思いっきり知らせて欲しい
といったわがまま仕様。こんなもんは探しても無いので、自分で作ることにしました。
そして、ユーザは自分なので自分が圧倒的に欲しいと思える仕様で研ぎ澄ましました。
いきなり完成品披露
どうやって作ったの?
開発は Claude Code を使用し、XcodeBuildMCP を連携しながら進めました。
基本的には「こうしたい」と日本語で伝えるだけ。
Claude Codeがコードを書き、XcodeBuildMCPが自動でビルド・テストまで走らせてくれる感じです。
- 参考URL : XcodeBuildMCP
具体的なやりとりの例
- 「Mac用の線形プログレスバーのカウントダウンタイマーアプリを作って」
- ベースとなるプロジェクトファイル(SwiftUIのコード)が出てくる
- 「マウススクロールで設定時間を増減させたいんだけど」
- 「App Store申請できる設定を入れて」
- Hardened RuntimeやdSYMなどをXCConfigに自動追記
- Hardened Runtime
- macOSアプリのセキュリティ機能。App Store申請に必要
- dSYM
- クラッシュレポート解析用のシンボルファイル。App Store提出時に必要
- Hardened Runtime
- Hardened RuntimeやdSYMなどをXCConfigに自動追記
製作時間
約2時間
工夫したところ
サイズの微調整、色味、フォントなど。
自分の感性に沿わないところを妥協せずに細かく何度でも指摘すること。
「これくらいでいいや」ってなるくらいなら、最初から自分で作ってないので。
Let's App Store申請!!
必要なもの
- Apple Developerへの登録(年99ドル)
準備物 (作成方法は後述)
- App Store掲載用画像
- Privacy Policy, 問い合わせ先サイト
作業する上であると良いもの
- 生成AI搭載のブラウザ (Dia, Atlasなど)
申請手順
1. App Store Connect 申請フォーム入力
以下のような記事を参考にし自力で申請フォームを埋めるか、
- 参考URL
もしくはDiaやAtlasを使用し、AIと対話しながら入力フォームを埋めていきます。

自分は後者のAtlasを使用し入力フォームを埋めていきました。
※AIが間違ったことを言ってないかファクトチェックは実施してください。
基本は文章入力ですが、以下の2点は別途作成が必要です。
- App Store掲載用画像
- Privacy Policy, 問い合わせ先サイト
2. App Store掲載用 画像作成
ChatGPTでもなんでも良いですが、美しい画像が作りたかったので、
今回はMidjourneyを使用し背景画像を生成しました。
そしてCanva等を使用し、背景画像と良い感じのフォント・アプリの画像を重ねて完成

3. Privacy Policy, 問い合わせ先サイト作成
App Storeの申請にはPrivacy Policyが明記されたサイトと、
問い合わせ先が記述されたサイトが必須です。
2つのサイトを作る必要はなく、1つのサイトで両方の内容を明記します。
今回は、STUDIOを使ってこれらのサイトを作成しました。
STUDIOの無料テンプレートを編集し必要な情報を入力するだけで、
App Store審査に通るPrivacy Policy, 問い合わせページが無料で簡単に作成できます。
今回は謎に英語で作ってしまいましたが、以下を参考ください。
参考HP: GlassTimer Privacy Policy & Contact HP
4. アプリをApp Store Connectにアップロード
XCodeで対象のアプリをアップロードします。
これで準備完了!!
いざ、審査に提出!!
今回の却下理由一覧
1. 商標ガイドライン違反(Guideline 5.2.5)
Guideline 5.2.5 - Legal
Your app uses Mac in the app name and subtitle in a manner
that is not consistent with Apple's trademark guidelines.
Indicating Mac compatibility in the app name is not necessary
for the Mac App Store.
- エラー内容
- 最初に命名していた
HiTimer for Macの「Mac」は使用NG
- 最初に命名していた
- 対応
-
GlassTimerに改名。App Store Connectの名称を変更し、PRODUCT_DISPLAY_NAMEも合わせて更新。
-
2. 表示アプリ名と内部アプリ名の乖離
Guideline 2.3.8 - Performance
We noticed that your app name to be displayed on the App Store does not sufficiently match the name of the app displayed when installed on macOS.
App Store Name: GlassTimer
Name in Help: HiTimer
Name in MacOS Status Bar: HiTimer
Name in About/Quit: HiTimer
- エラー内容
- App Store上はGlassTimerなのに、インストール後やメニューではHiTimerのまま。
- 対応
- ソース内のハードコードされた
"HiTimer"を削除し、WindowGroupでInfo.plistから動的取得するように変更。
Shared.xcconfigにINFOPLIST_KEY_CFBundleNameとINFOPLIST_KEY_CFBundleDisplayNameを明示し、project.pbxproj内の上書き設定を削除してXCConfigを一元管理。
- ソース内のハードコードされた
特にこの2の修正だけで3回ほどリジェクトをくらいました。
- Claude Codeが「修正しました」と言って修正 → リジェクト
- → 「まだ治せてませんでした。次こそ治しました」→ リジェクト
- → 「次こそ…
- → 「まだ治せてませんでした。次こそ治しました」→ リジェクト
という形で。
審査通過! App Storeにて公開!!
何はともあれ、最終的に審査を通過。
(このCongratulations!がめちゃくちゃ嬉しい)

無事にApp Storeに公開されました。
実験的に、海外では有償・日本では無償という料金体系にしているので、
日本の方は無償で使用できます。
興味がある方は、ご利用ください。
おわりに
生成AIを使うことで拘りを詰め込んだアプリが簡単に作成でき、App Store登録も簡単に行うことができました。
是非、皆さんも自分の拘りを解き放って開発をしてみましょう!
次回予告
自分の拘りが詰まったToDo、リマインダ、ハイパーリンク登録アプリを作り始めました。

またApp Store公開したら記事にします。















