11

最近、iOS6 Base SDK を使用するようにコードベースをアップグレードしました - XCode 4.5 を使用しています。dylibxml2.2.3.7 を dylibxml2.2 に変更するだけで済みました。6.0 シミュレーターでは正常に動作します。GoogleAnalytics、Three20 などのライブラリを使用しています。

しかし、iOS 5 (iPhone4) でコードを実行すると、起動時に次のエラーでクラッシュします。

クラッシュ時のマシンコードしか表示されないため、どこでクラッシュしているのか正確にはわかりません

dyld: 遅延シンボル バインドに失敗しました: シンボルが見つかりません: _objc_setProperty_nonatomic

参照元: /Users//Library/Application Support/iPhone Simulator/5.0/Applications//

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation

4

3 に答える 3

29

独自のライブラリをビルドしてサンプルコードで実行すると、同じエラーが発生します。ビルドログを注意深く読んだ後、理由がわかりました。

展開ターゲットを iOS 3.0 に設定しましたが、最新の Xcode は iOS 4.3 以降しかサポートしていません。そのため、コンパイラは展開ターゲットを iOS 6.0 に自動的に設定します。これにより、プロジェクトが iOS 6.0 で実行されるたびにエラーが発生します。私のlibプロジェクトで展開ターゲットをiOS 4.3に設定することで修正しました。

于 2012-09-25T08:16:45.067 に答える
0

または、プロジェクトのベース SDK よりも上位のベース SDK でコンパイルされたライブラリを使用している可能性があります。

于 2013-06-04T11:45:59.143 に答える
0

SDK の展開先を単独で変更すると問題が発生します。タブベースのアプリケーションを作成しました。どのファイルにも変更を加えていません。iOS 6 シミュレーターでは正常に動作していますが、展開ターゲットを 5 に変更
し、例外 (シグナル SIGABRT) を作成している iOS 5 シミュレーターで実行すると、Xcode バージョン 4.5 およびデフォルトのデプロイメント ターゲット SDK 6.0。

于 2013-02-19T12:17:15.667 に答える