I rebuilt my project from scratch as I move towards a universal app. I also wanted a fresh project without a lot of history. Anyway, for some reason my new project only seems to support devices 3.2 and above. I am compiling with 4.0 SDK and device target 3.0, but something must be wrong somewhere because on my 3.1.3 device it won’t install because of an symbol not found.
iPhone 3.1.3:
Running…
[Switching to thread 11779]
[Switching to thread 11779]
sharedlibrary apply-load-rules all
continue
dyld: Symbol not found: _UIKeyboardFrameEndUserInfoKey
Referenced from: /var/mobile/Applications/150D69B7-9E40-41AA-8A43-F0E2C74A16A7/myappname.app/myappname
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit
Data Formatters temporarily unavailable, will re-try after a ‘continue’. (Not safe to call dlopen at this time.)
This problem is in the latest three20 libraries. The problem is somewhere in all of the new conditional compiling code: #if __IPHONE_3_2 && __IPHONE_3_2 <= __IPHONE_OS_VERSION_MAX_ALLOWED
http://github.com/dlackty/three20-gsoc.git seems to address the problems for now.