我已经通过无线方式分发我的应用程序数个月了,一直没有问题。当然,我是在企业许可证下分发的,这需要每年支付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";
$root = "http://yourserver.com/php/root/";
header('content-type: application/xml');
header('Content-Disposition: attachment; filename='.basename($pathToAddFi));
header('Content-Transfer-Encoding: binary');
然后您需要构建一个字符串来替换您物品的URL,就像这样:
<string>".$root."ipa_serve.php?app=". $_GET['app']."</string>
在输出 XML 字符串之前,以一个最后的标题结束:
header('Content-Length: ' . strlen($myXml));
最后,您需要创建一个PHP文件来提供ipa文件,一个用于提供大图像,一个用于提供小图像。如果您不太熟悉PHP,这可能会有些困难。请注意保留HTML标签。