Upgrade to Pro — share decks privately, control downloads, hide ads and more …

気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマ...

気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜

iOSDC2025のルーキーズLTで発表した内容となります。

皆さん、最近健康診断は受けましたか?
実はアプリでも健康診断は行われているんです。

起動時間やHang率など、パフォーマンスデータは自動で記録されています。
ただし、それを確認するにはXcode Organizerを開いて自分で見に行く必要があります。
でも、わざわざ開くのは面倒だし、忙しいとつい忘れてしまいます。
そのまま見逃してしまえば、アプリからのSOSに気づけないままに…。
・バッテリー消費が激しい
・スクロールがカクつく
・画面がフリーズする
こうした不調が続けば、ユーザーのiPhoneからあなたのアプリが静かに削除されてしまうかもしれません。

本トークでは、App Store ConnectAPI × GitHub Actions で構築する自動パフォーマンス監視体制について、5分で解説します。

Next Talk's HINT:
・App Store ConnectAPI(perfPowerMetrics)
・GitHub Actions
・Xcode Organizer

Avatar for Wakabayashi Rikuma

Wakabayashi Rikuma

September 20, 2025
Tweet

More Decks by Wakabayashi Rikuma

Other Decks in Programming

Transcript

  1. { "version": "1.0.0", // アプリバージョン "insights": { "regressions": [], //

    パフォーマンス悪化を検知 "trendingUp": [] // 悪化傾向を検知 }, "productData": [] // 詳細なメトリクスデータ } Response
  2. { "version": "1.0.0", // アプリバージョン "insights": { "regressions": [], //

    パフォーマンス悪化を検知 "trendingUp": [] // 悪化傾向を検知 }, "productData": [] // 詳細なメトリクスデータ } Response
  3. "insights": { "regressions": [ { "metricCategory": "BATTERY", "latestVersion": "8.14.0", "metric":

    "onScreen", "summaryString": "Top (90th percentile) ScreenOn ...", "referenceVersions": [ "8.10.0", "8.11.0", "8.12.0", "8.13.0" ], "maxLatestVersionValue": 0.48, "subSystemLabel": "Networking", "populations": [ { "deltaPercentage": 55, "percentile": "percentile.ninety", "summaryString": "Increased 55% across iPhone (All)", "referenceAverageValue": 0.31, "latestVersionValue": 0.48, "device": "all_iphones" } ] }, … ], "trendingUp": [] }
  4. name: Performance Check on: schedule: - 毎日10時 jobs: check: steps:

    - perfPowerMetrics APIを実行 - insightsの中身(悪化)を検知 - チャットへ通知 (自動でIssue作成) GitHub Actionsで自動化