如何在不管理UDID和重新编译的情况下无线分发ios应用程序

时间:2011-04-05 02:35:20

标签: iphone objective-c xcode

我需要知道人们使用哪些方法无线分发(内部)iPad应用程序演示而无需管理UDID?

我不需要像testflight或betabuilder这样的解决方案,所有这些都要求我在apple provisioning profile portal中管理UDID。

我问的是这个问题,因为我现在看到另一个工作室做得更聪明了,我想知道他们是怎么做到的 - 通过他们给我们的链接,我们可以从简单的HTML安装他们的演示应用程序空气和配置文件神奇地出现在我的iPad上。所有这一切都没有告诉他们我的iPad的UDID,因此绝对没有他们重新编译项目。

他们是怎么做到的?

7 个答案:

答案 0 :(得分:74)

我已经无线发布我的应用程序已有几个月了,没有任何问题。当然,我是根据企业许可证分发的,每年的费用为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));

最后,您创建一个用于提供ipa文件的php文件,一个用于提供大图像的文件,另一个用于提供小图像。除非你不熟悉PHP,否则应该相当直接。

答案 1 :(得分:8)

我刚刚经历过同样的事情。我认为最大的不同是企业分发配置文件(每年299美元) - 如果你有其中一个,你不需要在列表中有设备UDID。如果你有正常的每年99美元的交易,你必须。就这么简单。

好消息是,Apple最近放弃了“500名员工”限制,因此任何公司都可以获得其中一项:http://blog.apperian.com/2010/10/apple-opens-ios-developer-enterprise.html

你只需要从Dun和Bradstreet获得一个免费的DUNS号码,这需要30天。我们申请了我们的,并将看到它是如何实现的。

答案 2 :(得分:7)

您确实需要配置文件,但它已嵌入.ipa文件中,不需要通过iTunes安装作为单独的可安装文件。

您应该查看TestFlight,这是一个用于管理OTA Ad Hoc构建分发的Web应用程序;这是梦幻般的。它可以做各种聪明的事情,包括为你收集用户设备的UDID。 (你,开发人员,仍然需要将这些输入到iPhone开发中心的配置门户,但是用户仍然可以保持不知道UDID甚至存在,更不用说他们必须将它发送给你。也许这是你的老板以前用过的。)

答案 3 :(得分:2)

我不知道在没有用户的UDID的情况下实现此目的的方法。我的猜测是,开发人员已经有了你的老板&#39;之前的UDID和创建/捆绑新的配置文件,或者您的老板正在测试移动Web应用程序。

现在使用Wireless App Distribution,您可以更轻松地进行临时分发。

iOS 4: wireless app distribution for in-house applications

答案 4 :(得分:2)

您所指的应用程序称为Beta Builder。我的老板今天第一次使用它,效果很好。绝对值2美元。

答案 5 :(得分:0)

  

所有这一切都没有告诉他们我的ipad的UDID,因此绝对没有他们重新编译项目。

鲜为人知的事实:您无需重新编译应用程序。您甚至不需要重新签名应用程序。重要的是,安装的配置文件与应用程序内的embedded.mobileprovision“足够相似”(配置文件名称?捆绑ID?捆绑种子?谁知道)。

或者,他们可以做自动构建。也许。也许不是。

可能发生的事情:

  1. 服务器向您发送“配置文件”(请参阅​​SCEP / enterprise)。显然,这可用于获取设备的UDID。 TestFlight就是这样做的。
  2. 服务器自动执行一些操作(通过屏幕抓取,或通过某些Enterprise API,如果有的话):
    1. 将设备UDID添加到Apple的设备列表中。
    2. 告诉apple生成配置文件。
    3. 下载配置文件。

答案 6 :(得分:0)

接受的答案很老了,我发现很多令人困惑的资源用于分发企业应用程序,所以我想我会用更好的解决方案作出回应。

HockeyApp是免费的,允许您上传您的企业(和Ad-Hoc)版本并作为公共下载页面。请注意,这只能在没有注册用户和配置其设备的UDID的情况下工作,如果您有其他人在此处提到的Apple Enterprise帐户,但它是迄今为止最简单,最快速的工作流程,可快速将应用程序分发给客户端,而无需设备配置的开销。