2012-01-06 29 views
1

我有一个企业帐户,我分发一个私人应用程序,所以我有一个网页,需要一个登录名/密码,然后有一个链接到.plist清单文件,该文件也链接到.ipa文件,问题是两个文件都在同一台服务器上,并且该服务器需要登录。iPhone App无线分布 - 如何保护.ipa文件?

这就是为什么每当我点击链接即使我已经登录,我得到“无法连接”弹出。我虽然自从我登录后通过了凭据,但显然他们没有。

如何在不需要密码的情况下保护.ipa文件的下载(或者密码是由用户以某种方式提供的),而无需某人能够创建自己的清单文件并将链接提供给我的.ipa文件?。

我试着在网上寻找解决方案,但没有发现任何东西。

任何帮助将不胜感激。

谢谢。

回答

4

您可以使用php和mysql创建自己的登录系统。

将ipa文件放入public_htmlhtdocswww_root之前的文件夹中或您用作网站根目录的任何文件。这样人们就无法链接到它。

然后用一些这样的代码:

$file = '/absolute/path/to/application.ipa'; 

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename($file)); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    ob_clean(); 
    flush(); 
    readfile($file); 
    exit; 
} 

这将迫使下载。如果用户未登录到会话中,则可以提供错误消息或类似信息。

+1

这将强制下载.ipa文件,但是我需要使用清单文件链接到.ipa文件,以便用户能够通过下载应用程序点击一个链接。 – 2012-01-06 18:23:38

+0

哦,然后对清单文件做同样的事情。您可以将标题更改为清单标题。 :) – 2012-01-07 01:18:12

1

你看过TestFlight https://testflightapp.com/或HockeyApp http://www.hockeyapp.net/

仅适用于iOS我推荐TestFlight,但是如果您分发Android应用以及HockeyApp可能会更好。 (TestFlight目前不支持Android)

+0

这看起来像一个伟大的测试工具!谢谢!。我只有一个问题是为应用程序发送的电子邮件链接?我不知道哪些人会收到该应用程序,因此他们必须能够登录到一个网站点击该应用程序并下载它,只要他们想。 – 2012-01-06 18:12:07

+0

这正是它所做的,但一个普通的iOS开发人员帐户将持续这个... – 2012-01-06 19:48:19

+0

HockeyApp有一个额外的安全功能,可以使用SDK启用。这将使应用程序检查服务器来验证设备是否真的允许运行此应用程序。否则,任何开发人员都可以使用自己的证书重新签署.ipa以使其运行。另外,有越狱设备的用户也可以在不重新签名的情况下运行该应用。这个检查有帮助。 – Kerni 2012-01-16 13:22:14