iOS 4 app crashes at startup on iOS 3.1.3: Symbol not found: __NSConcreteStackBlock

Solution 1:

Ben Gottlieb pointed out yesterday that if you use blocks anywhere in your application, you'll see a crash similar to this on a pre-4.0 OS while building with the LLVM compiler. To work around this, you can specify the linker flag -weak-lSystem in your Xcode build settings.

Solution 2:

Since most of these answers are specific to Xcode 3.x, just wanted to share what I did to fix this with Xcode 4.2.

Under your target in the "Build Phases" tab in the "Link Binary With Libraries" section I added "libSystem.dylib" and made it optional. This fixed the issue iOS 3.x devices while maintaining support for iOS 4.x and 5.0 devices.

Solution 3:

If you happen to be using the cocos2d libraries, there is a cleaner way to do this, you should configure the cocos2d target's Deployment target to 3.0