Hey guys,

I’m getting this one with my Juce checkout and the latest Juce:

Use of undeclared identifier 'UIInterfaceOrientationMaskPortrait'; did you mean 'UIInterfaceOrientationPortrait'?

And 3 more (very similar) in

    static NSUInteger getSupportedOrientations()
        NSUInteger allowed = 0;
        Desktop& d = Desktop::getInstance();

        if (d.isOrientationEnabled (Desktop::upright))              allowed |= UIInterfaceOrientationMaskPortrait;
        if (d.isOrientationEnabled (Desktop::upsideDown))           allowed |= UIInterfaceOrientationMaskPortraitUpsideDown;
        if (d.isOrientationEnabled (Desktop::rotatedClockwise))     allowed |= UIInterfaceOrientationMaskLandscapeLeft;
        if (d.isOrientationEnabled (Desktop::rotatedAntiClockwise)) allowed |= UIInterfaceOrientationMaskLandscapeRight;

        return allowed;

In juce_ios_UIViewComponentPeer.mm

Any hints? Should I be upgrading my xcode?? I’m running 4.3.2 on Lion.

  • bram

It’s in the iOS6 SDK, and yes, you should probably be using that now.

What version of OSX/XCode/SDK are you rocking right now Jules? It would be interesting to update us on this once in a while so we can just tag along…
I did figure out that a latest version of XCode no longer lets you create armv6 builds, which is… problematic for us.

  • bram

I just keep pace with the latest Xcode… 4.5.1 apparently. If you’re using Xcode 4, I don’t think it makes any sense to hang around on older releases.

Okay, thx…!
As said 4.5 doesn’t do armv6…

  • bram

[quote=“bdejong”]Okay, thx…!
As said 4.5 doesn’t do armv6…

Sorry, I didn’t see that… Really?? Wow. I know Apple aren’t the world’s best company for supporting their old products, but it’s surprising that they’ve deprecated it so soon.

Well, those UIInterfaceblahblah things are only simple constants - it’s probably easy enough to add a cludge to the code that defines them if it’s compiling on an older version of Xcode. If you can find something that works on your 4.3 version I’ll take a look!

I guess it’s all down to "do we really want to support iphone 3G / iPod Touch 2G…

Copying from stack overflow ( http://stackoverflow.com/questions/6517822/do-i-need-to-add-armv6-support-when-limiting-apps-to-ios-4-0 ):

[quote]The iPhone 3G and iPod Touch 2G are able to run iOS 4 (barely) and they include a armv6 processor.

ARMv7s = iPhone 5, iPad 4
ARMv7 = iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3
ARMv6 = iPhone 2G/3G, iPod 1G/2G
iOS 4.3+ requires ARMv7. If your Deployment Target is 4.3, you can exclude armv6 support.

As of XCode 4.5 you cannot build for armv6

That gives a nice overview of the situation…

  • bram

Ah… I thought the 3GS had an arm6. But if not then it is probably a wise move to drop the arm6 support.

The 3G and older devices have such crappy CPUs that even if your app runs on them, you’ll probably hit performance issues. I’d certainly only aim at 3GS and later if I was releasing an app - it’s unlikely to be worth the extra hassle of supporting the few people who still have the older phones.

Yeah, we came to the same conclusion…
Looks like I’m going to be upgrading my xcode ( OH JOY! JOY!! :wink: )

  • bram

If you really have to support older devices and still need to conditionally support newer services, you can get older XCodes to build with the newer SDK. For example, I have XCode 4.4.1 building with the iOS 6.1 preview SDK now. But it’s a pain in the butt and always a worry when it comes time for app submission.