甘いものが好きです

iOS App開発時に感じた疑問や課題、その他の雑感などを書いていきます。

Xcode

CocoaPods利用時にUnit Testがfile not foundエラーにより実行できない場合の対処方法

CocoaPods利用時にXcodeでCommand+UによりUnit Testを開始しようとしたら、外部ライブラリのヘッダファイルをインポートしているところについて次のようなエラーが出て、テストが開始できなかった。 '....h' file not found 対処方法をまとめておく。*1 *1:C…

Command Line Tools for Xcodeを古いバージョンに戻す

同一マシンに複数のバージョンのXcodeをインストールしている状況下において、新しいバージョンの方のXcodeに対応するCommand Line Toolsをインストールすると、各種ツールはこの新しいXcodeに対応するCommand Line Toolsを参照するようになってしまう。*1何…

XcodeのコードエディタからメソッドのCallerをたどる方法

Xcodeでは、プログラムを実行しなくてもコードエディタ上でメソッドのCallerの一覧を表示したり、Callerにジャンプしたりできる。 XCode find caller functions - Stack Overflow 上記ページの内容はXcode 4.5 beta時点での情報とのことだが、この機能は現時…

Xcodeのドキュメンテーション閲覧用にDashをインストールしてみた

APIドキュメントを閲覧する上で「Dash」というアプリが便利だという情報を目にし、無料だということもあってさっそくインストールしてみた。 Mac App Store - Dash (Docs & Snippets) インストール後、初回起動時にXcodeのドキュメントを読み込まれ、すぐに…

XcodeでLeap Motion対応アプリ開発の準備(Objective-C版)

Leap Motion対応アプリはさまざまなプログラミング言語で開発することができるが、今回は、Xcode上で主にObjective-Cを使ってMac Appを開発することにした。開発環境は次のとおり。 OS X 10.8.2 (12C60) Xcode 4.6 (4H127) Leap Developer Kit 0.7.3 Leap Mo…

Xcode 4.6から利用可能になったビルド設定「Empty Loop Bodies」を試してみた

以下の記事によると、昨日リリースされたXcode 4.6では新たなビルド設定「Empty Loop Bodies」が追加されたとのこと。 空ループをワーニングで見つける | Cocoaの日々情報局 この設定を有効にすると、if文やwhile文などで条件を記述した括弧の直後にセミコロ…

ビルドエラー「While reading ... pngcrush caught libpng error」への対処方法

Xcodeプロジェクトで使用している画像を新しいものに差し替えた後、実機をターゲットにしてビルドすると以下の3つのエラーが出るようになった。*1 While reading [プロジェクトで使用している画像へのフルパス*2] pngcrush caught libpng error: Could not f…

警告「PerformSelector may cause a leak because its selector is unknown」への対処

セレクタを指定してオブジェクトにメッセージを送る処理について。 SEL sel = @selector(doSomething); if ([obj respondsToSelector:sel]) { [obj performSelector:sel]; } このようなコードをビルドすると、ARC有効時にperformSelector:の行について次の警…

警告「Unsupported Configuration: … view outlet and NIB Name set」への対処

XcodeでiOS Appのプロジェクトをビルドしたときに、xibファイル内のView Controllerについて次のような警告が出ることがあった。*1 *2 Unsupported Configuration … view outlet and NIB Name set 「view outlet and NIB Name set」で検索してみると、この警…

Xcodeに標準でついてくる帯域制限アプリ「Network Link Conditioner」

Xcodeに標準でついてくるNetwork Link Conditionerという帯域制限アプリが次の記事で紹介されていたので試してみた。 標準で付いてくる開発用ネットワーク帯域制限アプリ | Cocoaの日々情報局 導入方法 /Developer/Applications/Utilities/Network Link Cond…

breakpointで停止すると必ずアセンブリコードが表示されてしまう状態を解決する方法

Xcodeをv4.3.1に更新した後あたりで気がついたのだが、デバッグ中にbreakpointで停止すると、該当箇所のソースコードではなくアセンブリコードが必ず表示されるようになってしまっていた。一応breakpointを設定したあたりで停止しているようなのだが、ステッ…

Xcodeをv4.3からv4.3.1に更新

Mac App StoreでiOS 5.1に対応したXcode v4.3.1が公開されたので、さっそくインストールしてみた。 アップデート手順 Mac App Storeの「アップデート」タブからXcodeのアップデートを開始。アップデート完了後、Xcodeを起動すると初回起動時には「Xcode Comp…

エラー「Couldn't register [App Identifier]」への対処

実機やシミュレータでiOS Appのデバッグをしようとすると、Appの起動前に次のようなエラーメッセージが出てAppが実行できないことがある。 Couldn't register App Identifier with the bootstrap server. Error: unknown error code. This generally means t…

Static Libraryでカテゴリを使用する場合の注意点

カテゴリの定義を含むStatic Libraryを使用すると、そのカテゴリで定義しているメソッドを呼び出すところで例外が発生してプログラムがクラッシュしてしまうことがあった。原因を調べてみたところ、まさに次の記事で説明している通り、リンカフラグに "-ObjC…

xcode-selectコマンドでXcode.appのパスを指定する

Xcode v4.3からXcode.appのパスが変わった*1ため、xcodebuildコマンドでエラーが発生することがある。このときには、xcode-selectコマンドでXcode.appのパスを指定するとよいとのこと。 参考 xcodebuildにXcodeの場所が変わったことを教える - Hello, world!…

Xcodeをv4.2.1からv4.3に更新

Xcode v4.3がMac App Storeで公開されたので、v4.2.1からv4.3に更新することにした。*1Mac App StoreでXcode*2についての「無料」ボタンを押下するとボタンの表示が「Appをインストール」に変化する。この状態のボタンをさらに押下すると(認証が行われてい…

BTServerのCPU使用率が非常に高くなる問題はXcode 4.2.1で解決?

Xcode 4.2でBTServerのCPU使用率が非常に高くなる問題 以前、Mac OS X 10.6.8 + Xcode 4.2の環境下でBTServerのCPU使用率が非常に高くなる件について記事を書いた。 Xcode 4.2付属のiOSシミュレータを起動し続けるとBTServerのCPU使用率が非常に高くなる(追…

Mac App Store経由でXcodeがインストールされていない…と思ったら

Snow LeopardからLionにアップデートしてXcode 4.2.1がインストール可能に 本日、ようやくMac OS XをSnow LeopardからLionにアップデート。Snow Leopard時代には既にXcode 4.2をインストールして使用していたのだが、Xcodeはバージョン4.2.1からSnow Leopard…

Xcode 4.2付属のiOSシミュレータを起動し続けるとBTServerのCPU使用率が非常に高くなる(追記あり)

Xcodeでビルドと実行した際に立ち上げたiOSシミュレータをそのまま起動しっぱなしにしておくと、BTServerというプロセスのCPU使用率が100%近くに達してMacのファンがうなりをあげる。発生した環境は次のとおり。 Mac OS X 10.6.8 Xcode 4.2 (Build 4C199)*…

iOS 5.0ではUIActivityIndicatorViewが表示されなくなる場合があることに注意

iOS 5.0ではUIActivityIndicatorViewが表示されなくなることがある UIActivityIndicatorViewを使用しているプロジェクトをXcode 4.1以前で作成し、そのプロジェクトをXcode 4.2でiOS 5.0向けにビルド・実行すると、UIActivityIndicatorViewが表示されないこ…

Localizable.strings編集後に起こるビルドエラー「validation failed: The data couldn’t be read because it has been corrupted.」

半年に1度くらいしてしまうミス。二度としないと誓いながらメモ。Localizable.stirngsを編集した後でビルドすると、次のようなエラーが出ることがある。 error: validation failed: The data couldn’t be read because it has been corrupted. ファイルが壊…

エラー「Error Starting Executable '[App名]'」への対処

エラー内容 Xcode*1でBuilding SettingsのCode Signingを変更した後で実機(iPod touch / iPhone / iPad)を対象として「ビルドと実行」をすると、ビルドに成功しデバイスにAppがインストールされたところで次のようなエラーダイアログが表示され、Xcode経由…

警告「Multiple build commands for output file」への対処

Xcodeのプロジェクトにファイルを追加した後でビルドを行うと、次のような警告が大量に出てしまうことがあった。*1 Check dependencies [WARN]Warning: Multiple build commands for output file /Users/____/Library/Developer/Xcode/DerivedData/____/Buil…

Xibファイルのローカライズの方法と注意点

XcodeでXibファイルのローカライズを行う方法。*1Xcodeでローカライズ対象のXibファイルを選択してアクティブにしている状態で、File Inspactorの「Localization」セクションにある「+」および「-」ボタンを押下することにより、ローカライズを行うことがで…

エラー「putpkt: write failed: Broken pipe」への対処

Xcode*1でビルドして実行しようとしたとき、Appが立ち上がる直前くらいのタイミングで「putpkt: write failed: Broken pipe」というエラーダイアログが表示され、Appが実行できなくなることがあった。デバイス側でいったんAppを削除したり、Xcode側でクリー…

Xcodeのエディタで文字コード変換を行う

Xcodeのエディタ内で日本語を使えない(打ち込むことができても、ビルド時に警告が出たり、編集後のファイルを他のアプリケーションで読み込むと文字化けしてしまう)場合には、適切な文字コード(例えばUTF-8)に変更すればよい。*1Xcodeで対象のファイルを…

他人から受け取ったXcodeプロジェクトのビルド時にCode Sign errorが出たら

同僚から受け取ったXcodeプロジェクトをビルドして実機で実行しようとすると「Code Sign error: [...] doesn't match any valid certificate / private key pair in the default keychain」というエラーでビルドに失敗することがある。既に何度か経験したの…

iOS SDK 4以降をインストールすると過去のiOS SDKが自動削除される件への対処(追記あり)

追記(2011年3月10日) Xcode 3.2.6 and iOS SDK 4.3をインストールしたところ、下記現象は見られなかった。現在ではiOS SDKが自動削除されることはないのかもしれないが、今後のバージョンのSDKをインストールする際に再びこの問題が発生する可能性を考慮し…