runtime exception after upgrade to Xcode4.5 iOS6 B

2019-03-25 16:11发布

问题:

I recently upgraded my codebase to use iOS6 Base SDK - I am using XCode 4.5. I only had to change the dylibxml2.2.3.7 to dylibxml2.2. It works fine on the 6.0 simulator. I am using libs like GoogleAnalytics, Three20.

But when i run the code on iOS 5 (iPhone4), it crashes at launch with this following error:

I can't tell where it is exactly crashing because all I see is the machine codes when it crashes

dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic

Referenced from: /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

回答1:

I meet the same error too when building my own lib and run it in my sample code. After reading the build log carefully, I figure out the reason now.

I set my deployment target to iOS 3.0, but the latest Xcode only support iOS 4.3 and later. So the compiler automatically set the deployment target to iOS 6.0, which generates error whenever the project is running under iOS 6.0. I fixed it by setting the deployment target to iOS 4.3 in my lib project.



回答2:

There is a problem in changng SDK deployment target alone. I just created a tab based application. Didn't do any change in any file. Running fine on ios 6 simulator but if I change
deployment target to 5 and run on ios 5 simulator which is creating exception(signal SIGABRT). Xcode version 4.5 and default deployment target SDK 6.0.



回答3:

Or it could be that you are using a library that was compiled with a higher base SDK than your project base SDK.



标签: ios6 xcode4.5