Can you set up iOS Universal Links without a separate website? - ios

Is it possible to set up iOS universal links without having a separate website?
For example, if you want a universal link that 1) opens your iOS app if the user has it installed on their device and 2) opens up the App store listing on any device without the app installed.
It seems that having a separate domain you control is the standard way to do it. The Apple documentation (here), and other guides like here and here, seem to make it pretty clear that you need to add the JSON code in the Apple App Site Association file to a separate website that you control.
But is it possible to set up universal links without that website?
Detail:
For an iOS mobile app developer, setting up a separate website, dealing with website hosting, etc. is distinct from building an iOS app, and an involved additional task to go through just for universal links. Many developers might have a site already or have experience building websites in addition to mobile apps, but it's still a different thing than building mobile apps.
So I'm surprised if Apple assumes app developers have a website ready to go for the purpose. I note there are non-Apple alternatives that do similar things that clearly don't require a website.
Edit: I am familiar with alternative linking systems, such as Firebase and Branch. I want to see how you can do it with Apple Universal Links.
So let's say you want to stick with Apple universal links. Is there a way to do it without setting up a website, dealing with hosts (and potential costs for that), etc?
If it is necessary, what would be the cheapest and easiest way to set up the bare minimum site for a mobile developer that would work for universal links?

Related

Are Google Play and Apple Store allows InAppBrowser of ionic to view a website only?

Before create a new account for iOS, android to upload web app to Google play and apple store, I want to ask:
Are they allows developer to upload an application that use InAppBrowser of Ionic to view website through that uploaded app ?
We need this to keep our work up to the latest date of updates for all users without need so many versions for both iOS and android.
So, are there any positive, negative or past experiences related to this topic ?
If you take a look at the review guidelines from Apple, https://developer.apple.com/app-store/review/guidelines/ it states that
4.2 Minimum Functionality
Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store.
I would make the case to package your app as an Ionic app, and use either Ionic Deploy, or Code Push to update the content of your app on the fly. Note: This type of deployment cannot update Cordova dependencies, but it does let you keep your html, css and js files up to date.
In general yes, they allow this, but they might get confused (specially Apple) and ask you to be careful about the links that you open inside your app.
For example, Apple has certain guidelines about apps that buy/sell cryptocurrency. If you put a link to a buy/sell cryptocurrency website and open it inside the inAppBrowser, the app reviewer might "think" your app is for buying/selling cryptocurrencty and you might get rejected as a result.
However, if you put links to normal website, for example CNN, they should be ok with it, as there are many apps that already do this.

Firebase dynamic links for multiple iOS apps in project

I have a firebase project with two iOS apps and two Android apps.
These apps needs to share databases and users so this design seems natural.
Regarding dynamic links, Android works like a breeze but I’m struggling with the iOS part.
Basic dynamic links setup is easy, the difficult (impossible?) part is to make dynamic link that routes toward the proper app, based on bundleID.
Firebase auto-generates the apple-app-site-association files but the paths components for all apps is always the same : ["/*"]
{"applinks":
{"apps":[],
"details":[
{"appID":"XXXXX.com.test.app1","paths":["/*"]},
{"appID":"XXXXX.com.test.app2","paths":["/*"]}]
}
}
As a consequence, the first app app1 always match and all deep links are directed towards this app.
At this point, i'm unable to open a dynamic link to app2.
The documentation is inexistant for this configuration, even if this fully functional on Android apps.
Am i missing something here ?
Firebase Dynamic Links has limited support for multiple iOS Apps in the same project. We are planning to improve this support, but no ETA on the dates, likely Q1 2018.
Here is one of the most typical example of Firebase Dynamic Links setup for several iOS App in one project: https://photos.app.goo.gl/apple-app-site-association
You still should be able to open app2, if app1 is not installed on iOS device.
I believe you can change order of the Apps in apple-app-site-association by deleting app1 and re-adding app1 to the project.
We do receive more requests on allowing to re-order priority of the App in apple-app-site-association file. For example, developers have free and paid App, so they actually want for dynamic link to work in both Apps.
As a workaround, you may be able to use customURL scheme to re-open correct app2, if app1 was opened when this was not desired. This would be not the best user experience.
Let me know if you have more questions, feel free to open Firebase support ticket to share private information.
As Oleksiy Ivanov has already pointed out, this boils down to the problem, that Firebase Dynamic Links doesn't support using the same URL prefix for multiple iOS apps/targets contained in the same Firebase project.
There are multiple workarounds though:
Using multiple (sub)domains
Use a custom domain
Using multiple Firebase projects
On Android it works out of the box, because you are in charge of matching paths with particular apps within the Manifest file. On iOS it doesn't work, because Firebase is in charge of such matches within the hosted apple-app-site-association file (as you've already pointed out in your question).
For further information, I've written an extensive answer here.

App-Store Review Guideline: Responsive website in web-view

I have a responsive blogging website which works pretty well across all iOS and Android browsers. Now I want to create a native App for my website.
I don't have the resources to design my App from scratch and create mobile-APIs to be consumed by my App. So I am thinking about opening my website in a web-view. This would not be it though, I will be implementing the features like 'take a blog offline for reading later', notifications etc.
So, what are the chances that it would not get rejected by the App-Store®?
From Apple Guidelines:
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.
Despite the fact, your app will provide "offline content" (which can be accessed by default Safari browser) I think you app will be rejected.
Safari will save the link and the webpage so you can read it, even when you're offline.

iOS Downloader App and Ecommerce Package?

I'm having to launch an ecommerce store that sells audiobooks, and one of my top goals is to make it more mobile friendly. The actual purchase portion isn't a problem, but since iOS doesn't allow in-browser downloads of audio files, I'm looking at having to provide an app for that purpose.
Is there a packaged ecommerce/downloader solution that I could use, such that rather than designing an app from scratch for my store I can build the store using the ecommerce solution and do some configuration to the app to link them up? The only real requirement is that people be able to sign into their accounts, and play/download any files they have bought.
If not, are there any open-source core downloader iOS apps I could use as a base to design my own downloader? I've tried my google-fu, but any query that involves "iOS" and "download" just results in a million "how do I download my app?" FAQs from across the internet.
(I'm not concerned about Android as much since they can just download the audio files, though if the solution supports apps for both so much the better.)

PhoneGap in regards to App Store approval

I read that PhoneGap is approved by Apple as a framework for building native apps, but I'm not clear on how this does not constitute a "website wrapped as an app," something that Apple specifically doesn't like, as per their App Store guidelines. I'm assuming it is because the JS is contained in the application, rather than running on a remote server?
Any clarification on this issue would be most appreciated.
but I'm not clear on how this does not constitute a "website wrapped
as an app," something that Apple specifically doesn't like, as per
their App Store guidelines.
By this Apple means Apps that simply show a UIWebView that loads a remote website, so it basically just behaves like Mobile Safari, just without the controls. Also they wan't Apps to show at least a UI when the device is not connected to the internet, like in the Facebook App where you can still read already downloaded status updates, view photos etc. That's what a "I just wrap a remote website inside a UIWebView"-App can't do.
PhoneGap Apps have all the resources they need (HTML, CSS, JavaScript) on the device residing in the App's bundle, so using such an App would not depend on network availability and could at least show a UI that tells you to connect to the Internet in order to use the App, or they could display already loaded content (like Facebook, Twitter and so on).
I think that the signature of the binary tells Apple what framework built the application, and since all the supporting files (js included) are included in the project and therefore in the binary, it is a standalone application. That being said, I still think that doing things Natively is the best way to go. I am extremely comfortable with javascript and started out thinking Phonegap was the way to go for me. I did a couple of projects with it and then decided to take the plunge and learn Objective-C. That worked out so much better for me. No dependency on a third party framework and I wish that I had started that way.
Sometimes the easy way out just hurts ya in the end IMO.

Resources