Offline MDM profile switching iOS - ios

Is it possible to have MDM profiles stored locally on a device and then switched dynamically? Preferably by an API so an App could do this. With an MDM such as Absolute Manage MDM and Meraki they say this can not be done.
I understand that any App is sandboxed and I myself feel like this is not possible but I need some answers to tell management rather than me just saying no.
Jailbreaking is an option but only if there is no other way.
Any help would be great. Thanks

You can do this, if your have local MDM server (meaning running on a device itself). This way you can switch profiles locally.
There is no public API to manipulate profiles for iOS. And as I remember private API's which are designed to do that are protected by entitlements. So, signing an app with enterprise cert isn't an option.
Jailbreak is an option.
P.S. I have no idea how Absolute Manage MDM and Meraki does what they claim to do.

After further research this was not possible with iOS. I called several MDM providers and spoke to qualified engineers that confirm it not possible without internet connectivity.

Related

How can I create my own apple mdm server to control children devices

I'm developing a parental control application for iOS. I want to block some applications on children's devices by order of their parents. after a lot of searches, I realized that we must use something called an MDM server. but I don't know how can I set up an MDM server and should I use third party services? Does Apple have any solution for this? I mean something that can be implemented easily. we will have a lot of users for this project and we must choose a stable and reliable solution.
I already have an Apple Enterprise Developer program membership.
thanks in advance.

is there any way to distribute ios applications outside app store?

Is there any way to distribute ios applications through my own website, not using app store?
I mean is there any way that enables end users to download the .ipa file from my website with their browser application and install it directly on their iOS devices?
I have looked around in the web and googled it, but it doesn't seem to be any option for it out there, I just want to make sure of it.
Thank You
There are several possibilities, which probably won't match your needs:
Since last month it's possible to test apps on a device without the need of a paid membership.
There's a possibility to deploy an app through a service like TestFlight, but this needs either a profile installed on the device (like HockeyApp) or always new build since the old ones expire after 30 days.
You could deploy an app with the Enterprise Program
The easy way you describe is not possible.
Apart from the options mentioned above there are 2 more methods.
Method 1:
You could ask the user to open a webpage in safari browser with the following link in it.
href="itms-services://?action=download-manifest&url=url of the manifest file"
The app is installed as soon as the user clicks the link.
Method 2:
You can also leverage iOS mdm solutions like Hexnode MDM though its bit of an overkill.
here is a link on how to distribute app without app store
UPDATE:
BuddyBuild service will stop on 1-3-2018, the other alternative I know is https://www.diawi.com
Old ANSWER:
Try BuddyBuild , after making a build you can take link to IPA file and distribute it as shown.
The options include:
App Store (free or paid)
Enterprise Distribution (must be within an organization)
Open source distribution
It does not sound like any of these will meet your requirements, so no.
Further explanation:
Just to be clear, the limitation is not in distributing your .ipa file, it is the ability for users to install it on their phone. iOS requires an app be signed by Apple (from the App Store), from an Enterprise certificate, or from a developer certificate when a valid provisioning profile includes the target device.
Basically there are three ways
App store
With this method anyone with an iPhone can have access to the application. You can distribute an unlimited number of applications like this. Apple gets a 30% cut. Of course, Apple must approve your application.
Ad hoc
You can distribute applications using ad hoc without going through the app store, but you are limited to a maximum of 100 devices. With this method you can distribute your application from a web site, email, etc.
Enterprise
The method is for internal distribution in companies with more than 500 employees. Apple does not provide any more public detail that I could find on this method.
It doesn't sound like any of these methods meet your criteria unless you have fewer than 100 customers and don't plan to exceed that number. It sounds like from the question your customers are not internal to your company.
I would advise contacting Apple. They might be able to arrange some kind of custom distribution deal.
You if don't want to upload your files to the already mentioned web services, you can host your IPA in your own computer and distribute over the internet using ngrok and the approach given by jithin.
I've created a server that does exactly that and also is protected by password. You can check it out here:
https://github.com/Edudjr/IPAServer
To send build to testers or client I am generally using installonair.com which allows to upload IPA file and generate short URL which we can provide to other users and they can download and install easily from that link.
There are other options as well like Apple Testflight, hockeyapp but I found installonair.com is the quick one.
If you have and Enterprise membership you can do this, but it really isn't what they want you to do on a large scale.
Take a look at this question: Deploying an iOS Application Using Apple Enterprise Developer Program
You can use enterprise distribution services like BuildCannon, but you still need an apple enterprise account. I use a custom solution, but it's a pain to maintain.

Installing vpn configuration profile along with other MDM profile iOS

I need to install an VPN configuration profile, which may be changed without user intervention at a later point of time. The straight way is to have the VPN profile installed, and installing the MDM profile so that the configuration can be changed at later point of time.
However, my requirement is only pertain to the VPN configuration and do not want to manage the device completely, and want to co-exist with other MDM vendor's profile installed.
Is there any less privileged way to do this? The main requirement is, I should be able to change my VPN configuration profile, though there is another MDM profile from different vendor is installed in the iOS device.
The only way to upgrade profiles without a user interaction is through MDM right now.
I would love to see iOS device being managed by multiple MDM (Which would alleviate interoperability problem). However, Apple doesn't support this.

What are the requirements for distributing an internal iOS app via the Enterprise Program?

I'm in charge of developing an application for my company. It'll only be used by my company. I found the Enterprise Program.
I read
iOS Developer Enterprise Program
but I also read something about MDM iOS that I need to implement.
Is MDM needed to distribute my app? Also, how will my coworkers be able to download the app? How does Apple know they are authorized, and not some random guy who found the link on Google?
You don’t need to do MDM for the enterprise program as far as I know. As for preventing people from downloading the app, I think you just have to keep the link private, or put it behind a URL that can only be accessed on your company network or VPN. And of course, require login, so someone can’t access your internal information just by downloading the app! Presumably, Apple will revoke your enterprise privileges if they find you are abusing them.
Source: I worked at a company that used enterprise distribution for internal beta distribution, among other things.
One of my clients has 30 iPads that are used with an in-house developed app. The "Ad Hoc" distribution model is easy to implement if the number of deployed devices is less than 100. This approach is sometimes described as a "Beta test" approach, but that's just one common use for it.
See these pages:
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html
Ad-hoc Deployment

Restrict internet connection

Is there any way to restrict internet connection for any applications but currently running (my app)?
May be some configuration profile to make only one application running, or another way?
As far as I know this is only possible possible with the Enterprise Developer Program. There you can push profiles on the devices. These profiles can contain all kinds of restrictions.

Resources