iOS应用程序可以从企业MDM中提取一些环境变量吗?

时间:2018-10-17 14:02:02

标签: ios mobile environment mdm

我们有一个由软件公司为我们开发的应用程序。我们希望将该应用程序发布到官方的Apple App Store,然后将其发布到我们企业内部的App Store。可以在应用程序启动时检查某些环境变量,其方式为:如果它包含一定的值,则它连接到我们的服务器,并且如果它是从Apple App Store启动的,则它连接到另一台服务器。 看起来可能像这样:

if (mdm.companyName() == "My company":
   connect to my company server
else:
   connect to something else

这样做的目的是使我们在启动时少一步,并且用户只需传递用户名和密码,而不传递服务器地址。

如果我们已将与服务器的连接硬编码到应用程序源中,则Apple将无法在发布该应用程序之前对其进行检查(我们将不得不授予他们访问服务器的权限)。

任何有关如何解决它的建议将不胜感激。我试图从此处获取此信息,但找不到任何内容:https://developer.apple.com/enterprise/documentation/MDM-Protocol-Reference.pdf

2 个答案:

答案 0 :(得分:0)

我认为“将应用程序拉到内部企业应用程序商店”是不可能的。

AppStore应用必须由您的“常规”开发者证书签名,而企业应用则必须由“企业”开发者证书签名。

如果您真的希望AppStore应用程序与您的企业应用程序共存,我建议只创建两个不同的.ipa文件

  • 一个用于Apple AppStore的服务器,带有一些不同的服务器URL,然后将对其进行审查等。
  • 一个用于内部企业应用商店的文件,带有一个内部服务器URL

因此,在构建期间,您将决定是为Apple AppStore还是为Enterprise进行构建,并提供不同的配置文件。

由于Apple不审查企业应用程序,因此您可以不受限制地使用内部URL。

答案 1 :(得分:0)

是的,可以,但是需要在应用程序中内置支持。

许多MDM / EMM供应商都支持AppConfig标准。

该站点未列出Microsoft InTune,但我相信InTune也可以推送所需的文件。

从企业App Store分发应用程序后,使用Managed App Configuration将XML文件推送到设备。通过UserDefaults键,可以在com.apple.configuration.managed中以字典的形式查看此文件的内容。

如果存在此密钥,则应用程序可以提取相关值,例如服务器地址。如果不存在,则可以使用默认值。