web-dev-qa-db-ja.com

弱いリンクされた新しいフレームワークを使用してYosemiteで実行されているiOSSimulator 7.1のクラッシュ(シンボルが見つかりません:_objc_isAuto)

XCode 6.1にアップデートしたばかりで、iOS7シミュレーターを再インストールする必要がありました。

5s iOS 7.1sim以外のすべてのシミュレーターでアプリを実行できます。このクラッシュが発生します

dyld: Symbol not found: _objc_isAuto
  Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
  Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/lib/libobjc.A.dylib
 in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
(lldb) 

何が得られますか?このシムがクラッシュする理由はありますか?

ありがとう

28
Darren

この問題は、iOS 8.x SDKに対してプロジェクトをビルドしていて、iOS 8.xに新しく、OS X 10.10にも存在するフレームワークのリンクが弱く、iOS7.1シミュレーターで実行している場合に発生する可能性があります。

Xcode 6.1リリースノート この問題について言及します:

IOS 8SDKおよびOSX 10.10 SDKの新しいフレームワークに対してアプリが弱くリンクされている場合、実行先が古いiOSランタイム用のiOSシミュレーターであり、ホストシステムがOS X Yosemiteを実行していると、実行に失敗する可能性があります。 (17807439)

この問題は、後でXcode 6.2ベータ4からダウンロードできるiOS7.1シミュレータランタイムのアップデートで解決されています(おそらくbeta3も機能したと思います)。