tags:

views:

96

answers:

2

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.)

A: 

It looks like there is something wrong with MobileSubstrate and Backgrounder, both of which are libraries used on jailbroken devices, so it seems the problem is not with your app but with those libraries.

Douwe Maan
It is true that these devices are jailbroken, but that doesn't explain why the old version of the project worked without issues on these devices. I wonder if the MobileSubstrate errors were there all along and are just muddying up my logs above. The relevant part seems to be: 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'.
toofah
A: 

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.

toofah