Does an iOS app automatically check for new versions? - objective-c

Do I need to implement functionality within my app to check the store for newer versions, or is this done for you automatically? If I do need to do this, how would I go about it?

Its done automatically by the app store. When the user enters to the App Store on his iPhone and theres a new version the "Updates" count will increase and notify the user.
Some like posting this stuff as Push notifications for the user, but many users don't appreciate it much :)

This is all handled by the App Store. You don't need this.

Related

React Native Update App Without user needs to login again

So I have a React Native App. I want to publish it to the Playstore (Later to the Appstore too). Now if I want to make an update the user needs to login again, because I am just overwriting the old App File. How can I prevent it or is there a solution, where I don't need to publish the update to the playstore and just make changes and it gets updated directly without the user needs to update it through the App-/Playstore. I already saw Microsoft Code Push but I think first it costs money and second everybody can see the source code ? :)
Thank you for you help.
Edit
So I want to know: If I update the App, is the Async Storage going to be reseted or will it just stay with the data in it?
#dianaqqq already told you. If you update the App the Async Storage should not be affected from this, because it's not really a direct part of your app; it's more like a party of the whole system and your app uses this.
For more information read this:
https://react-native-async-storage.github.io/async-storage/docs/install/

How do you handle Localization/i18N in notifications?

First of all thank you for your time reading and maybe answering this question.
We have a react native app that uses react native Localize to handle i18n, and Firebase to handle notifications, those are sended in a PHP server.
We save the user´s locale (which we take from the phone) in our database after sign up. When we send the notification we translate it according to the users locale before sending it to the app.
But the user has the ability to change his phone language, so the notification might arrive in a different language because he has change it.
We first tought of checking each time the user loads the app if it´s locale has changed and update the bbdd field.
But we are not sure if this is a right approach.
How do you usually manage it?
I am having the same problem. I believe that other solution is offer the language setting inside your own app instead depend of operating system language, already see others apps making it.
With the language config inside your app, can you have total control of language to send push notification if you persists it in your backend.

Cocoa app, how to show the badge label when app isn't running?

I've noticed the Spark mail app manages to show a badge count even when the app isn't running. The app is a mac app store app so it must not be using any private APIs. Is there a way to do this? Currently I'm only able to do the following while the app is running:
[[[NSApplication sharedApplication] dockTile] setBadgeLabel:[NSString stringWithFormat: #"%ld", 10]];
You need to make a Dock tile plugin. See the documentation for NSDockTilePlugIn for information on how to do this:
https://developer.apple.com/documentation/appkit/nsdocktileplugin
EDIT: Okay, if you want to do what Spark is doing, here it is:
Spark is using Apple Push Notifications to inform you of new e-mails that come in. For e-mail accounts other than Gmail or Outlook, this generally means they store your username and password on their server, which seems "OMG!" levels of creepy to me, but YMMV. When their server notices that you have a new e-mail, they forward the notification to you.
A description of what Spark is doing can be found here: https://blog.readdle.com/how-we-handle-your-account-information-in-spark-1b42f4acef73
If you want to implement push notifications yourself, this video shows generally how to do it, and this sample code may be helpful as well.

Find out which version of app was first installed - iOS

I want to change my app from a paid version to a free with ads. However, I don't want the people that originally paid for the app to get the ads.
I was thinking I could include a new update that has extra code that sets up some UserDefaults saying the version doesn't have ads and then do the update to the free version. But that doesn't seem like a very reliable solution.
I think, it depends on minimum OS version, that your program can be run on. For iOS 5.0 and later you can try to use iCloud to store some flag about purchased version. It allows you to set this flag not only for one device, but for the user's account.
Or you can store this info in the keychain to get it later. But in this case your user will not be able to have no ADs on some other device with his(her) account.
Anyway, as far as I know, you need to create an update for your app first to write this flag anywhere. And only in some time make an update with ADs.
I will be glad to see comments if someone has another thoughts about this issue.
It seems there is no reliable method to detect whether someone paid for your app or downloaded it later when the price has been changed to free. For this reason I have decided to create two separate entries in the app store.

Bundle ID issues when adding Push notifications

my iPhone app has been approved and I am ready to add push notifications to it. I've been following a tutorial that is going step by step in doing the certificates etc etc
I've hit a road block though. I need to make a new app ID but it won't let me use the bundle ID I have used before. My understanding is that the bundle ID must be the same as before in order to update my app. I have no idea what to do and have spent a couple of very frustrating hours trying to figure it out. I have read somewhere about using a wildcard ID... not quite sure what this means.
Any feedback or help would be much appreciated.
Thanks
You don't need to create a new app ID. You only need to configure your existing one and enable Push Notifications. Go to the provisioning portal, and under "App IDs" press the Configure link for your existing ID:
You will then be able to enable Push Notifications for this app ID:
Once you create an app ID, you can use it for doing whatever you need. Even enabling Push Notifications later. And this is your case. You should simply go to Apple's Developer Center and edit you current App ID enabling Push Notifications. No need to create another one, it will be useless.