iOS Application update that only contains splash screen - ios

I want to update an iOS application, so it only contains a splash screen that says: we are working on updating the app as soon as possible, stay tuned for the next version.
I don't want to remove it from sale, and i also don't want new users to interact with the application, i just want to show them a page with a message.
Is this against apple rules? will they accept my update?

Too simple applications usually don't pass through the Appstore validation.
Have a look a the official documentation : App Store Review Guidelines.
2.12 Apps that are not very useful, unique, are simply web sites bundled as Apps, or do not provide any lasting entertainment value may
be rejected

It's likely it'll be blocked for 2.1 (App Completeness), or 4.2 (Minimum Functionality), but can't be answered conclusively without trying it.

for situations like these you should implement some kind of functionality in your app that lets you control those "maintenance periods" without updating the app. for example some kind of API that returns a special http status code when the app should not be usable for a specific time. then you can react on that status code and show the user some kind of "maintenance message". as soon as you're done you can easily reenable functionality.

This almost certainly won't make it past review. The only way you could do this (and I wouldn't advise it) is to add a splash screen behind a feature flag that you activate remotely after review.

Related

Force removal/invalidation of iOS app from user devices

Assuming you created an app that users have downloaded that is just awful and you neither want to fix it nor have anyone continue to use it so that it won't tarnish your brand, is there a way to end its life on user's iOS devices?
Curious if there is some store setting to force it to work with earlier versions of iOS and invalidates the current app, or code that would force an update that says the app is no longer available.
As many have confirmed, there is no way to remove an application from someone's device. For these cases though, many companies have servers that the application sends a request to on launch, that returns either a need to update the app, a message, or to tell the user the app has been discontinued and that the app cannot be used anymore, stopping them from using the app from there on.
The last use case might be useful to you, but of course this is a proactive solution, not a reactive one.

Without publishing the app on appstore, how to push updates for my iOS application?

After publishing the app on appstore, is there a way to push the changes in the view/layout, also the underlying functionality of the settings screen(or any other screen) without having user to update the app from app store.
No , there is no way to accomplish this you have to create and upload a new build for every view/layout update , your issue is possible if you previously embed that logic inside the uploaded version and dynamically do this according to server responses which is not a recommended way
Think of it this way: There are many, many apps that download changing data and display it in a tableview or collection view. Different text, images, etc. That is, in effect, changing the app without submitting an update.
Depending on what exactly you want to do, it may be fairly straight-forward or it may be complex.
For example, you may have a section of code that lays out an "options" screen, and you decide to add a new option. Your app could connect to a server, download a "configuration" file, and then have your code re-layout the screen as needed.
So, sure, it's possible - you just need to plan ahead and code your app for that flexibility.
One note, however: if you're thinking of significant changes to your app's design and/or functionality, you may run into issues with Apple's guidelines. For example, don't use that idea to try and "get around" having your app rejected for inappropriate content (such as having a "hidden" gambling section that would only be revealed after the app has been published).

Is there a URL forwarding to the App Store review creator in iOS 11?

In iOS 10, I was able to forward directly from my app to its App Store ratings page by using the following link:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=app_id_here&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8
However, in iOS 11 with its all-new App Store where the review page doesn't exist any longer, this seems to be broken now.
Does anyone know an alternative url that opens up the review creator page directly? Or does Apple want us to stop using such links?
You need to add a name after the app parameter of your url (here I use 'itunes-u') :
https://itunes.apple.com/us/app/itunes-u/id\(appID)?ls=1&mt=8&action=write-review
Also note that the scheme seems to be working properly so you could instead call :
itms-apps://itunes.apple.com/us/app/itunes-u/id\(appID)?ls=1&mt=8&action=write-review
What you should do is implement the SKStore​Review​Controller for IOS 10.3 and higher.
It's super simple,
import StoreKit
SKStoreReviewController.requestReview()
It turns out that the system will automatically limit the display of the dialog to 3 times over a 365-day period, so there’s no logic required to check this.
There is however a recommendation that you show the prompts at ‘logical points’ when it is clear the user has made some sort of engagement within the app.
The guides also say you should allow a week or two between repeated displays of the prompt so users don’t feel like they’re being pestered(this will require some thoughtfulness and implementation on your part).
Jordan Holland
First, according to apple guidelines you shouldn't do this,
but you can just add to itunes link of your game &action=write-review and just open this link.

Use hidden SFSafariViewController to get Safari cookies

I was reading the following post on authenticating users from mobile web pages to native iOS 9 apps and was wondering how to best implement a hidden safari view controller similar to the hidden controller talked about below?
https://library.launchkit.io/how-ios-9-s-safari-view-controller-could-completely-change-your-app-s-onboarding-experience-2bcf2305137f#.r810oldla
Don't use this approach if you're going to distribute your app to the AppStore, because according to updated App Store Review Guidelines:
5.1.1:
(iv)SafariViewContoller must be used to visibly present information to users; the controller may not be hidden or obscured by other views or layers. Additionally, an app may not use SafariViewController to track users without their knowledge and consent.
This has changed in iOS 11. Going forward, every app (including Safari itself) will have a completely sandboxed data store. Official announcement here (at the 17:28 mark).
Long live the invisible SFSafariViewController. iOS 9 to iOS 10.
If you need a way to pass a guaranteed user match through from Safari to your app, you'll need to use an existing network of device matches, such as Branch.io (full disclosure: I'm on the Branch team). You can read about the techniques Branch uses instead of cookie passthrough here.
You can give the sample code here a try: https://github.com/mackuba/SafariAutoLoginTest

Can I find out the location of an app's icon on the home screen?

Is is possible to dynamically figure out the position of an app's icon on the home screen of an iphone/ipad?
Sorry I don't have enough credit to comment yet so I'm posting here.
To my knowledge no you cannot natively or easily do this. I know of no open source or other libraries. The reason being that your app exists in its own world, it is not in touch per say with the rest of the device. It can get permissions to read and write data but it doesn't know of itself.
Does that make sense?
When you open a website it cannot know which tab it is in the browser. Instead it knows how it was accessed and what device (physically) is using it. It knows the user-agent, the time, the browser, etc because that is information sent to it in the request. In turn the phone on launch gives data to the app in how to handle it but not for example how many other apps are running, or where it is on the screen. It's not normally considered relevant to run time. In addition it's a security feature in preventing an app from deleting or altering other apps, as well as itself. If you have an iPhone you will notice that SIRI cannot turn off google maps navigation or any other non-apple specific app. Only apps natively comparable and private party ones (ex apples) are accessible because Apple did that intentionally. They all know of their own existence and each others. However non-native in the sense of apps that do not come preinstalled and manufactured by the company creating the device are less trustworthy, in addition there are no guarantees about how they will be run by the device, where they will be, or what other apps will be there.
It is true that an app can request for another app it may be comparable with but it is up the user to handle that information.
May I ask for curiosities sake why you are trying to do this? Are there any other workarounds?
However in terms of it being physically possible, yes. I doubt that apple allows independent developers to do this however. But an example of this occurring may be gridlock where a user can move their apps around differently on the screen. The app in this case has the ability to access app position. But I believe in this case app position is about the UI and not about nested files. apps cannot to my knowledge modify information outside of their own file. Imagine if you had an app that could edit other games scores.
It is not possible to dynamically find out the position of an app's icon on the Home Screen (even for jailbreak apps). Apple wants you to respect the user's privacy settings.
Extra Info - There is popular JavaScript library that adds a promo bubble to the bottom of your mobile web application, inviting users to bookmark the app to their device's home screen.

Resources