iOS Developer Enterprise Program - Hosting on Web Server - ios

I am new to this site, so bear with me. I just wanted to ask a quick question regarding the iOS Developer Enterprise Program. I am enrolled, and I have made a few apps that are ready for in-house distribution. I have uploaded the .plist and .ipa file to my website in a separate directory. However, whenever anybody tries to download it, they just get the error message "Could not connect to website.com". Then, when I open up Xcode and launch the console when my iPhone is connected and I try to download it, Xcode displays this: "Could not load download manifest with underlying error: (null)". The null part really throws me off. Everyone has iOS 7.1 (or mostly everyone), and the website does have an SSL certificate, so I can't figure out why it is showing that error. Any help with this would be great.
Thanks!

Was ready to give up and change SSL provider, but managed to get the reason for me. Hope this will help for someone:
Problem occurred because my server was responding 403 Forbidden for manifest download request by Safari (because this request does not send cookies required for being authorised).

You need to make sure that the website that hosts the .plist and the .ipa files uses https. This is a requirement in iOS 7.1 and above.

Related

pkpass not downloading on physical iOS device

Background: I'm learning Apple Wallet by creating a barebones sample app and am trying to automatically update a pass. In order to do so, I understand I need to run a web server that sends push notifications to the device when it's time for the pass to update. I'm using Apple's sample code and running their Ruby webserver via localhost. It correctly generates a .pkpass file, which I can add to Apple Wallet in the simulator by visiting the localhost site or by dragging in the .pkpass file.
Problem: This process doesn't work on my physical iPhone. When I go to the localhost on my iPhone, it shows a 200 response code but comes with the popup "Safari cannot download this file." Even if I try just emailing the generated .pkpass file to myself, it won't open in Wallet.
For anyone who may be wondering, I got it to work by changing the web host to https. Then I ran into another problem getting automatic updates to work, solved here: How to allow HTTP webServiceURL in apple wallet's pass.json file

How debug Universal links

I use the cordova plugin "ionic-plugin-deeplinks" (to my knowledge also works with a plain cordova app).
On Android, links when clicked let users choice between chrome and my application.
=> I suppose that app links works
=> As I'm able to access window.IonicDeeplink and redirect the user to the right page
I'm not able to have the same behavior on iOS, when I click a link I always get the app open in Safari.
How can I find clue on issues ?
More context:
apple-app-site-association is got with a HTTP 200 (over https only), it's located in /.well-known/apple-app-site-association:
I checked TeamID and BundleID 5 times (at least);
with the branch.io validator i get all validations green:
Your domain is valid (valid DNS).
Your file is served over HTTPS.
Your server does not return error status codes greater than 400.
Your file's 'content-type' header was found :)
Your JSON is validated.
with the apple validator, I got : "Action required
Could not extract required information for Universal Links. Learn how to implement the recommended Universal Links.
Error no apps with domain entitlements
The entitlement data used to verify deep link dual authentication is from the current released version of your app. This data may take 48 hours to update." (but some devs said that working app add the same error) what to do with that result?
when monitoring server's log while installing the app with Xcode I see a request get a HTTP 200 on apple-app-site-association
while installing the app with Xcode I got no logs referring to swcd in Xcode (I read here that I should if I had error while installing the app). Is a successful installation silent?
I followed that guide to setup entitlements, but some things feel odd with it:
Unlike the snapshot in the guide, I didn't found any *.entitlements file in my project. Should I have one with cordova? (my xCode seems to remember my setting though). Is it possible to check that installed app get entitlements?
I did set my domain in Xcode like this: applinks:mydomain.com and the switch is ON. But I never uploaded any thing from my local dev environment to apple services. Should I have? If yes, how ?
My current interrogations are highlighted but any explanations on any lack of understanding will be more than welcome!!!
Until then I started a verification for testFlight looking for more info.
while installing the app with Xcode I got no logs referring to swcd in xCode
I implemented Universal Links manually, but situation was similar. Particularly I mentioned empty swcd process log while installing the app, and it turned out that most likely iOS didn't even try to download apple-app-site-association file, like if responsible process wasn't run. In my case device restart helped and deep-linking began to work.
Thus I think restarting device is one another step in troubleshooting when you are sure about all your setup.
For anyone trying to debug this in development:
In XCode, ensure you're editing the Debug version of Signing & Capabilities.
To bypass the Apple Universal Links CDN, configure your Debug domains like applinks:?mode=developer -- adding that query string in development is important.
On your iOS Device, go to Settings->Developer->Universal Links and ensure the Associated Domains Development toggle is switched on.
On your iOS Device in Settings->Developer->Universal Links->Diagnostics, enter your Universal Links URL and ensure you get a green checkmark.
After following all of these steps, Universal Links work locally.

Downloading and Installing IPA from server if user clicks on button on Iphone

I am working on an app where I deploy the .ipa file and manifest.plist on my server and from there I try to install the app to my iphone.
The app is initially installed but I need to check if a latest version is available on the server. I have done this part and now wish to install the latest .ipa from the server directly to my phone without redirecting user to the html page of the server
Found some links on stack overflow, especially this:
Download and install an ipa from url on iOS
I have done this:
let endPointURL = NSURL(string: "itms-services://?action=download-manifest&url=myUrlString")
UIApplication.sharedApplication().openURL(endPointURL!)
I get unsupported URL exception. Can anyone tell me how I can achieve this? Is there any other way to directly start installing the upgrade without navigating to the actual html page?
It's just for testing purpose. Only registered devices are allowed to do this.
Only single way is there to download your app and its app store. You can give app store link and it will redirect user to appstore.
And if you want to test just use test flight it's easiest way.
Your linked question also tells that. Just for testing purpose it's possible now.
I found this same issue before.
A workaround for this is to new up a webview (you can hide it if you wish) and then give the request to the webview to perform. When the request loads you will then be shown the popup asking if you wish to download the app.

iOS 7.1 OTA Install Fails "Cannot Connect to <url>"

I've searched the interwebs/SO far and wide and I'm having no luck.
Server is running IIS 6;
.ipa mime type is set to application/octet-stream;
.plist mime type is set to application/xml;
Server has valid Godaddy certificate installed.
The link itms-services://?action=download-manifest&url=https%3A%2F%2Fmyserverurl.com%2Fiosclient%2Fmysoftware.plist fails to install on iOS 7.1 devices. It's set to https. If I set that link to http, my phone running iOS 7.0.4 downloads and runs the application just fine. If I set the manifest to use https, both devices show the error "Cannot connect to myserverurl.com". I have tried setting the link to the IPA file in the manifest to both http and https but I am having no luck at all.
I made sure that I can put both the plist and ipa URLs in the address bar of my browser and they are both completely accessible.
Any ideas? I've been playing with this for a couple hours now and I'm not having any success.
There are several reasons why you may see the "Cannot Connect to " error; however, one other thing to check are the file permissions on your server. Specifically, right click on the folder which holds your IPA and plist and choose properties, then go to security. Add the "Everyone" user and assign full rights to it. If that resolves your issue, you can then "backpedal" to a more secure, but functional user/file permission configuration of your choosing.

ios Application - Manually Installation for a Custom Application

I am currently developing an iOS application for iPhone and iPad and i need to manually install the application without the need for xcode.
Is any way to install the custom application manually like the way i do with android. For example to copy the package to the phone and install it?
The idea is to update the application after every bug fix without the need of xcode because the client does not have a mac.
Thanks!
If I understand your question, then my answer will help you.
As your client doesn't having mac and assuming that you have created a build of app u want to install with valid distribution certificate.
Just upload your build here - http://www.diawi.com (You can upload provisioning profile too)
It will give you a link. just send that link to your client and let hih/her open that link in iDevice's safari browser. Then simply hit install button to install app.
Use TestFlight.
EDIT: If you want to client to know update about app, then I will suggest to go for TestFlight as you can mention the version and also can add comment about each build updated there and client can read it by logging in that app from it's device.
Easy way, Make its .ipa file upload it on here - http://www.diawi.com, it will give yoy url, this url give yor client and open it on safari, your application will install in client iphone without Xcode.
They can do it via iTunes or iPhone Configuration Utility. Refer the link

Resources