I have an IOS application that I want to download from a link existing in a web application. I have created a plist file containing the URL of the "ipa". But when I click on the link from my iPhone, I get this message: "cannot connect to ...".
This is my plist file:
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://blabla.fr:8443/test.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mycompany.test</string>
<key>bundle-version</key>
<string>1.3</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>test</string>
</dict>
</dict>
</array>
</dict>
</plist>
My plist and ipa files are accessible from an URL on port 8443.
Follow this it's help to You.
http://aaronparecki.com/articles/2011/01/21/1/how-to-distribute-your-ios-apps-over-the-air
Related
When downloading and installing the enterprise application on iOS11, the icon is not displayed for the blank, the state is waiting, but it is actually downloaded and downloaded after the normal display and use.
IOS10 and previous versions have not appeared before. There will normally be downloading progress and icons. Plist has not been modified. I don't know what the new feature of iOS11 is or bug. I always think it's a network problem.
Only recently did I test other old iOS before I found normal. Only iOS11 has this problem. I found many, did not find the answer, estimated business account number is also less.
app installing screenshot
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://xx.com/kmia_ump.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://xx.com/180.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://xx.com/1024.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>xx.xx.xxxx</string>
<key>bundle-version</key>
<string>xxx</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>xxx</string>
</dict>
</dict>
</array>
</dict>
</plist>
I'm trying to create OTA for my enterprise app. I have created all pre-requisite for the same including signing certificate, provisioning profile. When I use apples standard hyperlink link nothing happens on the device, just blank screen. I've uploaded IPA and manifest file to https storage and pointed the hyperlink to manifest location.
Install App
Am I missing something here?
Here is my plist.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://example.com/sampleApp.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://example.com/logo%2057%20X%2057.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://example.com/logo%20512%20X%20512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.sampleApp</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>sampleApp</string>
</dict>
</dict>
</array>
</dict>
</plist>
Finally I was able to fix the issue. I see issue was with not having correct signing certificate. For anyone who want to distribute the app in-house without MDM they can follow steps in below blog post.
https://medium.com/apps-studio/distributing-enterprise-ios-app-in-house-without-mdm-3ed015009893
Internally I have a 4-step process for testing (each is an environment): dev, build test, user acceptance testing and production.
Currently, I'm not using TestFlight and am having to create a manifest with the respective URL given each environment above. There's repetitive work.
Is there a way support multiple app URLs inside the manifest for over the air installation? Can I do it without TestFlight?
Yes, you can inclide multiple .ipa links within a single .plist. You just include multiple asset dictionaries in your plist. We do this to offer a single "bundle" install of multiple internal apps. Here is an example of a plist with two apps (app1 and app2) make sure you update the url, bundle-identifier, and title for each app you include in the bundle.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://server/app1.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.company.app1</string>
<key>bundle-version</key>
<string></string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string></string>
<key>title</key>
<string>App description 1</string>
</dict>
</dict>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://server/app2.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.company.app2</string>
<key>bundle-version</key>
<string></string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string></string>
<key>title</key>
<string>App description 2</string>
</dict>
</dict>
</array>
</dict>
</plist>
we have a lot of inhouse apps and want an app like AppStore. We did a demo. We can open installed apps but apps,not installed on iPhone, can't be downloaded from our servers to the iPhone.
We do:
if([UIApplication sharedApplication] canOpenURL:..] == false){
NSString *schemelink = [NSString stringWithFormat:#"itms-services://?action=download-manifest&url=%#",**plist_url**];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:schemelink]]
}
The things that we do to find the reason:
Copy-paste plist url to the Mac Safari and I check the plist and it's correct everything(ipa links and others). They all at the same path.
Copy-paste just ipa url. It started to download on Mac.
Copy-paste ipa url with itms-services://?action=download-manifest&url=, it says
There is no application set to open the URL ......ipa
Search the App Store for an application that can open this document, or choose an existing application on your computer.
How can I solve it?
.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://....../AppName.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.company.AppName</string>
<key>bundle-version</key>
<string>1.3</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>AppName</string>
</dict>
</dict>
</array>
</dict>
</plist>
Your plist file should be hosted on HTTPS SSL enabled serve only otherwise you can not install it.
I have attached a sample manifest.plist file with sample data, you can modify with your original one.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://127.0.0.0/app/App.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://127.0.0.0/app/icon57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://127.0.0.0/app/icon512.jpg</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.companyname.appname</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Your application name</string>
</dict>
</dict>
</array>
</dict>
</plist>
Place all the following files in same directory on your server.
App.ipa
icon57.png
icon512.jpg
manifest.plist
Your download URL should look like following.
itms-services://?action=download-manifest&url=https://127.0.0.0/app/manifest.plist
Example Click here to download App.
Also make sure your server supports MIME Type of application/octet-stream for ipa and text/xml for plist.
I want to distribute my iOS app by Ad Hoc. Since the current version of XCode doesn't create .plist file, so I got one from StackOverflow and filled it as blow.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://hungry.portfolio1000.com/HungryHandongi.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.Akadev.HungryHandongi</string>
<key>bundle-version</key>
<string>1.06</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>배고픈 한동이</string>
</dict>
</dict>
</array>
</dict>
</plist>
The url of the .plist file is: https://dl.dropboxusercontent.com/s/tulw9h412me6ayh/HungryHandongi.plist?dl=0
Now I want to let people download the app through the url http://hungry.portfolio1000.com/hungryhandongi.html which is coded like below:
</head>
<body>
<ul>
<li>Download</li>
</ul>
</body>
</html>
When I open the url with Safari and click 'Download' link, nothing happens. I want know what I've done wrong.
Thank you.
I think you are getting this issue for iOS 8.
Yes for Over the air distribution you need to create plist file manually. and you have to change your identifier like
com.Akadev.HungryHandongi to com.Akadev.HungryHandongi.iOS8fix
Please check below plist , it will help you
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://www.path.com/build/iphone/some/2015/022015/name/appname.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://www.name.com/build/iphone/EnterpriseTB/2015/022015/some/iTunesArtwork.png</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://www.some.com/build/iphone/some/2015/022015/some/Icon.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>mobi.somecmp.appname.ios8fix</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>appname 2015</string>
</dict>
</dict>
</array>
</dict>
</plist>
Note: For ADHoc Distribution device id should be added into your provisioning profile.