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.
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.
I have an application written in mixed Obj-C/Swift, it uses UUID for identification of a device. I am rewriting whole application in Swift, using another project with same bundle ID. However when I try to update old project build with Xcode using new one build with Xcode too, new application UUID is different. What I am missing? Shouldn't it be the same because I am using same bundle ID?
Does UUID mean UIDevice.current.identifierForVendor?.uuidString ?
If so, it changes in some situations documented in Apple developer page.
https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor
The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.
My bad, it indeed stays the same, old application was saving one in keychain and using it even after reinstall.
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.
I have an app live on app store. Due to some reasons i am about to push new app on app store, and want to uninstall old app from new app. Is there any way to uninstall/delete an iOS app from user's iPhone.
This is not possible, due to iOS not allowing people access to the file system. The only thing you can do, with an itms-services:// link, is prompt the user to download an app available somewhere for ad-hoc delivery.
Just add the current bundle identifier to the new app and submit as an update. It doesn't matter if it's the same project or a new one. As long as bundle identifier stays the same it will count as update.
This won't technically uninstall the old app, but it will look like it did.
Just remember that scheduled notifications and persisted files will remain as they were, you will have to implement some clean up logic to get rid of them.
I'm fairly new to app development, and I just recently put my first app in the App Store. I noticed some bugs after it was released, and when I tried to test it, it overwrote the version I had downloaded from the app store. I have the app connected to Game Center, so I want to avoid setting a high score while I am testing. Normally, in the test version I am logged out, and it has my ID saved for the App Store version, so it auto logs in for that version. However now that the new version has been overwritten, I can't login at all.
How do I keep them separate?
Change the bundle id like com.company.game to com.company.game2 or so