原因がよくわからないのですが、iOSアプリをデバッグ中にNSExceptionが発生してアプリがクラッシュしてしまった時、その詳細がXcodeのコンソール上に表示されなくなってしまいました。普通はデフォルトのexception handlerがうまい具合にやってくれるのですが、何らかの理由でそれがうまくいかない場合があるようです。自分でスレッド立ててるとかでしょうか・・・ 上図のように、例外が発生している箇所にブレークポイントをおいてどこで発生したのかを知ることはできるのですが、実際には発生箇所がわかっても発生原因がさっぱりわからないというケースもあります。例えばiOSのシステムが例外を発生させたときや、コードが公開されていないライブラリが例外を発生させたときなどです。 さて、このようなときは発生しているNSExceptionのdescriptionを直接読めれば便利そうです。というわけで
potatotips #1 で LT した内容が好評(?)だったのでもう少し紹介してみようかなと思います。 発表した内容は「Debugger の Tips」です。 当日のまとめは「クックパッドのLT会に参加してきたのでiOSのtipsをまとめる」がおすすめです。 さてさて LLDB がデフォルトの Debugger となり久しいですね。 しかし Xcode から LLDB を扱う情報をあまりみかけません。かなしいですね。 というわけで今回は LLDB にフォーカスをあてて少し紹介してみようと思います。 (決して GDB もあわせて書くのが面倒くさかったというわけではありませんw) 設定ファイル shell での .~rc ファイルみたいなものですね。 Xcode から起動した LLDB だと以下の2つのファイルのどちらかが読み込まれます。 ~/.lldbinit-Xcode ~/.lldb
ちょっと今更な感じもありますが、iOS開発でGitを使うときのTipsを紹介します。 Gitそのものの使い方は理解している前提のもとで書きます。 バージョン管理する対象 Xcodeのプロジェクトにはバージョン管理する上で結構余計なものが入っています。 Gitで管理すべきでないもの Xcodeの作業データ Xcodeのプロジェクトは.xcodeprojですが、こいつ自身はディレクトリになっていて project.pbxproj project.xcworkspace xcuserdata というファイルが入っています。このうち、Gitで管理するべきものはproject.pbxprojです。 その他のものはXcodeの状態(グループを開いてるかなど)を管理しているものなので、 プロジェクトのバージョン管理対象としては適切ではありません。 ビルドデータ xcodebuildコマンドを実
Xcode 5のxcodebuildでテストを実行するにはxcodebuild testを使うといいみたいです。 man xcodebuildのbuildactionの説明に以下のように書かれているので-scheme SchemeNameが必要となります。 Travis CIなどの手元以外の環境でbuild schemeを利用する場合には、他の環境でも同じbuild schemeを使えるようにする必要があるので、 あらかじめXcodeのManage SchemeというメニューのShareというチェックボックスを有効しておく必要があります。 This requires specifying a scheme and optionally a destination. Xcode 4のときにはMakefileを以下のように書いていましたが 1 2 3 4 5 6 7 test: xcodebu
はじめに Xcode 5 で XCTest という新しいテストフレームワークが投入されました。OCUnitを使ったプロジェクトからのコンバートもできるので、それを置き換えるものと考えて良さそうです。また Test Navigator という新しいナビゲータが導入され、テストターゲットとの親和性が高くなっているようです。さらにコマンドラインからのテスト実行もサポートされました。 導入 何も考えなくてもプロジェクトを作成すると勝手にTestターゲットが作成されます。素敵です。 メニューからProduct -> Test 又は Command + U でテストが実行されます。Testクラス新規作成時はXCFailが1つ設定されているので必ずテストが失敗します。この辺はOCUnitと変わりません。 Test Navigator で動作させる ナビゲータから↓のアイコンを選択します。 最後に実行した
Code Coverage is described on Wikipedia as: … a measure used to describe the degree to which the source code of a program is tested by a particular test suite. A program with high code coverage has been more thoroughly tested and has a lower chance of containing software bugs than a program with low code coverage. Less bugs? Yes, please! The first big step to take on your road to better software q
By Ole Begemann More about me and contact info April 25, 2013 Last update: December 13, 2013 Compiler warnings are one of the most helpful tools for developers. The compiler can not only warn you about obvious mistakes (such as a method you forgot to implement); it also identifies many code patterns that, though syntactically correct, are potentially dangerous (like signed/unsigned conversion) or
2013-04-14 証明書、秘密鍵、Provisioningを別のマシンへ移行する Tips 実機にアプリを転送して動作確認する場合、マシンに証明書、秘密鍵、Provisioningファイルが必要です。Macを新しく買い換えたときや複数台マシンで開発したいとき、証明書などをそのマシンにも入れる必要があります。今回はその方法を説明します。 証明書と秘密鍵の書き出し 現行のマシンから証明書と秘密鍵をセットにして1つのファイルとして書きだす必要があります。別々のファイルにして新しいマシンに入れようとしてもうまくいきません。 以下、セットにして書きだす方法です。 Finderからキーチェーンアクセスを開きます(アプリケーション > ユーティリティにあります) CTRLキーを押しながら証明書と秘密鍵を同時に選択します。 メニューからファイル > 書き出す...を選択。p12ファイルとして保存。 保
By Ole Begemann More about me and contact info March 31, 2013 Last update: March 3, 2014 Working with Cocoa Auto Layout for the first time is very different from the springs and struts model Cocoa developers have known for more than a decade. Despite the complexity of Auto Layout, I have found that you need to understand just a few basic rules to make the concept click. This article is an attempt
NSArray MethodSwizzlingを使用しNSLogで日本語文字列を文字化け(正確に言うとUTF)させずに出力するObjective-CiPhoneiOS NSLog(@"%@", array);で配列内の要素をログに出力することができますが、日本語(マルチバイト)文字列を含むと文字化け(正確に言うとUTF)して出力されます。 これを文字化けせずに出力する方法です。 きっかけ オブジェクトを文字列化するときの書式を変えるにてNSDateのdescriptionをMethodSwizzlingして書式を変えていたので、NSArrayも同じように解決するかなと思いやってみました。 実装 NSLog(@"%@", array);はdescriptionWithLocale:が暗黙的に呼ばれます。 ですのでdescriptionWithLocale:をMethodSwizzlingしそ
Current version 1.3.6 requires Mac OS X 10.7 and Xcode 6 or later ⚠️ Deploymate is sherlocked Starting version 9, Xcode has the ability to warn about unavailable API usage making Deploymate effectively obsolete. If you are stuck on an older platform you can still download Deploymate but make sure the demo version works as expected before making the purchase. We've all been there. Your app is targe
入門編と初級編の差は何かと申し上げますと、それはただの気分だとしか説明しようがないわけですが、そのあたりについては、さらっとスルーしていただきまして。 以下三つほど書いてきました。 iOS向け Xcode開発Tips初級編 -とりあえず最初にやってること- iOS向け Xcode開発Tips初級編その2 -ちょっと便利なショートカットキー8つ- 【iOS】 Xcode開発Tips入門編その3 -NSLogあれこれ3つほど- で、今回はブレークポイントを。 ある程度ご存知の方もいらっしゃるかと思いますので目次を 目次 1.ブレークポイントの追加及び削除もろもろ 2.ブレークポイントで停止してから変数を編集 3.Step Over / Step into / Step out もろもろ 4 ブレークポイントの編集 - 条件指定 - 5 ブレークポイントの編集 - オプション - 6 ブレークポ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く