その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Xcode

ひとつのプロジェクトで複数の Bundle identifier を使い分ける方法

インハウスビルド用のエンタープライズアカウントとリリース用アカウントがある場合、 com.shu223.hoge(リリース用の Bundle ID) com.shu223.hogeep(エンタープライズ用の Bundle ID) といった感じで、同じアプリでありながら、2つの Bundle identifier …

Xcode の Guard Malloc オプション

Xcode 4 で、 Edit Scheme → Debug を選択 → "Diagnostics" タブを選択 と進むと、下記のような設定項目が出てきます。 このうち、"Enable Zombie Objects" にはいつもチェックを入れるのですが、他のチェック項目はどういう効果があるんだろう?と思いつつ…

ARC の有効/無効をファイルごとに設定する方法

プロジェクト全体でARCを有効にした状態で、一部ファイルを無効にしたい場合は、 1. プロジェクト設定画面のBuild Phasesタブを開く 2. ARCを無効にしたいファイルをまとめて選択 3. リターンキーを押すとダイアログボックスが出てくるので、"-fno-objc-arc"…

Python スクリプト実行時に UnicodeDecodeError が出る場合の対処方法

Xcode の Run Script 機能を使ってみようと思い、Github で拾ってきた Python スクリプトを実行しようとすると、下記のようなエラーが出て困りました。 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position xx: ordinal not in range(128…

Xcode 4 のプラグイン開発方法

ちょっと調べてみたのですが、 http://stackoverflow.com/questions/6316921/xcode-4-plugin-development As far as I know there is no official way to create Xcode 4 plugins (just like there wasn't one for v3.x). "Xcode 4 does support user-define…

リファクタリング講座メモ

5/29にRainbowApps卒業生の方が主催された合宿に参加した際、そこでバスケさんが話されていた「公開リファクタリング講座」が非常にためになる内容だったので、そのときのメモを公開しておきます。 メモリまわりのデバッグ/リファクタリング leaksが有名な…

バッテリー消費量の計測方法など、iOSのデバッグに関するドキュメント

NSZombieEnabledをYESにするとか、そういう開発ノウハウの情報ソースはどこにあるんだろうと不思議だったのですが、iOS Dev Centerのドキュメントを漁っていて発見しました。 iOS Debugging Magic たとえばNSZombieEnabledなどの話は、Table 10 Foundation e…

Instruments の Leaks の見方(Live Bytes や Living の意味)

このLive BytesやらLivingやら、タイトルから大体推測できるものの、ちゃんとした定義をしりたかったのですが、ヘルプ内を探しても見当たらず、iOS開発関係の本を見てもどの値が何とまでは書いてくれていませんでした。たまたまググったら出てきたので、下記…

Xcode 4 の IB で UITabBarController に UINavigationController を組み込む方法

Xcode3 の Interface Builder ではインスペクタから選ぶだけでできたのですが、 http://iphone-app-developer.seesaa.net/article/130194298.html (3) Inspectorの左端のtabでTab Bar Controller/View Controllersの項目の、Titleが"First"の部分を"View Con…

ビルド設定の "Other Linker Flags" に "-ObjC" を設定する意味

とある静的ライブラリ(拡張子.a)をリンクして使用しようとすると、実行時になぜか unrecognized selector sent to class XXXX とエラーが出るので、ビルド設定を見直したところ、"Other Linker Flags"(Xcode3.xで言えば「他のリンカフラグ」)に "-ObjC" …

2つの Xcode 4 プロジェクトのビルド設定を比較する

・アプリケーション名.xcodeproj のパッケージの中身をFinderで開く(もちろんターミナルでアクセスしてもok) ・パッケージ内にある project.pbxproj がプロジェクトの設定ファイル。これをXcodeなりテキストエディタなりで開く ・project.pbxproj の中の、…

Xcode の環境変数一覧

Xcode4からビルドパスが変更になり、ライブラリ検索パスとかヘッダ検索パスとか指定してあるXcode3.xで作成されたプロジェクトではビルドに失敗したりします。 (参考情報) http://blog.takezou.com/2011/04/22/xcode4のビルドパス/ http://akisute.com/201…

Xcode 4 でのプロジェクトテンプレート作成手順

以前ファイルテンプレートを自作する方法について書いたので、プロジェクトも同じように簡単にできると思っていたら、どうも勝手が違う様子。 僕がやったプロジェクトテンプレート作成手順を書いておきます。 (標準のTab Bar Applicationテンプレートを複製…

Xcode 4 に自作ファイルテンプレートを追加する

Xcodeで新しいクラスを作ろうとすると、 こんな感じでテンプレートを選択できます。 が、見ての通りあんまり種類がありません。 (よく使うのはUIViewControllerのサブクラスと標準クラスぐらい) APIをコールするクラスとか、DBにアクセスするクラスとか、U…

Xcode 4 の Code Snippet Library にスニペットを追加する

先日のエントリーに引き続き、繰り返し作業撲滅シリーズ。 Code Snippet Library はXcode4で、Viewメニューから Utilities -> Code Snippet Library で開くとウィンドウ右下あたりに出てくるユーティリティで、ドラッグ&ドロップでコードスニペットを貼付け…