xCode 3.2.3 and SDK 4

BlitzMax Forums/MiniB3D Module/xCode 3.2.3 and SDK 4

JoeRetro(Posted 2010) [#1]
I just upgraded to the latest 3.2.3 xCode and was unable to get my project running on my 3G although it ran just fine on my iPad.

Has anyone else made the jump to SDK 4 and/or had any problems?


jhocking(Posted 2010) [#2]
I've upgraded XCode and apps built with it work on my 3Gs phone just fine.

I am however holding off on upgrading the OS on my phone. Did you only upgrade to SDK 4, or did you also upgrade to iOS 4?


JoeRetro(Posted 2010) [#3]
I upgraded my os as well. Wonder if others that have upgraded are having this issue too. I need to google around.


jhocking(Posted 2010) [#4]
Or perhaps it's an issue with iminib3d needing to be updated for iOS 4.


JoeRetro(Posted 2010) [#5]
Well, let's find out - upgrade your iPhone to iOS 4 :-)


jhocking(Posted 2010) [#6]
heh I think I'll pass. It didn't even occur to me that if I upgraded to iOS 4 that could prevent me from running my game; I just avoided upgrading the OS to ensure that what I create will be compatible with the old OS for players who haven't upgraded.

Does Apple let you downgrade your OS? Probably not.

hm, actually maybe you should email me to arrange an ad hoc build. Let's see if an app I build will work on your phone.


simonh(Posted 2010) [#7]
It should work OK with iOS 4. What happens when you try to run your program?

A new update will be coming shortly that will have support for the iPhone 4's higher resolution display.


JoeRetro(Posted 2010) [#8]
Here's a crash report. I'm still trying to figure them out...

I just tried to compile/run the test project within iMinib3d and it gave me the same error - "EXC_BAD_INSTRUCTION"

Incident Identifier: CDCFBDFF-DFA2-436F-ADC0-B2704E48FD08
CrashReporter Key:   8197d38af70de466b78868174a12217207846b18
Hardware Model:      iPhone1,2
Process:         Cube Frenzy [1313]
Path:            /var/mobile/Applications/EC5AED33-8CA3-4BF0-ADF5-E4ABE9D887F4/Cube Frenzy.app/Cube Frenzy
Identifier:      Cube Frenzy
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-06-23 22:41:55.131 -0500
OS Version:      iPhone OS 4.0 (8A293)
Report Version:  104

Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x00000001, 0xe92d0d00
Crashed Thread:  0

Thread 0 Crashed:
0   Cube Frenzy                   	0x00003184 0x1000 + 8580
1   Cube Frenzy                   	0x00003282 0x1000 + 8834
2   ???                           	0xb4e0c2e8 0 + -1260338456
3   dyld                          	0x2fe0c3ae 0x2fe00000 + 50094
4   dyld                          	0x2fe0a0ca 0x2fe00000 + 41162
5   dyld                          	0x2fe0a524 0x2fe00000 + 42276
6   dyld                          	0x2fe022fa 0x2fe00000 + 8954
7   dyld                          	0x2fe06d24 0x2fe00000 + 27940
8   dyld                          	0x2fe01764 0x2fe00000 + 5988
9   dyld                          	0x2fe01058 0x2fe00000 + 4184

Thread 0 crashed with ARM Thread State:
    r0: 0x00000001    r1: 0x00000001      r2: 0x2ffffb10      r3: 0x2ffffb38
    r4: 0x2fe2a0f4    r5: 0x2fe2a09c      r6: 0x00000007      r7: 0x2fffeeac
    r8: 0x00003279    r9: 0x3684d802     r10: 0x000012a0     r11: 0x0000001f
    ip: 0x3e526d5c    sp: 0x2fffeea0      lr: 0x00003289      pc: 0x00003184
  cpsr: 0x00000030

Binary Images:
    0x1000 -    0x32fff +Cube Frenzy armv6  <ab9c7699e05b0b20f51681359b11cd7d> /var/mobile/Applications/EC5AED33-8CA3-4BF0-ADF5-E4ABE9D887F4/Cube Frenzy.app/Cube Frenzy
0x2fe00000 - 0x2fe28fff  dyld armv6  <a2a8d67606c76b315fd9e97b0b023784> /usr/lib/dyld
0x30007000 - 0x30008fff  CoreSurface armv6  <0deb7e43538b2322b1393fef1c5a1590> /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface
0x30009000 - 0x30012fff  AccountSettings armv6  <4933996569c9e94593eece3c59c83b38> /System/Library/PrivateFrameworks/AccountSettings.framework/AccountSettings
0x30013000 - 0x3006ffff  libGLImage.dylib armv6  <4d09042d6dfd3c953a5c35fc9d765c7c> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib
0x3025d000 - 0x3049efff  ProtocolBuffer armv6  <16f68d9ce4e4e5bc18b35148d68c369a> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer
0x30597000 - 0x305d9fff  AddressBook armv6  <8cdfdb51dfc5859a49e4e62f6f423458> /System/Library/Frameworks/AddressBook.framework/AddressBook
0x30838000 - 0x3087bfff  CoreTelephony armv6  <0a68cba6be455c7c40ab745a02f731c0> /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony
0x30911000 - 0x30914fff  CrashReporterSupport armv6  <45ad3a409dd6e9d3e7281b05a3819bc0> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport
0x30920000 - 0x30931fff  PersistentConnection armv6  



ima747(Posted 2010) [#9]
Make sure you recompile the lib for ios 4 especially for simulator, there are documented problems especially with the simulator with libs compiled pre 4.0 in the 4.0 sdk, just ran into a similar issue earlier today with a different lib.


Robert Cummings(Posted 2010) [#10]
Barnyard bounce was successfully updated, compiled, and put on appstore for iOs4. It also works on 3.1 as well... didn't have any issues.

One thing is if you have admob or openfeint, they're no longer compatible. Look at what middleware/frameworks you're using. Get the latest versions and upgrade your code.

I didn't have to change any actual game code or setup though.


JoeRetro(Posted 2010) [#11]
Resolved. Thanks for the info guys!

ima747 - you hit it exactly.

For some odd reason I was using 3.2 base SDK for the lib and 4.0 for my app ??? I'm surprised the compiler nor linker complained.

You really got to be careful setting the base SDK, target device family, deployment target and architectures (armv6, armv7) for each configuration (debug, release, distribution) and for each target (your app & iminib3d lib)!!


jhocking(Posted 2010) [#12]
For some odd reason I was using 3.2 base SDK for the lib and 4.0 for my app


It really is annoying how they've removed the SDK choices from the build settings drop down list. When I first saw that the list no longer lists different versions of the SDK and simply says Device or Simulator I was like "wtf is this?"


*(Posted 2010) [#13]
yeah that threw me too thought it failed to install properly.

Its not in the Project properties so you select platform and lowest OS version its gonna run on and the platforms.


jhocking(Posted 2010) [#14]
Barnyard bounce was successfully updated, compiled, and put on appstore for iOs4. It also works on 3.1 as well... didn't have any issues.


Thanks for reporting the compatibility with iOS 3. Did you upgrade the OS on your phone? I've not upgraded yet to ensure compatibility for players with older phones, but if people confirm that they don't have any compatibility issues with older phones then I'll go ahead and upgrade.

select platform and lowest OS version its gonna run on and the platforms


Wait, where is this platform setting? Is it under the Project menu or something? This option to select the OS version sounds useful, but if it's not in the Project settings then I have no idea where to look for that.


ADDITION: I found the OS version settings after googling a bit and seeing this:
http://stackoverflow.com/questions/3089323/ios-4-build-sdk

First go to Project Settings in the Project menu.

Switch to the Build tab of the settings window.

Near the top, in the Architectures section, set the Base SDK to "iPhone Device 4.0"

Now scroll down to the Deployment section. At the bottom of that section is "iPhone Deployment Target." Set that to the lowest OS version you want to support (in my case I have it set to iOS 3.0)


ADDITION2: hm actually there seems to be a distinction between settings you get through the Project Settings selection, and settings you get through Edit Active Target. I'm not sure what the former is for, the latter is where you need to make changes.


*(Posted 2010) [#15]
it is weird innit I prefered the old method best.


Robert Cummings(Posted 2010) [#16]
Thanks for reporting the compatibility with iOS 3. Did you upgrade the OS on your phone? I've not upgraded yet to ensure compatibility for players with older phones, but if people confirm that they don't have any compatibility issues with older phones then I'll go ahead and upgrade.


Yep that was the first thing I did. See, I already know my stuff runs on older os, but not new os, so the first thing I did was to shove the new os on my phone and try and break my stuff.