we have a 4.2.x iPhone 3GS here in the office we would like to test a juce app on. The app works fine on our ipad2 and 3 and on an iphone 4s. On the iphone 3gs though it just gives a black screen. The app starts, xcode says something like “finished running …” but the phone itself just blacks out.
I set the deployment target to 3.2 - being the lowest Juce seems to support, but… no luck.
If you are using the latest XCode, you need to manually add the ARM arch for older devices. That is, you get “armv7” by default, but you need to add “armv6” to run older devices.
Another reason the app will bail suddenly is profiles/entitlements. If the profile is not provisioned for the device, you don’t get a descriptive failure, just a sudden failure.
Still another possibility is hard linking to a newer library. It’s been awhile since I built a Juce app for 3.2 and tested on a 3.2 device (pre official 2.x release, but with the modules branch). I can’t remember if I had to fix any linking from “required” to “optional”, but the CoreText.framework would definitely come to mind.
Oh lord, that is a pretty damned stupid error on my side!
Adding armv6 too fixed everything
FWIW, if there is any stupid, I’d put it on Apple. If I set the deployment target, why can’ t the @#$% tool be smart enough to figure out what I need?!
I figured it was like pre-10.7 support on OS-X. They have been making it intentionally hard on purpose!
Maybe it makes sense for Jules to add armv6 and armv7 by default…?