potatotips #87 2024.04.26
Xcode Cloudは、Xcodeに組み込まれた継続的インテグレーションおよびデリバリーサービスで、高品質なアプリの開発と配信を高速化します。アプリのビルド、自動テストの並列実行、テスターへのアプリの配信、ユーザーフィードバックの確認と管理に役立つ、クラウドベースのツールを1か所で利用できます。 2024年1月以降、すべてのApple Developer Programメンバーシップには、標準としてXcode Cloudでの毎月25時間分のコンピューティング時間が追加料金なしで含まれることになりました。すでにXcode Cloudに無料でサブスクリプション登録している場合は、追加の手続きや操作は必要ありません。まだ利用していない場合は、わずか数分でXcode Cloudでのアプリ開発を無料で開始する絶好のチャンスです。 Xcode Cloudについてさらに詳しく
GitHub Actions で iOS アプリをビルドするときの Xcode のインクリメンタルビルドを有効にするためのキャッシュ設定について解説します。 CI でのビルドで Xcode のインクリメンタルビルドが使えるようになれば、毎回 CI 上でフルビルドし40分程度かかっていたプロジェクトが、差分のみのビルドでビルド時間が5分に短縮されたりすることが期待できます。 環境 この記事では、以下の環境で調査・検証した結果を記載しています。 ローカル環境 macOS Ventura 13.5.1 Xcode 14.3.1 (14E300c) APFS (Encrypted / Case Insentive) GitHub Actions 環境 macos-latest macOS Monterey 12.6.8 Xcode 14.2.0 (14C18) 結論 結論としては xcode-ca
動画配信アプリ「CL」でiOSエンジニアをしている下村 (@s2mr)です。 CL(シーエル)はLDH所属グループ・アーティストのライブキャスト動画やMVを視聴できるサービスです。 2020年6月にリリースしてから今年で3年目を迎えるプロダクトになり、開発期間を含めると4年目になります。 一つのアプリに配信機能も含まれているため、アプリの規模は大きいものになります。 今回の記事では、ビルド時間を改善するためにCLで試してきたことをまとめてみたいと思います。 はじめに 本記事では、私たちの開発環境と、それが抱えるビルド時間の問題についてお伝えします。 まず、以下が私たちの開発環境の概要です。 CIツール: CircleCI(x86_64 macOS) Xcodeのバージョン: 14.2 使用しているMac: MacBookPro M1Max (Ventura 13.2.1) プロジェクトが大
※本記事は弊社が技術書典 14 で無料配布する同人誌「ゆめみ大技林 '23」の寄稿です。追筆や訂正等がある場合はこの記事で告知します。 皆さんは iOS 開発においてどんな CI を利用しているでしょうか。Bitrise?Circle CI?いやもしかすると Jenkins のお世話をしている方もいらっしゃるのではないでしょうか。いずれにせよ、CI/CD は現代の開発において必要不可欠な環境と言っても過言ではないでしょう、なぜなら CI/CD こそ我々に提出されたコードをマージする自信をもたらせてくれているのです。 そんな中、アップルがついに公式の CI サービスを 1 年の Beta を経て昨年正式リリースしました。その名も Xcode Cloud です。名前のとおり、Cloud で動く Xcode とイメージして差し支えないでしょう。 筆者が考えるこの Xcode Cloud の最大の
GitHub Actions で Flutter アプリの TestFlight 用バイナリ(ipa)をビルドする方法を調べると「Automatically manage signing」 を無効にしてビルドする記事が出てきます。 オプションを有効にしたままビルドする方法が見つからなかったので調べました。検証は Flutter で行いましたが、Flutter を使わない iOS ネイティブのプロジェクトでも同様の手順でビルドできると思います。 Automatically manage signing と Cloud signing Automatically manage signing について改めて調べると、Xcode13 以降では Automatically manage signing を有効にすると Cloud signing という機能が使われるようです。 Cloud sign
参考 https://developer.apple.com/xcode-cloud/ 計算に使用したプラン: (最安のプラン) $14.99 / month 25 hours / month 1分のビルドに必要な料金 1時間のビルドに必要な料金: $14.99 / 25 = $0.5996 1分のビルドに必要な料金: $0.5996 / 60 = $0.009 ≒ 1.21円(1ドル134円換算) GitHub Actions 参考 https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions https://github.com/pricing 計算に使用したプラン: GitHub Team (1 User) $4.00/month 3,00
Xcodeによるユニットテストの実行結果をCIサービスの画面で確認するのはなかなか大変です。 GitHubにはCIのステータスをそこそこリッチな画面表示として返せて、Pull Requestの画面から1クリックでアクセスできるGitHub Checksがあるのでそこで確認できればとても便利です。 ということでXcodeのテスト結果をGitHub Checksに表示するGitHub ActionとBitrise Stepを作りました。 github.com Xcodeがテストを実行した際に生成するXcode Result Bundleというテスト結果やログ、コードカバレッジ、スクリーンショットなどをすべてまとめたデータを解析して、Markdownの形式でまとめてGitHub Checks APIにPOSTする、ということで実現しています。 次のように、テストを実行する際にXcode Resu
チームでiOSアプリの開発をしていると、ビルドのコストが肥大化しがちです。ピクシブでは、ビルドとテストをMac mini上に構築したJenkinsで行っているのですが、ビルドキューが詰まり、開発速度が上がりにくくなっていました。 これを改善するため、最近、iOSチームのビルドサーバーを、Mac mini 1台から3台に増やし、マスター・スレーブ環境でビルドできるようにしました。今回、そのための設定について、エンジニアの @anchan から紹介します! ビルドサーバーの環境設定は、GitHubに公開しています! モチベーション Xcodeは1台のマシンでビルドを並列化できません。チームメンバーとアプリの数が増えるにつれ、それに比例してJenkinsのビルドキューが詰まるようになりました。 Mac mini 1台では厳しくなってきたので、Mac mini 3台でJenkinsのマスター・スレ
前回はビルド設定とスキーマにより本番環境とテスト環境を数クリックで切り替えられる仕組みを説明しました。 今回はTestFlightによるアプリ配布と、Jenkinsを組み合わせてアプリ開発者以外でもアプリ配布ができるようになる仕組みの構築について説明します。 はじめに 背景と問題点 私がRettyで仕事を始めたとき、アプリを配布する仕組みは特になく、アプリの評価が必要になるたびに実機を借りてインストールを行い、評価をしていました。その後、会社のメンバーやインターンの数が増えてくるにしたがって、以下のような問題が出てきました。 評価を行うメンバーの全端末にそれぞれインストールするのが煩雑になってきた 開発者の数は増えたがiOS開発者は増えなかったため、インストール依頼の負荷がiOS開発者にかかるようになった 開発者の増加にともない開発環境が増え、ビルド設定とスキーマでカバーしきれなくなってい
以前作ってGithubに公開していた CrashMonkey というツールについて紹介します。 Github:CrashMonkey CrashMonkey概要 iOSのアプリケーションをモンキーテスト(ランダムな操作をひたすら行う)するためのツールです。 動作イメージはこのデモ動画を御覧ください。 iPhone Simulatorの操作にはUIAutomationを使っていて、ベースとしてui-auto-monkeyを使わせて頂きました。 動作環境 以下の環境でのみ確認してあります。 Max OS X 10.8.4, 10.9.4 Xcode 4.6.3(Build version 4H1503), Xcode5.1.1 Ruby 1.8.7-p371 Rubyについては、1.9系, 2.0系でも動くと思います。 特徴 良い点 アプリのプロジェクト自体に変更を加えなくても実行することがで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く