KMP の xcframework を R2 にキャッシュして Xcode Cloud のビルドを速くする
Xcode Cloud で KMP を使うとビルドのたびに Gradle が xcframework を作り直します。入力のハッシュをキーにして Cloudflare R2 に xcframework を置きました。変更がないときは取得して展開するだけで済みます。
25 件の記事
Xcode Cloud で KMP を使うとビルドのたびに Gradle が xcframework を作り直します。入力のハッシュをキーにして Cloudflare R2 に xcframework を置きました。変更がないときは取得して展開するだけで済みます。
Xcode に依存する iOS 開発で AI エージェントをチーム展開するにあたり、ホストへの橋渡し・GitHub の PAT 分離・設定の3層分離・状態の永続化をどう設計したかをまとめました。
Xcode 27 の Xcode MCP に入っている Device Interaction 系のツールを実際に動かし、シミュレータ操作でできることを確認しました。
sim-use などの画面操作では触れられなかったカメラ映像やキーチェーンの中身、通信内容を、AppForceps と Mimicry の CLI から Claude Code が直接操作できるようにしました。
iOS シミュレータや Android のアプリデータを直接編集していて気づいた、ユーザーセッションの保存場所の違いを整理しました。iOS の Keychain は Container の外にあり、Android の暗号化データは Keystore の鍵に依存しています。
Safari MCP サーバーの登場記事をきっかけに WKWebView の検査方法を調べたところ、Google 公式の ios-webkit-debug-proxy で DOM や Cookie を取得できるとわかりました。使い方と Cookie 取得の手順を紹介します。
Patch (patchrelease.com) を自作の macOS アプリに組み込み、AppStore への審査提出を行わず SwiftUI の文言を差し替えた記録です。
iOS シミュレータと、Xcode で実機から取り出した Data Container を GUI で開いて、plist や SQLite をはじめ様々なファイル形式を編集・閲覧できる macOS アプリ AppForceps を作って公開しました。
iOS の Data Container を書き戻しても plist だけ古いままになる現象を cfprefsd のインメモリキャッシュという観点で整理し simctl / devicectl で再起動する手順をまとめました。
現時点で試せる Swift 6.4 の Concurrency 新機能を試してみました。