I would like to have only iPhone support for my application.
As far as I can see from PhoneGap documentation, one can set handset option in target-device:
<preference name="target-device" value="handset" />
But this however does not work. After the build (I build application locally on the machine), I see Devices is set to Universal in the Deployment Info of the project.
How do I disable iPad support?
This functionality was added in cordova-lib-0.21.8-dev according to https://issues.apache.org/jira/browse/CB-7118 which has been resolved. I've tested with cordova 4.2.0 and it appears to be working correctly.
Related
I have build the my app which was developed for 5.1 from xcode5 with the deployment target as 5.1 as i want my application to support ios 5 to ios 7.
When i add the application to the enterprise link and when the application is installed in iOS 7 i see the application is being installed twice out of the two apps, one works fine but the other still says installing , I even cant delete the app which says installing . But if try to download the app from link again n while the installation process i was able to delete the unsuccessfully installed application.
Please suggest me how to resolve this issue of shadow app.
Should i change the build settings ? Or is it because of building the old app for ios7 but using deployment target as 5.1 !! I need to solve this problem as soon as possible.
I will be grateful if anyone helps me out.
A couple things that I have discovered with this.
First of all it seems to be less of an issue with iOS 7.1.
Secondly, this can be prevented by making sure that the meta data in your manifest file is correct. Make sure that you have the correct appID (com.yourCompany.yourApp) and it is nice to have an icon included too. See here for what that looks like: https://stackoverflow.com/questions/13236395/ios-over-the-air-installation-black-download-icon-on-retina-ipad
I am trying to install an ad hoc build for the iPad and it won't install. It does install on my iPad with iOS 5.0, so I know that it isn't a certificate problem. I just can't seem to figure why it wouldn't install on a device from ad hoc install via Safari
I have had this happen as I use many different machines to build multiple projects and multiple devices to test.
You have said that your iPad is running iOS 5.0 but you are building an adhoc build for base SDK 5.1. The XCode tools dont allow your test device not to match exactly the base SDK you are developing for.
You either need to update your iPad to 5.1 or downgrade your base SDK to 5.0. I would recommend simply upgrading your iPad!!!
I figured out the solution. I needed to go to Edit scheme->archive then set Build Configuration to Release
I am a registered Apple dev with the certificates, and mobileprofiles that i need. I have made several apps in xCode that I would like to test on my 3GS, I have registered my 3GS as one of my allowed devices but it still will not install giving the install prohibited error. The Xcode is set to same profile as my iphone has. Just dont kmow what to do. well i guess i =ll download sdk 4.1
You will get this exact message if Restrictions are enabled on the device, specifically the restriction on installing Apps.
You need to upgrade your SDK to 4.0.1 to use it with iOS 4.0.1 devices.
Is the iPhone OS Deployment Target in your Build Settings (either for the project or for the target) set for an OS version higher than the one on your 3GS?
I've downloaded the final version (and never installed any beta versions before) of xcode 3.2.3 with sdk 4, and now I can't seem to find a way to compile my app for a 3.1.3 iOS.
Does anybody know how can I do that ?
As it is, you can't. They probably did this on purpose to discourage new apps compiled for 3.1.3 which foils multitasking.
Instead you can compile for iOS 4 but make your deployment target 3.1.3. This doesn't really require any more real work, as long as you don't use any non-3.1.3 methods/classes etc. and the application can install and run on a 3.1.3 device. You can also then make your application multitasking aware so that it works nicely on a device that does run iOS 4 and is capable of multitasking.
Just a note: the Base SDK may be set at the project level, but you will need to go to the build settings for the target itself to set the deployment target (that setting is not available at the project level).
To expand on Jason Coco's answer:
If you go to the Project Info screen and click Build, you can choose what Base SDK to use (4.0) and then scroll down to iPhone OS Deployment Target version and set it to 3.1.3 or whatever.
However, you also have to go to the Targets section under Groups & Files (red bullseye) select your target and get the Info build page, and set your iPhone OS Deployment Target there too.
Once that's done, you should be able to test it with a device that's still running 3.0 or whatever you selected.
if you want to be compatible with iPhone OS 3.x you still compile for SDK 4.0, but open target settings and choose that application can run on 3.x (iPhone OS Deployment Target). If you did not use any iOS 4.0 specific APIs then your app will run smoothly on 3.x and 4.x, here is a screenshot of setting to change:
Screenshot
I'm a little confused about building an app for the app store and for the correct SDK & OS version. I have submitted my app to the app store, and in the app details screen of iTunes connection it says:
"Minimum OS Requirements : 3.1.2"
I haven't seen any apps on the app store that have 3.1.2 as the min OS, they all say 3.0. I read several things on here before I built it and I thought I understood everything!
Basically, my app doesn't use any code that only exists in > 3.0 so I would like the minimum OS to be 3.0. My build settings were:
Target Info
Base SDK: iPhone Device 3.0
iPhone OS Deployment Target: iPhone OS 3.0
Xcode Main Window
Active SDK: iPhone Device 3.1.2
I've heard about a minimum OS version being put in the Info.plist but I haven't got anything like that in mine.
I build the app exactly like that and submitted it. Are my app settings correct? Will my app display 3.0 in the app store or 3.1.2? I'm a little unsure as to why you set the Active SDK to the latest (3.1.2) when you want to target 3.0 , 3.1 & 3.12 devices, but it's what I read!
Any help advice be greatly appreciated!
Okay I've managed to figure it out after much reading!
Basically, the Active SDK is just a build time override of the Base SDK. By default, when the Base SDK changes it automatically changes the Deployment Target to the same OS as the SDK. So when I wanted to build the app under the 3.1.2 SDK but have it run on 3.0 OS, I changed the Active SDK to 3.1.2, but that had automatically changed the minimum OS (deployment target). I saw this by looking at the Info.plist file in the package contents in my .app file.
So the best thing to do is to set the Base SDK to the latest SDK (currently 3.1.2) and then manually set the Deployment Target to 3.0 OS. Once the 2 are different then it will no longer automatically change.
However, this means that your app can install on a 3.0 device that may have 3.0, 3.1, or 3.1.2 SDKs. Therefore, any frameworks, methods or properties you use that are only available in SDKs greater than 3.0 you will have to use conditionally.
When you get around to building the app, ensure that that Active Target is set as the same as your Base SDK, e.g. Device 3.1.2. But remember to compile your app under Device 3.0, Device 3.1, and Device 3.1.2 just to check for compiler warnings. This will ensure that you don't have any code accessing methods/frameworks that don't exist in any SDKs down to your Deployment Target.
I hope this helps anyone who is in my position and couldn't find a simple explanation of how it all works.
The SDK Compatibility Guide was very useful and informative. However it took just a little extra figuring out for me to be comfortable with the concept and how everything works. This image from the guide is useful:
(source: apple.com)
Go to the Project Info->Build and look at IPHONEOS_DEPLOYMENT_TARGET property
Actually I use 3.1.2 SDK and building an app that work nice on every OS higher than 2.2.1