As part of our Mobile Device Management feature, we offer private appstore to our customers. Administrators can upload an ipa file to our server, and we will allow the managed devices to install those enterprise apps directly.
When the administrators upload the ipa, we want to do some validation, and reject immediately if the ipa does not meet the requirements. Specifically:
- If the ipa is signed by a certificate other than enterprise certificate (such as an appstore certificate), we want to reject it;
- If the ipa is signed by a certificate that has expired, we want to reject it;
- If the ipa is signed by a certificate that has been revoked, we want to reject it.
I have the following questions:
- For requirement #1, I have noticed that enterprise builds have a file
embedded.mobileprovision
in the ipa, but appstore builds don't have the file. Is it sufficient to check for the existence of that file to determine whether the uploaded ipa is an enterprise ipa, or is there a more accurate way to identify a non-enterprise ipa? - For requirement #2, it looks like there is a field
ExpirationDate
inembedded.mobileprovision
, I could just check the value of that to determine the expiration date? - To my knowledge, #1 and #2 above are possible, but #3 won't be able to be verified until the user actually tries to install the ipa. I.e., I can't catch the error when an admin uploads the ipa, but instead I'll allow that, and the user will get the error of not able to install the app.
Thanks in advance.