Xcode3.1.4 + iPhone SDK 3.1.2 + iPhone 3G(OS 3.1.2[7D11]) + JSON Framework (2.2.2)で遭遇しました。
エラーメッセージ
Codesign error: 〜“object file format invalid or unsuitable”Codesignのエラーということ、ググるとこれはJSON Frameworkが悪さしているということが分かった。
コンパイルエラーの対処方法
プロジェクト > プロジェクト設置の編集 > ビルド > コード署名リソース・ルールパス を編集
デフォルトでは空欄なので以下を追加
$(SDKROOT)/ResourceRules.plist
これでコンパイルは通るようになります。しかし実機での実行時に[NSObject JSONValue]メソッドが呼び出せないエラーが起こり例外エラーになってしまいます。この対処法がわからない。
JSON Frameworkの導入はここを参考に
http://www.syuhari.jp/blog/archives/1146
コンパイルエラーの対処法はここを参考にしました。
http://iphone.galloway.me.uk/2009/04/json-framework-codesign-object-file-format-invalid-or-unsuitable/
解決
JSON Frameworkを使うときに[NSSring JSONValue]が呼べない問題は
//ここでJSONValueを使うのはだめ,実機で落ちる //NSDictionary* jsonItem = [jsonStr JSONValue]; //こっちを使う エラーはセットしておく方が大人の対応。 NSError *error; SBJSON *json = [[SBJSON new] autorelease]; NSDictionary *jsonItem = [json objectWithString:jsonStr error:&error]; if (!jsonItem) { NSLog(@"%@", error); }
JSON Framework - Google Codeのフォーラムで議論されてました。
http://code.google.com/p/json-framework/issues/detail?id=22