2012-10-23 6 views
5

私のXcodeプロジェクトでは、私はXMPPフレームワークを統合しました。 iOS 5.1シミュレータで正常に動作します。私はiOSの4.3シミュレータ上でプロジェクトを実行しようとしたとき、私は次のエラーを取得しています:私は、エラーがここで発生することがわかっさらにデバッグ後xmppStream = [[XMPPStream alloc] init];

XMPPがiOS 4.3プロジェクトで動作しない

dyld: lazy symbol binding failed: Symbol not found: _objc_storeStrong 
    Referenced from: /Users/admin/Library/Application Support/iPhone Simulator/4.3.2/Applications/67451DE6-EFC1-4313-9A29-C2C641F727C6/AppName.app/AppName 
    Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

dyld: Symbol not found: _objc_storeStrong 
    Referenced from: /Users/admin/Library/Application Support/iPhone Simulator/4.3.2/Applications/67451DE6-EFC1-4313-9A29-C2C641F727C6/AppName.app/AppName 
    Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

は、エラーが次のコード行に発生しました:

- (id)init 
{ 
    if ((self = [super init])) //**CRASH WHEN EXECUTING THIS STATEMENT 
    { 
     // Common initialization 
     [self commonInit]; 

     // Initialize socket 
     asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:xmppQueue]; 
    } 
    return self; 
} 


私がXMPPを統合したプロジェクトはARCではありません。そこで、すべてのXMPPファイルに対して-fobjc-arcを追加しました。 XMPPライブラリによって与えられたサンプルプロジェクトは、iOS 4.3シミュレータでうまく動作しています。誰もがこのエラーを解決するのに役立つことができますか?
Xcodeのバージョン:4.3.3
のiOS:iOSの4.3シミュレータ

答えて

0

XMPPは、ARCを必要とし、何が起こるリンカエラーこの種のオフ明示的に回っている場合。 -fno-objc-arcをXMPPファイルから削除し、-fobjc-arcをプロジェクトのその他のリンカーフラグに追加してみてください。 More info

+0

申し訳ありませんが、私はすでにすべてのXMPPファイルに対して-fobjc-arcを追加していました。しかし、問題は持続する – Vaquita

+0

それはリンク時ではなく、コンパイルの時間ステップですよね。私が正しく理解していれば、プロジェクトは非ARCなので、ARCライブラリはデフォルトでリンクされていません。クラスの中にはARCが必要なものがある場合は、明示的にリンクする必要があります。 –

関連する問題