<分区>
要求:
- 必须可以通过互联网访问,而不仅仅是内部访问
公司网络(即必须有前端接口(interface))
- App Store 服务器必须在内部托管(即没有第三方托管服务)
- 最好通过用户名/密码保护
- 最好能够自动将更新推送到授权设备
这背后的原因是,我们希望对大约 1,000 名用户进行有限的应用测试,并且我们需要一种方法来向这些用户的设备分发更新,而无需让公众访问我们的测试版软件。
我们最初只是探索将 APK 托管在 Apache 网络服务器上,但由于我们想限制访问,我们尝试在网络服务器上设置用户名/密码。好吧,事实证明,Android 下载管理器有一个错误,如果手机受 htaccess 保护,它会阻止将文件下载到手机。
接下来,我们想到了使用 FTP 服务器,然后在每个 Beta 测试人员的设备上安装 FTP 客户端,但这很糟糕。现在这是我们的最终选择。
“内部”应用商店服务器似乎是最好的选择。有解决办法吗?如果可能的话,最好是免费/开源的。
对于初学者:即使您不能直接通过 URL 使用 htaccess 直接访问 APK,您也可以将它隐藏在一些服务器端代码后面,例如 php 文件,它只检查用户的凭据是否有效,并返回一个如果一切都检查出来了,文件附件而不是 html 页面。如果您要基于浏览器,我建议您使用这种方法而不是使用 FTP 客户端。
但是,在您的要求列表中:假设这些是零售的、非根目录、非自定义 ROMMED 设备,不可能将应用程序更新自动推送到设备。你能做的最好的事情就是提醒用户,甚至下载 APK——但是当你发出安装 APK 的 Intent 时,用户仍然必须看到请求并手动批准安装。如果你看看亚马逊和 appbrain 等第三方市场应用程序,它们必须以相同的方式做事。请注意,为了以这种方式安装应用,用户必须使用“设置”应用手动启用从“未知来源”安装应用,这实际上是指 Google Play 商店以外的来源。
也就是说,该限制仅适用于替换完整的 APK。没有什么可以阻止您通过后台服务下载更新的资源(图像、声音、文本、数据库更新),但这是必须融入应用程序而不是私有(private)市场的东西。