大字農民曆 App:技術清單與被拒的過程

大字農民曆是一款給長輩看的農民曆 App:字大、每日宜忌、神明生日提醒。做完送審被 Apple 拒絕,目前沒有上架。這篇整理它用到的技術和過程。

基本資料

  • 平台:iPhone / iPad,iOS 17 以上
  • 規模:Swift 16 個檔案、約 2,700 行
  • 開發時間:3 天(2026-03-27 ~ 03-29)
  • 內容:2026~2027 年共 730 天的農民曆、33 位神明、112 個宜忌詞

App 端

  • SwiftUI:首頁仿傳統農民曆版面,農曆直書、天干地支、生肖
  • 離線優先:農民曆資料打包在 App 內的 JSON,開啟不用等網路;有新版資料時再線上下載
  • Sign in with Apple:只有訂閱神明生日提醒時才需要登入
  • Firebase Messaging:神明生日推播
  • Firebase Analytics:使用數據
  • UserNotifications:檢查通知權限,沒開時引導到設定

後端

用既有的 Laravel 專案,加一組 alm: 開頭的 artisan 指令:

  • 6tail/lunar-php:計算每天的農曆、宜忌、節氣
  • 匯出指令:把資料庫內容輸出成 App 用的 JSON,附版本號和 checksum
  • API:Apple 登入、資料版本檢查、下載資料、訂閱開關、上傳推播 token
  • 每日排程:每天 08:00 檢查有哪些神明生日(含提前幾天提醒),透過 FCM 推播給訂閱的人

開發過程

日期 重點
03-27 初版:復古農民曆首頁、大字日曆列表、神明列表、設定頁
03-29 接 FCM 推播、登出與刪除帳號
03-29 改名「大字農民曆」、App Icon、字體再放大,送審
03-31 第一次被拒,當天重新送審
04-04 第二次被拒,之後沒有再送

被拒

  • 原因:4.3 垃圾內容(Spam),App Store 上同類型的 App 已經太多

    工具

  • Xcode、XCTest

  • Claude Code:寫程式與 code review