几个月来我一直在无线分发我的应用程序,没有任何问题。当然,我是根据企业许可证分发的,该许可证每年花费 299 美元,旨在供内部业务使用。这可能适用于普通的开发人员许可证,但您必须进行一些测试以确保。我想如果它确实有效,这个过程是一样的。我使用的是 XCode 4,所以如果您使用不同的版本,这可能会略有不同。基本上,您必须将 Entitlements.plist 文件添加到您的资源中:
New->File->Code Signing->Entitlements
在分发之前,您必须进行更改:
"Can be debugged" to NO
确保您的项目设置了正确的代码签名配置文件。现在转到:
Product->archive
然后使用您新建的条目,单击:
分享
Select "iOS App Store Package (.ipa)"
并选择您要使用的正确分发配置文件。单击下一步,然后选择保存 .ipa 文件的位置。在你点击保存之前,你需要检查一下
Save for Enterprise Distribution
.ipa 文件需要保存在 FTP 服务器上,或者至少我是这样让它工作的。对于“应用程序 URL”字段,使用您要保存的 .ipa 文件的路径,例如,
ftp://ftp.company.com/Installers/myApp.ipa
给它一个标题,然后在“大图像 URL”和“小图像 URL”中给它一个指向您的大 (512x512) 和小 (72x72) 图标文件的路径,(我正在为 iPad 开发,所以 iPhone 可能不同)。例如,
ftp://ftp.company.com/Installers/small.png
保存 .ipa 文件。现在您需要将 .mobileprovision 文件放在 ftp 服务器上。任何想要运行该应用程序的人都需要安装该文件,否则他们将无法运行它。现在,如果您不是企业计划的一部分,我不确定您是否需要一个内置所有设备 ID 的 .mobileprovision 文件,但您可以尝试看看。一旦您的文件都在 ftp 服务器上,您将需要创建一封电子邮件,其中包含指向这两个文件的链接,但 .ipa 文件的链接必须采用特殊格式。对于配置文件:
ftp://ftp.company.com/Installers/profile.mobileprovision
对于 .ipa 文件:
itms-services:///?action=download-manifest&url=ftp%3A%2F%2Fftp.company.com%2FInstallers%2FmyApp.plist
现在,当您将这封电子邮件发送给某人时,他们只需先下载并安装 .mobileprovision 文件,然后再安装 .ipa 文件。瞧,他们正在运行您的程序。让我知道这在没有企业订阅的情况下是否有效。我想只要 .mobileprovision 文件包含设备 ID 就可以了。
编辑:
我找到了一种更好的分发应用程序的方法,但它要求您拥有 PHP 服务器。您所做的是创建一个 PHP 文件,该文件动态生成 plist 文件并返回该文件。在大图像、小图像和 ipa 文件的链接中,您传递指向其他 PHP 文件的链接,这些文件会为您的特定程序返回这些内容。当您想通过链接安装应用程序时,您只需像这样传入 url:
itms-services:///?action=download-manifest&url=http://mycompany.com/php/installApp.php?app=myappname
在您的 PHP 函数中,您只需将 myappname 插入到其他 PHP 调用中,这将从您的服务器中提取正确的文件。使用此方法,您无需在生成任何应用程序时为它们存储 plist 文件,这使得更新应用程序更容易,因为您无需每次都重新输入信息,甚至不选中复选框企业发行版,只需将 ipa 文件保存在旧文件上即可。此外,使用这种方法很容易实现安全和登录功能。此外,您不需要专门安装移动配置文件,因为它会在您安装应用程序时自行安装。它存储在 ipa 文件中。
编辑:
为了阐明 PHP 方法,您创建了一个用于创建 plist 文件的 php 文件。复制从企业分发版本创建的标准 plist 文件,然后在您的 php 文件中,设置如下标题:
$pathToAddFi = "installers/".$_GET['app'].".plist"; //points to the php server file location of your .ipa files. when you call this php script, you pass in the name of the ipa file you want to install. Note: this location doesn't actually contain any plist files!
$root = "http://yourserver.com/php/root/"; //path to this PHP file's directory
header('content-type: application/xml');
header('Content-Disposition: attachment; filename='.basename($pathToAddFi));
header('Content-Transfer-Encoding: binary');
然后您构建一个字符串来替换您的项目的网址,如下所示:
<string>".$root."ipa_serve.php?app=". $_GET['app']."</string>
并在回显 xml 字符串之前以最后一个标题结束:
header('Content-Length: ' . strlen($myXml));
最后,您创建一个 php 文件来提供您的 ipa 文件,一个提供您的大图像,一个提供您的小图像。除非您对 PHP 不是很熟悉,否则应该相当简单。