23

一位客户要求我们开发一个专有的内部应用程序来管理他们的后端系统。但是,我们是一家小型开发公司,我确信他们的公司没有超过 500 名员工。

是否有任何替代但类似的解决方案可以在不通过 iPhone 企业计划的情况下将此应用程序分发给他们的公司?

(澄清一下:显然,我们想通过官方企业计划,但看到公司没有超过 500 名员工,这是不可能的)。

更新(27/09):苹果似乎已经取消了企业分布的 500 名员工限制,请参见此处。所以这可能是我们现在的路线(这很有帮助,因为应用程序即将完成)。如果有人愿意,我会在我们完成这个过程时更新这个,以便其他人可以了解实际过程是什么样的。

4

10 回答 10

22

您可以在 AppStore 上将应用程序作为完全免费的应用程序提交,但需要用户登录并进行身份验证才能使用它。这样任何人都可以下载它,但您可以控制谁可以实际使用它。Apple 为您完成所有分发工作,您不必担心 Ad-Hoc 部署或 IT 部门。

然后,您可以在管理应用程序身份验证的 Web 主机(或类似 Google AppEngine 的平台)上构建一个非常简单的配置管理系统。

当用户启动免费应用程序时,他们会被要求输入用户名/密码/其他任何内容。该信息被发送到基于 Web 的配置管理系统并得到确认。如果应用程序从配置管理系统收到可接受的确认,它会自行解锁以供该用户使用。

该应用程序可以在每次启动时重新进行身份验证(如果您想要大量控制,这很有用),或者它可以在本地存储一个密钥文件,表明它已经过身份验证。如果它在应用程序启动时看到本地密钥文件,则认为自己已通过身份验证,并且不再检查。

是每个人使用一个用户帐户还是整个公司使用一个用户帐户取决于您。

如果您想控制谁可以使用该应用程序但又希望 AppStore 提供的易于部署,这种分发方式非常有用。

Apple 已经在 AppStore 上接受了许多使用这种对远程服务器进行身份验证的应用程序(Skype 就是一个很好的例子)。

如果您在配置服务器上跟踪设备 UDID,您还可以预加载它以允许特定设备集工作。

此外,我所描述的任何内容都不是 iPhone 特定的,因此如果您将来移植应用程序或构建其他需要此功能的应用程序,您可以在其他平台(如 Android(甚至桌面))上使用相同的配置管理系统和概念。

此外,由于身份验证设备的操作不是处理器或数据密集型的,如果您在 Google AppEngine 上构建它,您可能永远不会产生成本,因为您永远不会超过免费配额,您将获得 Google 后端架构的稳定性和可扩展性。

由于此特定部署用于管理内部后端系统,因此通过 AppStore 部署它似乎不安全,因为应用程序中嵌入了专有信息,特别是允许其连接到后端并针对后端进行身份验证的信息系统。

解决方案是不在应用程序中包含这些信息,而只是让这些信息成为应用程序从配置管理服务器接收到的响应的一部分。基本上,该应用程序包含执行其功能所需的逻辑,但如果没有连接信息,它就无法管理任何后端系统。

如果您让应用程序在每次启动时都进行身份验证,您可以更改配置服务器上的连接信息,并且应用程序将更新为新信息,而无需任何新的部署。用户只需要重新启动应用程序。这使您的客户可以灵活地更改其内部网络配置,而不会使您的应用程序代码无效。您也可以在应用程序中手动配置这些信息,但在每台设备上设置应用程序时会产生 IT 成本,如果您已经准备好设置配置管理系统,不妨使用它。

为了进一步保护上述解决方案,您可能希望将配置管理系统放在公司内部并位于公司的防火墙后面,这样无论谁拥有该应用程序,他们都无法连接到配置系统,除非他们在公司的网络内。

于 2010-07-27T22:04:17.097 回答
7

我昨天和今天都在研究这个,看来苹果刚刚(在过去一周内)取消了对企业发展超过 500 名员工的要求。但是,我相信您需要使用客户端注册的开发工具包为特定客户端开发/部署。

因此,如果您为客户 A 和客户 B 工作,客户 A 和 B 都需要以业务开发人员的身份与 Apple 签约,此时您可以为他们(作为承包商)开发应用程序并使用他们的工具来构建和部署在他们的企业内部。我认为贵公司也注册为业务开发人员是个好主意。

Apple 仍然要求您拥有 Dun & Bradstreet DUNS 号码才能注册为业务开发人员。

于 2010-09-24T20:32:40.037 回答
1

关于你唯一真正的选择是......

  • 多达 100 台设备作为临时分发。
  • 企业分布(需要> 500名员工)
  • 每个人都必须将他们的设备升级到某个 IT 中心,并构建为“开发人员”设备。(哎呀!)
  • 越狱。

越狱听起来可能很可怕,但实际上它非常先进,现在很容易管理。尽管如此,它仍然会使您的保修无效(除非您愿意恢复出厂并且对此不诚实;)

尽管如此,从技术上讲,它是一个可用的选项,如果你愿意计划一下,它就可以工作。

让我们知道您的决定以及该方法的优缺点。

于 2010-07-22T16:30:04.893 回答
1

另一个明显但不一定令人愉快的是将您的应用程序作为应用程序提交到应用程序商店,但只能使用客户端密码访问。假设您可以通过应用商店流程,这可能对您有用。

于 2010-07-26T07:24:47.747 回答
1

奥利说:

关于您唯一真正的选择是... 多达 100 台设备作为临时分发。企业分布(需要 > 500 名员工) 每个人都必须将他们的设备下放到某个 IT 中心并构建为“开发人员”设备。(哎呀!)越狱了。

但要清楚(如果我错了,请纠正我):

  1. 如果您使用“临时”分发方法,您的客户将看到该应用程序在 3 个月后消失。
  2. 最多只能使用 100 台设备进行测试(即在“开发者模式”下使用),此外,该应用程序将在 3 个月后消失。

所以,Apple 没有给我们任何选择,你真的很大(> 500 名员工)吗?好的,所以你可以做你想做的,否则......“再见”

此外,忘记“布莱斯”之前说过的话,像他描述的应用程序会因为“有限的受众”动机而被拒绝。

iOS 不适用于企业应用程序......如果你不想依赖一些聪明的黑客(即越狱)

于 2010-08-22T11:06:15.163 回答
0

Ad-hoc 分发限制为每个应用程序 100 台设备,这是真的,但是您可以将项目添加 n 次到苹果开发者中心,因此您可以将其部署到 n * 100 台设备

于 2010-07-27T22:13:15.287 回答
0

苹果如何确保您的企业拥有超过 500 人?无论如何,我都会尝试通过企业计划...

我不会越狱,我不会做 ad-hoc,因为它被限制在 100 个,我不会让每个人都将他们的手机置于开发者模式。

对于未来的可维护性,企业模式是可行的方法,所以看看您是否可以在流程中导航,而无需提及您可能没有 500 个用户。

另外,我看到了您关于使用 MonoTouch 进​​行开发的评论。在你做任何其他事情之前,我会与 Apple 讨论这个问题,因为考虑到他们最近的政策变化,我很确定这会让你的应用程序被 App Store 和企业计划拒绝。

编辑:我检查了 Mono 网页。看起来 Apple 可能仍在允许 Mono 应用程序进入,Mono 的创建者坚持认为它是 kosher 的,但你可能会冒着随时从手机中删除你未来的应用程序的风险。

更好的编辑:直接来自单声道网站:Enterprise MonoTouch

需要指出的是,新的 iPhone 开发者协议条款适用于 AppStore 部署,而不是允许将内部应用程序部署到企业用户的企业计划(使用企业部署计划)。

因此,只要您可以进入企业计划,您就可以在那里做得很好。

于 2010-07-28T20:44:21.230 回答
0

如果您将应用程序开发为纯 HTML5 解决方案,则可以完全绕过 App-Store 或企业开发人员计划的审批流程。这种技术称为 webapps。而且它们的功能非常先进。您自动拥有跨平台准备和非常简单的部署选项(作为 webclip,可以通过 .mobileconfig 配置文件分发)请参阅http://www.apple.com/webapps/whatarewebapps.html

于 2010-08-30T10:27:29.327 回答
0

还有另一种解决方案:一个自己的应用商店:

http://rhomobile.com/products/rhogallery/

不幸的是,只能与 RhoHub 结合使用。

或: http: //www.appcentral.com/

更多信息: http: //www.apple.com/iphone/business/integration/mdm/ http://www.cio.com/article/638175/Emerging_Tech_Alternatives_to_Apple_App_Store_For_Enterprises?page=2&taxonomyId=3002

于 2011-06-13T17:06:34.573 回答
-1

从理论上讲,为一家公司发布免费应用程序的提议解决方案是无效的,因为在应用程序商店中发布的应用程序不应该针对“有限的受众”(无论这意味着什么),根据:

http://appreview.tumblr.com/post/952395621/cannot-be-intended-for-a-limited-audience

有没有人成功地尝试过这个?还有其他想法吗?

于 2010-09-24T15:36:58.460 回答