I have a Universal iOS app that has been in the App Store for two years now. I am working on a massive update for it. I have learned a lot since then and I feel that the best thing for me to do is to rewrite the app from the ground up. I can just strip out the app but I would rather start from scratch with a new Xcode project and submit it as an update.
However, I'm not sure if this will work. What do I need to change in the plist and other settings so that this new project will be recognized as an update to the existing one? Is it even possible?
You should just be able to use the App ID/Provisioning profile of the existing app when you develop the new one.
In XCode, you'd set the Bundle ID to whatever the app's identifier is, and update CFBundleVersion and CFBundleShortVersionString to reflect the current version of the app.
Keep in mind that you can't add to the required device capabilities (meaning make it more restrictive), so it has to match what they were for the old version.
Related
I am pretty new to iOS development so I apologize if I will ask something obvious. I have uploaded a Unity game to App Store Connect and successfully published it to the App Store. Over time I have fixed some bugs and I would like to upload a new version. I have created a new version in App Store Connect but I somehow struggle to upload the new build from Xcode. There is a couple questions I have:
Should Bundle ID stay the same when it is the same app only different versions or should it be different every time?
When I create a new build from Unity and open it in Xcode I have to set everything up again (AppIcon etc.). It is not a problem but I believe there is a better way. How should I do this?
Thank you.
Should Bundle ID stay the same when it is the same app only different versions or should it be different every time?
Bundle ID should be same if it's a same app in app store
When I create a new build from Unity and open it in Xcode I have to set everything up again (AppIcon etc.). It is not a problem but I believe there is a better way. How should I do this?
When you build xcode project from Unity, you may use append option to avoid your xcode project being overwritten.
Trivial question I know, but I need to figure out this before I actually try it on iTunes Connect.
I have an application on the App Store, I would like that next version of the app is only available to users of iOS7 or greater.
I wonder if simply updating my app info.plist to support > iOS7 is enough to leave existing users running iOS6 with the latest version I released (1.9) before changing info.plist, and instead have iOS7 users prompted (or automatically updated) to the new 2.0 iOS7-only version?
Or maybe there is something else I have to specify under iTunes Connect?
I can't see anything actually there...
Yes, this is how it works. If you update your app's Deployment Target to iOS 7 then existing iOS 6 users will not be told of an update (and won't be able to update). iOS 7 users will be able to update.
I have a question regarding App Store published apps. I'm about to submit an iOS app and I wonder if, when submitting future app updates, it is possible to force the previous version to be uninstalled before installing the update? How are updates managed?
Thanks!
You need to submit the app update as an update to the existing app, not as a new app. There is no need to uninstall the old app. The update will replace it.
Make sure the update is backwards compatible. More specifically: preserve the user settings and any other piece of data your app stores locally.
If you really need to submit a new app to replace the old one for some reason, you can use a custom URL (documented here) to force the user to use the new app.
You will need to make two changes:
In the new app: register the custom URL.
In the old app: launch the new app by invoking the custom URL as described here
I find that you are worried about sqlite database changes.You can change the name of the sqlite file in new version project.
I have an app on AppStore that I would like to improve with StoryBoard. I was recomended to build a new app from scratch instead of trying to add storyboard to an old app. So I have done that and now I would like to upload it to the AppStore and replace the old one.
I understand that the bundle identifier and app name must be the same. Do I have to make sure any other stuff is the same?
Yes, you can do this no problem.
Just make sure to use the same App bundle identifier i.e. com.companyname.appname as in your original app.
Then use the same distribution license that you would normally use.
You have to release the new app as an update to the old app but apart from that you can change anything else.
You also have to make the new version number greater than the current apps version number.
To the users it will look like a normal update but in the background you will have essentially replaced the entire app.
You could consider this as an update of you app.
Bundle version should be higher then before (for example 1.1 or 2.0 if the previous one is 1.0) - this usually depends on how big the difference will seem to the users.
And also: if you are saving anything to documents folder make sure that the new version is compatible with the old data.
New version should be able to run on device:
if there was (any) previous version installed
if there was no previous installation of your app
For reasons too convoluted to get into, I had to switch to a completely new project to update an app in the App Store.
Is there anyway to get access to the sandbox of the old app or will the new one just create a completely separate sandbox? In testing my dev builds of the old and new app they are completely different document directories so my archived info doesn't survive the update.
Does going through the app store effect this in any way or am I just out of luck?
I've matched Bundle ID's and provisioning profiles and that hasn't helped anything.
If you are submitting the completely new version as an update, the data in the NSDocumentsDirectory and NSLibraryDirectory will be preserved. If you are creating a new app in iTunes Connect, the data will not be available and there's no way of getting it back (because you canĀ“t access the sandbox of other apps).
To test this, the best thing you can do is to install the old version of the app on your device and run the new one to update it. If you matched the bundle id correctly, instead of creating a new app on the springboard it should update the existing one. Data should be preserved in this update.
Remember to set your version number to something higher than before. For example, if your old app is version 1.0 you should try with 1.1 or 2.0.