日記

iOS 26 対応を今すぐ終わらせる — 2026年4月28日から App Store の SDK 要件が変わる

1 Mins read

iOS 26 対応を今すぐ終わらせる — 2026年4月28日から App Store の SDK 要件が変わる

App Store Connect へのアップロードには、2026年4月28日以降 Xcode 26 および iOS 26 SDK でのビルドが必須になる。iOS 26 は 2025年9月にリリース済みで、WWDC25 発表の Liquid Glass デザインや Foundation Models framework を含む大型アップデートだ。続く iOS 27 は WWDC26(2026年6月8〜12日)で発表され、2026年9月リリース予定。この2バージョンを同時に見据えた対応順を書く。

App Store SDK 要件のスケジュール

Apple は毎年、App Store Connect への提出に必要な SDK バージョンを引き上げてくる。

施行日 必要な Xcode 必要な SDK 状態
2024年4月29日 Xcode 15 iOS 17 SDK 施行済み
2025年4月24日 Xcode 16 iOS 18 SDK 施行済み
2026年4月28日 Xcode 26 iOS 26 SDK ⚠️ 要対応
2027年(予定) Xcode 27 iOS 27 SDK WWDC26 後に正式発表

出典: <https://developer.apple.com/news/upcoming-requirements/>

iOS 26 SDK でビルドしないと、アプリアップデートを App Store Connect にアップロードできなくなる。新機能の話ではなく、既存ユーザーへの配信継続のための義務対応。

iOS 26 対応の優先順位

優先度 対応内容 理由
🔴 最高 Xcode 26 へのアップグレードとビルド確認 2026年4月28日の期限に直結
🔴 最高 TLS 1.0/1.1 接続先がある場合は 1.2 以上に移行 URLSession の最低 TLS が 1.2 に変更
🟠 高 UIScreen.mainScreen 使用箇所の置き換え iOS 26 SDK で deprecated に昇格
🟠 高 Push to Talk アプリの entitlement 確認 旧 entitlement が iOS 26 SDK で非対応に
🟡 中 Liquid Glass デザインへの適応 標準 UIKit/SwiftUI は自動適応するが独自 UI は要確認
🟡 中 CoreData の Ubiquitous キー使用確認 iOS 26 SDK でビルドエラーになる

ツールの足場をそろえる

iOS 26 対応でも iOS 27 先行検証でも、最初に詰まるのは OS の API より build 周りのことが多い。足場を先に固める。

ツール 推奨バージョン 備考
Xcode 26.4.1 以上 4月28日以降の提出に必須
Swift 6.0(Swift 5.x も引き続き対応) Swift 6 strict concurrency を推奨
SwiftUI iOS 26 SDK 同梱版 Liquid Glass 対応の新コンポーネント追加
iOS Deployment Target 16 以上を推奨 iOS 15 以下は市場シェアが急速に低下

Swift 6 モードへの移行で一番よく出るのは CoreData 周りの並行性エラー。NSManagedObject@MainActor 外から触ると警告が出るようになっているので、context.perform ブロックの中に閉じ込める形で直す。

actor DataProcessor {
    func process(context: NSManagedObjectContext) async {
        await context.perform {
            // CoreData 操作は context.perform 内で
        }
    }
}

iOS 26 で引っかかりやすい動作変更

TLS 最低バージョンの変更

iOS 26 SDK にリンクしたアプリでは URLSession と Network framework の TLS 最低バージョンが 1.0 から 1.2 に変更される。

社内システムや外部 API が古い TLS 設定のままだと、iOS 26 SDK でビルドしたアプリから通信できなくなる。

// 旧 TLS を許容する例(非推奨。やむを得ない場合の一時対処)
let config = URLSessionConfiguration.default
config.tlsMinimumSupportedProtocolVersion = .TLSv10 // 警告が出る
let session = URLSession(configuration: config)

本来は接続先サーバー側を TLS 1.2 以上に直すのが正しい対応。サードパーティ SDK 経由の通信も含めて確認しておくといい。

UIScreen.mainScreen の廃止

以前から非推奨だった UIScreen.mainScreen が iOS 26 SDK で deprecated に昇格した。マルチウィンドウ・iPadOS のシーン対応との互換性のため、画面サイズは UIWindowScene から取得する方式へ移行する。

// Before(非推奨)
let screenWidth = UIScreen.main.bounds.width

// After(推奨)
if let scene = UIApplication.shared.connectedScenes
    .first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
    let screenWidth = scene.screen.bounds.width
}

Push to Talk entitlement の変更

com.apple.developer.pushkit.unrestricted-voip.ptt entitlement が iOS 26 SDK では動作しなくなる。iOS 16 以降の Push to Talk framework への移行が必須。

CoreData の iCloud 同期キー削除

NSPersistentStoreUbiquitousContentNameKey など、10年以上前に deprecated になっていた iCloud ubiquitous 同期用キーが iOS 26 SDK でビルドエラーになる。移行先は NSPersistentCloudKitContainer(iOS 13〜)または SwiftData(iOS 17〜)。

Liquid Glass デザインへの適応

標準の UIKit / SwiftUI コンポーネント(ナビゲーションバー、タブバー、シートなど)は自動的に新デザインに適応する。独自描画のカスタム UI は、背景ブラー・グラスエフェクトとの重なりを実機で視覚確認したほうがいい。

iOS 27 先回り確認(WWDC26 は 2026年6月8〜12日)

WWDC26 は 2026年6月8〜12日。例年どおり初日に新 OS が発表されて Beta 1 が公開される。iOS 27 のリリースは 2026年9月の見込み。

確認すべき点 優先度 対応タイミング
iOS 26 SDK 対応を先に完了させてから iOS 27 Beta 検証を開始する 🔴 最高 2026年4月28日まで
Foundation Models framework(オンデバイス LLM)の採用可否を社内で検討 🟡 中 WWDC26 以降
Declared Age Range API の対応要否(青少年向けコンテンツがある場合) 🟡 中 WWDC26 以降
App Intents の拡張(Siri・Spotlight 連携の深化) 🟡 中 WWDC26 以降
Liquid Glass 適応の完成度を iOS 27 デザイン変更に照らして再確認 🟡 中 WWDC26 以降

iOS 26・27 同時対応のテスト優先度

機能カテゴリ iOS 26 確認項目 iOS 27 beta 確認項目
ネットワーク通信 TLS 1.2 未満接続の洗い出しと修正 接続先 API の新セキュリティ要件対応
レイアウト・UI Liquid Glass と重なるカスタムビューの視覚確認 新デザインガイドライン変更の反映
データ永続化 CoreData ubiquitous キー使用有無の確認 SwiftData / CloudKit 移行の完了確認
Push 通知 APNs 証明書・Push to Talk entitlement の確認 通知 UI の iOS 27 表示崩れ確認
画面サイズ UIScreen.main 置き換えによるレイアウト変化の確認 iPadOS マルチウィンドウ対応の完全性確認
サードパーティ SDK iOS 26 対応済みバージョンへの更新 iOS 27 beta 対応の各 SDK バージョン確認

日本の業務アプリで引っかかりやすいところ

リスク項目 内容 対処方針
社内 VPN のレガシー暗号アルゴリズム DES/3DES/SHA1-96/SHA1-160 が IKEv2 VPN で非対応に。NetworkExtension 経由の VPN アプリは要確認 AES-256/SHA-256 + DH group 14以上に更新
イントラネット通信の TLS バージョン 古い社内 Web サービスや勤怠・経費精算システムが TLS 1.0/1.1 のまま残っている可能性 社内サーバー側の TLS 設定を先行して棚卸し
和暦・日本語入力の挙動変化 TextKit 2 の自然テキスト方向処理が変更された。iOS 26 SDK でビルドすると日本語テキストの方向解決ロジックが変わる場合がある 縦書き・日本語混在テキスト表示を実機確認
Apple Intelligence の公開範囲 Foundation Models framework は Apple Intelligence 対応デバイスのみで動作。日本語対応の一部機能は段階的展開 デバイス非対応時の fallback 実装を確認
社内 MDM・デバイス管理 Xcode 26 ビルドのアプリが MDM プロファイル下で正常動作するか確認が必要 社内配布環境でのテストフライト配布を IT 部門と連携して早めに実施

上げる前に見るところ

まず古い API を雑にでも洗うのが早い。

grep -R "UIScreen\.main\b\|unrestricted-voip\.ptt\|UbiquitousContentName\|UbiquitousContentURL" ./

TLS 周りも同様に引っかけておくと見落としが減る。

grep -R "TLSv10\|TLSv11\|tlsMinimumSupported\|kCFStreamSSLLevel" ./