Tag Archives: Xcode

一つの Xcode プロジェクトで iOS7.0, iOS6.1, 3.5 inch, 4.0 inch 対応のアプリをビルドする

基本ルール

  • 開発は Xcode5 で行う
  • iOS7.0 と iOS6.1 で Targe を分ける
  • Provisioning Profile はちゃんと設定しておく。
  • iOS6.1 の SDK 用にシンボリックリンクを張っておく。 osx – How to point Xcode to my 10.6 SDK so it can be used as a “Base SDK”? – Stack Overflow
  • Preferences から iPhone Simulator 6.1 をダウンロードしておく。
  • 3.5 inch, 4.0 inch 両方に対応するために Storyboard は x, y が正しく設定されるように作って height, width を viewDidLoad のタイミングで調整する。

iOS7.0

  • BaseSDK, Deployment Target は 7.0 とする。
  • Storyboard の設定はは Open in 5.0 にして、基本の設定は 7.0 用の設定にする。
  • TabBarController の more に含まれる View を Storyboard で作る場合、 Simulated Metrics 設定は、Bar を全て None にするのが良い。

iOS6.1

  • BaseSDK, Deployment Target は 6.0 とする。
  • Storyboard iOS7.0 と同じものを利用して、うまく調整できない場合は iOS6.1 用の Storyboard を別に作る。
  • iOS7.0 の設定で Storyboard を使うと、iOS6.1 にインストールした際に UIButton 等いくつかの要素のスタイルがおかしくなるので、UIButton を継承した Class を storyboard で設定し、初期化時に iOS7.0 側に馴染むようなスタイルに統一してしまう。
  • TabBarController の more に含まれる View を Storyboard で作る場合、 Simulated Metrics 設定は、全て Inferred にする。

その他

“error: failed to attach to process ID 0” というメッセージが出て iOS シミュレータが動作しなくなる

Xcode のプロジェクトのディレクトリ構成を変えていたら、ビルド成功後に

“error: failed to attach to process ID 0”

というメッセージがログに出てシミュレータが動かなくなった。原因が色々あったのでその内容をメモ。

バンドルファイルのキャッシュがおかしくなっている場合

xcode4 – error: failed to attach to process ID 0 – Stack Overflow

  1. 以下のディレクトリに入っているファイルを消す
    ~/Library/Application Support/iPhone Simulator/{Version}/Applications and ~/Library/Developer/Xcode/DerivedData
    (この処理は Organizer の Project タブからでも実行できる)
  2. Product > Clean を実行する
  3. 再度ビルドを行う

デバッガーがおかしくなっている場合

ios simulator – Failed to Attach to Process ID Xcode – Stack Overflow

  1. ツールバーの左上にある Scheme から Edit Scheme を選択して Debugger を GDB や None にしてみる。
  2. 再度ビルドを行う

Folder Reference として “resources” という名前を使っている場合

Xcode compiles my App, but can’t run it in the simulator

  1. “resources” という名前の Folder Reference をプロジェクト上から削除
  2. “resources” フォルダを別の名前にしてプロジェクト上に登録しなおす。
  3. OrganizerProject タブから Derived Data を削除しておく
  4. 再度ビルド

まとめ

結局一番最後のものが原因だったけれど調査にかなり時間がかかってしまった。もう少しましなエラーメッセージは出ないものなのか・・・。

Group と Folder Reference の比較はこちら Xcode Groups vs. Folder References

 

Objective-C 環境を久々に構築

Xcode が標準で ARC 対応になって IB の替わりに Storyboard が追加されていた。Storyboard はどうも使いづらいけれど、とりあえず使ってみよう。

CocoaPods というパッケージマネージャがあるようだけど、外部ライブラリは git submodule で管理し始めたので保留。バイナリのダウンロードやセットアップタスクは Fabric でちまちま書いておく。アプリケーションテストは UISpec を使いたかったのだけど、長い間更新が無いようなので KIF を試してみる予定。ドキュメントは appledoc を使って QuickHelp にドキュメントを表示できるようにしておく。

今一番の問題は、グラフィック関連のライブラリがあまり見つからないところ。JavaScript の Raphael や Paper.js、欲を言えば Chart.js のようなものが欲しい。