Upgrade phonegap from 1.5 to 2.7 for iOS app - iphone

I have created an app for iPhone in phonegap.
In starting I used phonegap 1.5 and submitted this app to app store.
But now I upgrade my app and try to submit to app store.
Now it is showing error related to Unique Identifier.
To resolve it I have to upgrade phonegap from 1.5 to 2.7.
I checked link
But here upgrade guides are available particular version to version.

Go one by one through the upgrade guides until you get to the version that you want.

I had same problem but, with android.
My colleague checked all the stages provided here.
She reviewed all steps and found that there are minor differences in stages.
So here is how we upgraded from 1.5 to 2.6 for android.
I suggest you to review the stages for iOS and find out minor differences.
Instead of going stage by stage, check if there are common steps and follow them directly from 1.5 to 2.7

Related

Updating the iPhone iOS 4.0.1 to 4.0.2 SDK, Do I have to download the whole 2.5 Gigs?

As the the Question asks,
I currently sport xcode 3.2.3 with iOS 4.0.1 but I want to test on my iPhone which is stuck on 4.0.2
Thus I cannot do so until the SDK for 4.0.2 is accessible from xcode.
Where can I download a patch update from 4.0.1 to 4.0.2 because the iPhone members page seems to only link me to the package including xcode 3.2.3 with iOS4.0.2 SDK
I don't want to download the whole thing because it's > 2.5 gigs and my New Zealand internet Connection is shizenhouzen.
I can't restore to a previous version, because for some reason I only have a previous back up of the iPhone on my now defunct windows PC.
I'm afraid you have to download the entire SDK - Apple do not provide 'patches' (4.0.1 to 4.02, for example) AFAIK, and I'd be nervous about downloading anything that claims it is a patch.
It's a common grumble, twitter is a fun place when apple push these .1 SDK updates out :)
You do have to download the whole thing to upgrade. It really sucks. :-(
I wish I could remember to download the SDK before upgrading my devices.
You can still build adhoc releases of your app and install them using itunes if you're in a real bind - it's just the debugger, console viewing and automatic installation of builds that won't work at all.

Older SDK disappeared after installing new Xcode version

Why are old SDKs beeing removed when installing a new version of xcode with new Iphone SDK ?
Now we have v4, what settings do I have to make in order that the apps still work with 3.x ?
Thanks
Set the Base SDK to 4.0 and Deployment Target to 3.x. Or, in modern conditions, the Base SDK to Latest and Deployment Target to whatever you need.
Although 'Zoul' has most succinctly answered the question, I shall make an attempt to elaborate on the 2 settings and point to some useful documents which will help others who are new to the situation.
Base SDK Version: This indicates the version of the SDK based on which the program has been compiled. This can be set from the "Build Settings" for the project or target. You can use API code from Apple in your code introduced up-to that version and compiler will know all the symbols and compile without any issues.
Deployment target: This is a declaration from your side about the minimum iOS version which should be installed on the user's device to run your code. This setting can be found under "Info" section for Project and "Summary" section for a particular target. Now, important thing to understand is that your code will not automatically run smoothly on devices with older versions of the iOS if you are using API code introduced in later version by Apple. These can be new classes/methods/frameworks introduced by Apple in later version. You have to ensure by writing necessary conditional code and provide alternate code path to gracefully degrade for older iOS version which does not have the newer API. It is up-to you to handle version incompatibilities.
Apple documentation on the subject can be found in "SDK Compatibility Guide".
To know about the changes with different versions of iOS refer "What's new in iOS".
This topic is also discussed in "iOS Development Guide" under section "Building and Running Application". Refer sub-section "Specifying the Runtime Environment".
If you have backups of your system from something like Time Machine (and you better!) you can copy the older SDKs from the backup located at /Developer/Platforms/iPhoneOS.platform/Developer/SDKs and /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs - then just restart XCode and you're ready to go.
If you still have the problem after you set Deployment target at least as low as your desired SDK, then you need to download that SDK. Luckily, Xcode helps us here also:
look after Simulator selector in top left of your Xcode and select More Simulators. It will open a page like the one below:
just select the SDK you need to test your app against.
3.2.3 last beta did remove all other SDK's cause to many people tried publish Apps developed with the beta SDK, which will not be accepted. I guess GM is doing still the same
If you want to develop for 4.0,3.2 and 3.0 (plus 3.0,3.1,3.1.2,3.1.3)
do the following
sudo /Developer/Library/uninstall-devtools –mode=all (This will uninstall the current XCode installation)
Then install first old XCode (3.2 final) in default folder (/Developer)
Then install the new XCode (3.2.3 GM) in other folder (/DeveloperBeta)
This way you will have both. And can launch xcode from either /Developer/Applications/Xcode.app or /DeveloperBeta/Applications/Xcode.app

iTunes Connect rejects my binary because I used a pre-release version of the SDK, what should I do?

I downloaded a pre-release version of the iPhone SDK and tried to update one of my existing apps using a binary I built with it. Obviously you are not supposed to do this but I had forgotten about the warning when I installed the pre-release SDK. Anyway - I have two questions:
Can I simply set the base SDK to an earlier version in the build settings and get around this problem?
If not, then what should I do?
You need to download the release version of Xcode with the release iPhone SDK. You can't use the SDK downloaded from the iPad beta version for any release products.
Just go to http://developer.apple.com/iphone/index.action and click on iPhone SDK 3.1 and download it. Then build your app bundle with that and submit it to Apple.
Before you download a pre-release version of the SDK from developer.apple.com, there are several prominent warnings, one of which clearly states that pre-release versions of Xcode / iPhone SDK can NOT be used to build production binaries. So the answer to 1. is an emphatic no.
As far as I can tell, the only option to be able to build production binaries that iTunes Connect will accept is to delete the pre-release version of Xcode / iPhone SDK and re-install the older stable version.
If you upgraded using the beta download (as opposed to installing on a fresh box that has never seen SDK or Xcode), set the base SDK to a released version of the OS. Compile a Distribution build, submit to the app store. The old SDK is still there, so that will get used. All of the prominent warnings I have seen state the the SDK cannot be used, without mention of Xcode.
Before anyone scoffs, note that I submitted an app on March 13 using the version of Xcode (3.2.2) included in Beta 4, setting Base SDK to 3.1. It was approved on the 15th. I've also done this during the 3.0 beta for 2.x apps.
EDIT: on the other hand, acceptance apparently isn't always guaranteed (note that this person had also submitted an app that did get accepted): The binary you uploaded was invalid. A pre-release beta version of the SDK was used to build the application

App Store submission problem: A pre-release beta version of the SDK was used to build the application

I upload my app to app store, I already build my apps using device - 3.1 , which should be the a release version of app store. How can I avoid this warning? thz....
You can not use the Beta version of XCode to build, even when you build against an older SDK. You can install the Beta 3.2 and the official 3.1 in two different directories. This question was answered before btw.
You've answered your own question. You're using an SDK which is currently in beta, I'm assuming 3.2. Go to the Apple dev center and download the 3.1.3 SDK:
http://developer.apple.com/iphone
What version of Xcode and the iPhone SDK are you using? It sounds like you might be using an old (or very new) version of the build tools.

iPhone application compatibility, compiled using 3.1 sdk. Can resubmitt binary compiled using 3.0?

Hello I have recently uploaded an application to the app store and it got approved. The issue is the application has been compiled using the 3.1 sdk, and thus is not working on 3.0 devices. Would there be any problems if i resubmitted the application compiled using the 3.0 sdk? (I want to support 3.0 because a lot of people still have not upgraded their devices, and I don't have any feature that differ between 3.1 and 3.0)
Depending on whether or not you're using any APIs that are restricted to version 3.0 or 3.1 you should set your base SDK as the highest version that the latest official SDK supports (not beta SDKs).
After doing that, you should then set your deployment target in your build settings to the lowest version of iPhone OS that you want your app to run on.
So if you're not using any API's that are specific to 3.0 you could compile against the 3.0 SDK and then set your deployment target to 2.0.
This way you benefit from most of the bug fixes brought along in the SDK update, but still retain the wide user base of people who didn't upgrade.
You can resubmit to 3.0 if you wish, I remember the NYTimes application was at 2.2.1 and a future update released as 2.2 since a large number of people were still using 2.2. So long as your application has been tested to work properly on 3.0 and the 3.0 binary works on 3.1 you'll be fine. Just you'll need to wait for the approval process again.
You can compile your app using whatever version you like. It just has to run on 3.1.
This answer is somewhat related as to what you can compile with versus what you have to test against for compatibility.