All downloads are hosted by Apple. Links on this site take you directly to Apple’s download pages. This is not an official Apple website. Please consider donating to help maintain it. Stay up-to-date via our JSON API, RSS feed, and Mastodon account.
はじめに AWAという音楽ストリーミングサービスでiOSエンジニアをやっている小梛です。 AWAでは、Build時間が長いことによる開発効率の低下が定期的に問題になっており、高速化のためにさまざまな試行錯誤を重ねてきました。 その概要については、昨年末CA.swiftというiOS勉強会において「Build時間改善」というタイトルでLTさせていただきました。 ただ、このLTから既に半年が経過し、Xcodeのアップデートもあったことで、一部挙動が変わっていたりします。 本記事では、最新データを再調査した上で、LTでは伝えきれなかった詳細部分についても含めてBuild高速化についてご紹介できればと思います。 目次 調査環境 Build時間の計測方法 Build設定の最適化 コードベースのCompile時間削減 Buildマシンの性能を上げる まとめ 調査環境 macOS Sierra / Xco
まとめ RAMディスクを作ってビルドすると早くなる SSD上でビルドすると9分 RAMディスクでビルドすると6分 Androidは未検証だが同じと思われる Macだととても簡単にRAMディスクが作れる Jenkins等、ビルドが主目的の場合に有効と思われる メモリが余っているならやる価値はある Mac OS XでのRAMディスク作成 Macではhdidコマンドを使うことで、メモリ領域をディスクとして使用することが出来ます。 メモリはSSDと比べても遙かに早く、R/Wの激しい処理にうってつけです。 また、rootでなくても作成できるため、非常に便利です ディスク作成手順 2つコマンドを実行するだけです。 hdid -nomount ram://4096000 # 指定した容量でRAMディスクが作成されます。 # /dev/disk2等作成された場所が返ります。 # ファイルシステムがないため
動機 複数プロジェクトのCIの為に、Xcodeを複数バージョン使い分けたいし、ビルドコマンドも使い分けたかった。 解決策 複数バージョンのXcode管理 検索した限りでは、手動でDL, リネームしてインストールなどの方法があったが、↓のものが一番良かった。 github.com rbenvやnvmのようなもので、XcodeをCLI上で複数バージョンインストール、切り替えしてくれる。 インストールには Apple Developer Program account が必要で、一度ブラウザでログインして規約等に同意しておく必要がある。 # インストール可能なバージョンリスト $ xcversion list # 任意のバージョンのインストール $ xcversion install 9.2 # 任意のバージョンに切り替え $ xcversion select
iPhoneアプリのクラッシュログからクラッシュの原因を探す。 必要なもの クラッシュログ dSYMファイル クラッシュログを取得 クラッシュログ一覧を表示 Devicesウィンドウを開く Xcode Windows -> Devices (Shift+Cmd+2) デバイスを選択 View Device Logs でクラッシュログの一覧を表示 クラッシュログのエクスポート 該当アプリのクラッシュログをCtrl+左クリック(右クリック) Export Log で任意のディレクトリに出力 dSYMファイルを取得 Organizerを開く Xcode Windows -> Organizer (Shift+Cmd+2) 該当アプリのクラッシュしたバイナリに対応するxcarchiveファイルを表示 該当アプリを選択 クラッシュした時のビルドをCtrl+左クリック(右クリック) Show in F
Xcode 9の新機能をご紹介 ついにXcode 9がリリースされました!この記事ではXcode 9で何ができるようになったのか、何が変わったのか個人的に気になった部分をメインにご紹介します。 ※記事中のスライド画像についてはWWDCのものを引用しています。 目次 全体的なパフォーマンス向上 Source Editor リファクタリングがSwiftに対応 & 機能強化 Rename Extract Method Extract Variable issueをワンクリックでFixできるようになった フォントサイズの増減がより簡単になった コードの折りたたみ & 展開 が 良くなった Markdownをサポート 新しいビルドシステム 新しいビルドシステムを使う方法 Group作成時にフォルダを作成 GitHub連携が強化された リポジトリをクローンしてみた Xcode上でブランチを作成し、プッ
TimeProfilerとはXcodeのInstrumentsに含まれているプロファイリング用のツールです。 Instrumentsユーザガイド XcodeでProfileビルドをすると、Instrumentsが立ち上がって選択できます。 TimeProfilerを立ち上げると、上部トレースデータが表示されていますが、今回の主役は下部にあるCall Treeです。 初期の設定だとシステムのメソッドなども混ざってとてもわかにくいので、上記の設定にチェックを入れておくと 作成したメソッドだけになるので見やすくなると思います。 TimeProfilerの使い方 | eラーニングをすべての人に!blog.eラーニング.co.jp これで、準備は出来たので後はアプリを触っていて重たい感じのするを見ていけば、Call Treeにメソッド毎の処理時間や処理の割合が表示されます。 例として、カレンダー画面
自分のiOSデバイスなら開発者ライセンスなして、アプリを動かせるようになるので、自動でコードを落してきてビルドして転送するタイプのアプリ配布補助をだれか初めてほしい。「brew install ios/hoge」でイスントールできる感じ— mzp (@mzp) 2015, 6月 10 Xcode7 からApple Developer Programに参加しなくて、iOSアプリの実機デバッグが可能になった。 これを利用し、Github等で公開されているソースコードをダウンロードし、自分のiPhoneにインストールするHomebrew拡張を作った。 例えば brew sparkling install SparkingSample でサンプル用のアプリケーションがインストールされる。 主な用途としては、次のようなアプリケーションの配布を想定している。 進捗時計のような雑なアプリケーション。Ap
Retired DocumentImportant: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid. An updated version of Build Settings Reference is now available in Xcode Help. To access it: 1. In Xcode, choose Help > Xcode Help, or open the Xcode Help website. 2. Search for “build settings.” Xcode uses build settings to specify aspec
Stencil an Xcode Plugin that allows you to create custom file templates for your iOS or OS X project supports both.swift() [and objc] Create custom Template in a couple of clicks you'll create a custom file template from existing selected files create New file from template simply select your custom template when creating a new file, saving you time and avoiding repititive tasks mould
概要 この記事でできるようになること 安定してInfo.plistの内容(ここではBuild番号)を変更できる ふつうにRun Scriptで編集するとタイミングによってすぐにアプリに反映されないことがあったりしたがそれが解消される Info.plistに差分がでないのでcommitのときに邪魔にならない なお、この方法を教えてくれた熊谷さんがこの方法に行き着いた経緯や所感がこちらに詳しくまとめられています。詳細や考え方などをきちんと知りたいかたは是非、熊谷さんの記事をご一読ください! 必要な設定 Preprocess Info.plist file でInfo.plistをビルド前に確定させる Run Scriptで${TEMP_DIR}/Preprocessed-Info.plistを編集する 以下、具体的な話をします。 経緯 これまで、 デバッグ用やArchive用のアプリのバージョ
XIB とは拡張子の名前。XML Interface Builder の頭文字である。 ※2010/01/07現在の日本版Wikipediaには、Xcode Interface Builderの略であると説明されているが、英語版Wikipediaにはそのような記述はない Xcode の一部である Interface Builder は、GUIを構成するパーツをドラッグ&ドロップすることにより、アプリケーションを作成していくソフトウェアである。内部的にはすべての情報をXML形式で保存し、出力する。この Interface Builder によって生成されるファイルがXIBファイルである。 なお、Interface Builder のバージョン3.1以前は、バイナリ形式の nib という拡張子のファイルを出力していた。NIB とは、NeXT Interface Builder の頭文字である。
参考 Testflight build notes via iTMSTransporter [self reloadData];: Automatic app creation and binary upload Command upload App/Ipa to the iTunes Connect App Store Redesign of itunes connect · Issue #38 · kovpas/itc.cli · GitHub TL;DR Xcode(厳密にはApplication Loader)に付属するiTMSTransporterまたはaltoolを使います。 上記のリンク先を見ればだいたいわかります。 altoolのほうが直感的なコマンドで簡単です。 iTMSTransporterはそもそもゲームのアイテムなど大量のIn-App Purchaseのメタデータを
まえおき 前回の記事でお伝えしたように、Xcode プラグインは Appleが公式でサポートしている機能ではありません。言い換えると、Xcode に関連するクラスの API が公開されていない上、いつ変更されるかわからない、ということになります。Xcode 4 のプラグインが Xcode 5 で動作しないのは、それが問題であることが多いです。 このように、Xcode プラグインを開発する上では、これらの公開されていない API を知る必要があります。 この記事では、Common Xcode4 Plugin Techniques » BlackDog Foundry を参考に、プラグイン開発の Tips や、Xcode で発行される通知や関連するクラスを把握する方法を解説します。 Xcode プラグインはシングルトンで作成する 既に公開されている Xcode プラグインでは、Xcode プラ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く