问题
Does the deployment target of an app need to be set to iOS 7 in order to get the iOS 7 appearance on and iOS 7 device?
It was that way during the beta and it still seems like it is right now due to my testing.
I am currently building using iOS 7 SDK and deployment target of - let just say < iOS 7. The app runs using the iOS 6 appearance on my iOS 7 device.
If I build with iOS 7 as the deployment target, the device gets the iOS 7 UI.
It would be great if someone could confirm. Thanks.
Other build settings: Architectures: $(ARCHS_STANDARD_32_BIT) armv6
Valid Archs: armv6 armv7 armv7s
I have read other questions which ask about the iOS 6 and 7 appearance in relation to build settings. Including this one: is there a way to have an app run and display as ios 6 on a iphone with iOS 7? I also could not find any information for this on ADC. ADC just mentions "compatibility with iOS 6, etc"
Update: This may be related to me building for iOS 7 on Xcode 4.6. Xcode 5 gives me compiler errors on build, the related question is Xcode 5 "Missing compiler spec LLVM 4.2" error
Update (10/14/13): I have resolved the build errors of building in Xcode 5 and have confirmed that building with SDK set to iOS 7 in Xcode 5 gives an iOS 7 UI even with a deployment target of < iOS 7.
A table for those who find this page:
Xcode 4.6
iOS 7 SDK
iOS 7 deployment
- iOS 7 device
- iOS 7 UI
- iOS 6 device (or lower)
- N/A
- N/A
- iOS 7 device
iOS 6 deployment
- iOS 7 device
- iOS 6 UI
- iOS 6 device (or lower)
- iOS 6 UI
- iOS 7 device
iOS 6 SDK
iOS 6 deployment
- iOS 7 device
- iOS 6 UI
- iOS 6 device (or lower)
- iOS 6 UI
- iOS 7 device
Xcode 5
iOS 7 SDK
iOS 7 deployment
- iOS 7 device
- iOS 7 UI
- iOS 6 device (or lower)
- N/A
- iOS 7 device
iOS 6 deployment (or lower)
- iOS 7 device
- iOS 7 UI
- iOS 6 device (or lower)
- iOS 6 UI
- iOS 7 device
回答1:
No! You can set the deployment target to be 6.1 For example and on devices running 6.1 it will look like 6.1 while on iOS7 devices it will look like 7.0.
And of course if you set deployment target to 7.0 it can ONLY run on 7.0 and up devices.
Also, make sure you set Base SDK to "Latest iOS". And check that your Target settings are NOT overriding your Project Settings. Really you should pick one of those two and only set it on place and let it flow through to the other. I use Target settings mostly.
You want to set your BASE SDK to the highest you're using.
You want to set your DEPLOYMENT target to the LOWEST your prepared to support.
The OS will do the rest.
回答2:
I had exactly the same problem - Base SDK 7.0, Deployment Target SDK 6.1 on simulator worked as expected (iOS7 looks) but on the device (which had iOS7 installed) resulted in iOS6 looks.
Turns out it was because I had 6.1 SDK copied in my XCode 5 (I copied it previously to build another project against iOS6.1 with XCode5).
I didn't figure it myself, here is the link to the original answer: https://stackoverflow.com/a/19132061/1077481
The bottom line - don't copy SDK 6.1 in XCode5 :)
回答3:
Yes I think that's the intended behaviour. If the deployment target is <7, it will run like an iOS 6 app on your iOS 7 device.
This is because it doesn't have the usable status bar and also implements the old style keyboard.
Now that apple has the feature of downloading the last compatible version, if you update your app to make it iOS7 only, someone with iOS6 will automatically download the last working version.
来源:https://stackoverflow.com/questions/19071254/ios-6-vs-7-appearance-build-settings