一个客户要求我们开发一个专有的内部应用程序来管理他们的后端系统。然而,我们是一家小型的开发公司,我确信他们的公司没有超过500名员工。
在没有通过iPhone企业计划的情况下,有没有其他类似的解决方案来将这个应用程序分发给他们的公司?
(只是为了澄清:很明显,我们想通过官方的企业计划,但看看公司怎么没有超过500名员工,这是不可能的)。
更新(27/09):苹果似乎已经取消了企业发行版看这里的500名员工限制。因此,这可能是我们现在的路线(这是有帮助的,因为应用程序即将完成)。如果有人希望我这样做的话,我将在我们完成这个过程时更新它,这样其他人就可以知道实际的过程是什么样的。
发布于 2010-07-27 22:04:17
您可以在AppStore上作为一个完全免费的应用程序提交该应用程序,但需要用户登录并进行身份验证才能使用它。这样,任何人都可以下载它,但您可以控制谁可以实际使用它。苹果为你做所有的分发,你不必担心特别部署或IT部门。
然后,在管理应用程序身份验证的web主机(或像Google AppEngine这样的平台)上构建一个非常简单的配置管理系统。
当用户启动免费应用程序时,他们会被要求提供用户名/密码/任何东西。该信息被发送到基于web的配置管理系统并得到确认。如果应用程序从配置管理系统收到一个可以接受的确认,它就会解锁供用户使用。
该应用程序可以在每次启动时重新进行身份验证(如果您想要大量控制的话),或者它可以在本地存储一个密钥文件,表示它已经过身份验证。如果它在应用程序启动时看到本地密钥文件,它会认为自己是经过身份验证的,再也不检查了。
你是为每个人使用一个用户帐户,还是为整个公司使用一个用户帐户取决于你。
如果您想要控制谁可以使用应用程序,但是想要AppStore提供的轻松部署,这种发行方式非常有用。
苹果已经在AppStore上接受了许多应用程序,这些应用程序使用这种方法对远程服务器进行身份验证(Skype就是一个很好的例子)。
如果您跟踪配置服务器上的设备UDID,还可以预加载它以允许特定的设备集工作。
此外,我所描述的任何东西都不是iPhone特有的,因此,如果您将来移植该应用程序或构建其他需要此功能的应用程序,您就可以在其他平台上使用相同的配置管理系统和概念,比如Android (甚至桌面)。
此外,由于认证设备的操作不需要处理器或数据密集型,所以如果您在Google AppEngine上构建它,您很可能不会付出任何代价,因为您永远不会超过免费配额,并且您将获得谷歌后端架构的稳定性和可伸缩性。
由于这个特定的部署是用于管理内部后端系统,通过AppStore部署它似乎是不安全的,因为应用程序中嵌入了专有信息,特别是允许它连接到后端系统并针对后端系统进行身份验证的信息。
解决方案是不将此信息包含在应用程序中,只需将该信息作为应用程序从配置管理服务器接收到的响应的一部分。基本上,该应用程序包含执行其功能所需的逻辑,但是没有连接信息,它就无法管理任何后端系统。
如果每次启动应用程序时都进行身份验证,则可以更改配置服务器上的连接信息,并且应用程序将更新为新信息,而无需进行任何新的部署。用户只需重新启动应用程序即可。这使客户端可以灵活地更改其内部网络配置,而不会使应用程序代码无效。您还可以在应用程序中手动配置此信息,但是在每个设备上设置应用程序时,您会招致it成本,如果您已经要设置配置管理系统,则最好使用它。
为了进一步保护上述解决方案,您可能希望配置管理系统内部和公司防火墙后面,这样,无论谁获得应用程序,他们都无法连接到配置系统,除非他们是在公司的网络。
发布于 2010-09-24 20:32:40
我昨天和今天都在研究这个问题,看来苹果公司(在过去的一周内)刚刚取消了企业发展的500名员工的要求。但是,我相信您需要使用客户端注册的开发工具包为特定客户端开发/部署。
因此,如果你确实为客户A和客户B工作,客户A和B都需要作为业务开发人员与Apple签约,届时您可以为他们(作为承包商)开发应用程序,并使用他们的工具在他们的企业内构建和部署。我认为你的公司也注册为商业开发商是个好主意。
苹果公司仍然要求你有一个Dun & Bradstreet号码来注册为一名商业开发人员。
发布于 2010-07-22 16:30:04
你唯一真正的选择是..。
破狱可能听起来很可怕,但实际上现在已经相当先进了,而且可以很容易地管理。尽管如此,它还是会使你的保证书无效(除非你愿意恢复到工厂,并且对此不诚实;)
不过,从技术上讲,这是一个可行的选择,如果你愿意计划的话,可以让它发挥作用。
让我们知道你的决定,以及这种方法的利弊。
https://stackoverflow.com/questions/3309835
复制相似问题