The identity 'iPhone Developer: **** doesn't match any valid, non-expired certificate/private key pair in your keychains

が出るとき。
  1. BuildIdeintifierがAppID(apple dev centerで参照)のと一致してないiPhone実機ビルドをするためのCertificateの作り方
  2. プロジェクトのcode signの指定を再設定してみる(普通recommendとかで自動で良いと思うが)
  3. 認証期限が切れていないか?(apple dev center のcertificateをチェック切れていれば認証を作り直して登録する)
  4. ライブラリ、デバイスのプロビジョニングが切れているので入れ替える
  5. 古いプロビジョニングは消す
  6. XCode再起動
  7. デバイス再起動

デバッグマクロ


ログにつかう書式等


ブレークポイント

例外ブレークポイントをはる。

ブレークポイントタブを表示させておいて、コードを選択して、左下の+を押して、例外ブレークポイントを選択する。

詳細をターミナル表示

  1. 例外ブレークポイントは削除しておく
  2. NSSetUncaughtExceptionHandlerを作成すると例外がでたときキャッチされる。
  3. [exception callStackSymbols]

シンボリックブレークポイント

特定のインスタンス変数のメソッドが呼ばれたときにブレークポイントが呼ばれるような設定ができる。
Symbolにメソッド名を書く。


gdb

lldb


po

po hoge

コード実行

(void)printf("foo")

有用なリンク


EXC_BAD_ACCESSのデバッグ

NSZombieEnabled
MallocStackLogging
NSDebugEnabled
をYESにする。

困ったとき

考えられるNotificationをかけてみる。

XCodeの再起動、iPhoneの再起動

クリーンして実行してみる。

versionの違いでAPIの仕様が変わってないかチェックする。

KVCで変数の変換を監視する

実機ビルド


デバッグHowto


コンパイル

duplicate symbols for architecture i386

Copy Bundle Resourceに同じxibが二つ入ってしまうと起きる事がある。

リーク

profileを実行してinstrumentを起動させる。
leaksを選択。プログラム実行。

検索窓であたりをつけたクラス名を入れると
リークしている場合検索される。

実機でリークチェックできない
→スキームでプロファイルのBuild configが間違っていないか


明らかにリークしているのを探知できない
→実装に仕方によっては発見できないリークもある。

突然落ちるとき

メモリ不足でビューが破棄されていないか?
addSubViewだけでretainされているようものはビューの破棄で破棄されてしまう。
きちんとretainして持っておく必要がある。(deallocで解放するなどする)

行番号の表示

Xcode preference TextEditing で line show にチェックを入れる。

実機のデバッグログを見る

オーガナイザーで接続デバイスのDevice logsを選択すれば見れる。

細々

ネットワーク速度を遅くしたい



単体テスト

UIテスト


最終更新:2013年04月03日 10:15