如何无线分发ios应用程序而无需pipe理UDID和重新编译

我需要知道人们用什么方法来无线分发(内部)iPad应用程序的演示,而无需pipe理UDID?

我不需要像testflight或betabuilder这样的解决scheme,所有这些都需要我在苹果configurationconfiguration文件门户中pipe理UDID。

我在问这个问题,因为我看到另一个工作室现在正在做一个更加聪明的方式,我想知道他们是如何做到的 – 通过他们提供给我们的链接,我们可以通过简单的HTML无线安装他们的演示应用程序,一个configuration文件神奇地出现在我的iPad。 所有这一切发生,没有我告诉他们我的iPad的UDID,因此绝对没有他们重新编译项目。

他们是怎么做到的?

我已经无线分发我的应用程序几个月了,没有任何问题。 当然,我正在根据企业许可证进行分发,每年的成本为299美元,用于内部商业用途。 这可能与一个正常的开发者许可证,但你必须做一些testing,以确保。 我想象这个过程是一样的,如果它的工作。 我正在使用XCode 4,所以如果你使用不同的版本,这可能会有所不同。 基本上,你必须添加一个Entitlements.plist文件到你的资源:

New->File->Code Signing->Entitlements 

在你分发之前,你必须改变:

 "Can be debugged" to NO 

确保您的项目设置了正确的代码签名configuration文件。 现在去:

 Product->archive 

然后用你新build的条目,点击:共享

 Select "iOS App Store Package (.ipa)" 

并select您想要使用的正确分配configuration文件。 点击下一步,然后select一个位置来保存.ipa文件。 在您点击保存之前,您需要检查

 Save for Enterprise Distribution 

.ipa文件需要保存在一个FTP服务器上,或者至less这是我得到它的工作。 对于“应用程序URL”字段,请使用要保存的.ipa文件的path,例如,

 ftp://ftp.company.com/Installers/myApp.ipa 

给它一个标题,然后在“大图片url”和“小图片url”给它一个path到您的大(512×512)和小(72×72)图标文件,(我正在开发的iPad,所以iPhone可能会有所不同) 。 例如,

 ftp://ftp.company.com/Installers/small.png 

保存.ipa文件。 现在你需要把你的.mobileprovision文件放在ftp服务器上。 任何想运行应用程序的人都需要安装这个文件,否则他们将无法运行它。 现在,我不确定是否需要一个.mobileprovision文件,如果你不是企业程序的一部分,它需要内置所有的设备ID,但你可以试试看。 一旦你的文件都在ftp服务器上,你需要创build一个链接到这两个文件的电子邮件,但是.ipa文件的链接必须是特殊的格式。 对于configuration文件:

 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服务器。 你所做的就是创build一个PHP文件,它可以即时生成plist文件并返回该文件。 在大图像,小图像和ipa文件的链接中,您将链接传递给其他PHP文件,以便为特定程序返回这些文件。 当你想从一个链接安装一个应用程序,你只需要像这样传递url:

 itms-services:///?action=download-manifest&url=http://mycompany.com/php/installApp.php?app=myappname 

在您的PHP函数中,您只需将myappname插入到其他PHP调用中,这将从您的服务器中提取正确的文件。 使用这种方法,您不需要为生成的任何应用程序存储plist文件,这使得更新应用程序变得更加容易,因为您不需要每次都重新键入信息,甚至不要选中checkbox企业分布,只需将ipa文件保存在旧的文件夹上即可。 而且,使用这种方法很容易实现安全性和loginfunction。 另外,您不需要专门安装移动configuration文件,因为它在安装应用程序时会自行安装。 它存储在ipa文件中。

编辑:

只是澄清PHP的方法,你创build一个PHP文件,创buildplist文件。 复制一个从企业发行版本创build的标准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'); 

然后你build立一个stringreplace你的项目的url,像这样:

 <string>".$root."ipa_serve.php?app=". $_GET['app']."</string> 

并在回显xmlstring之前用最后一个标题结尾:

 header('Content-Length: ' . strlen($myXml)); 

最后,你创build一个php文件来服务你的ipa文件,一个为你的大图像服务,一个为你的小图像服务。 除非你不太熟悉PHP,否则应该相当简单。

您确实需要一个configuration文件,但它embedded在.ipa文件中,它不需要通过iTunes安装作为单独的可安装文件。

您应该检查TestFlight ,一个用于pipe理OTA Ad Hoc构build分布的Web应用程序; 这是梦幻般的。 它做各种聪明的东西,包括为你收集用户设备的UDID。 (您,开发者,仍然需要将这些input到iPhone开发中心的供应门户,但是用户可以保持幸福,甚至不知道UDID甚至存在,不必介意他们必须发送给你。也许这是你的老板以前使用。)

我刚刚经历了同样的事情。 我认为最大的不同在于企业分布式configuration文件(每年299美元) – 如果您有其中之一,则不需要在设备列表中包含设备UDID。 如果你每年的交易价格是正常的99美元,那么你必须这样做。 就那么简单。

好消息是,苹果公司最近放弃了“500员工”的限制,所以任何公司都可以得到这样的一个: http : //blog.apperian.com/2010/10/apple-opens-ios-developer-enterprise.html

你只需要从Dun和Bradstreet那里得到一个免费的DUNS号码,这需要30天。 我们已经申请了我们的,并会看到如何一切。

我不知道有一种方法来实现这个没有用户的UDID。 我的猜测是,开发者已经拥有了你的老板的UDID,并且创build了/捆绑了一个新的configuration文件,或者你的老板正在testing一个移动web应用程序。

现在,您可以使用无线应用程序分发function轻松地进行特定分发。

iOS 4:内部应用程序的无线应用程序分发

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

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

鲜为人知的事实:你不需要重新编译应用程序。 你甚至不需要辞职的应用程序。 重要的是安装的configuration文件与应用程序中的embedded.mobileprovision“足够相似”(configuration文件名称,捆绑包ID,捆绑种子,谁知道)。

或者,他们可以做自动构build。 也许。 也许不会。

可能发生了什么:

  1. 服务器向你发送一个“configuration文件”(参见SCEP / enterprise)。 显然这可以用来获取您的设备的UDID。 TestFlight做到这一点。
  2. 服务器自动执行一些操作(通过屏幕抓取,或者通过一些企业API(如果有的话)):
    1. 将设备UDID添加到Apple的设备列表中。
    2. 告诉苹果生成configuration文件。
    3. 下载configuration文件。

被接受的答案是相当古老的,我发现了很多混乱的资源分配企业应用程序,所以我想我会回应一个更好的解决scheme。

HockeyApp是免费的,允许你上传你的企业(和Ad-Hoc)版本,并作为公共下载页面。 请注意,如果您拥有Apple Enterprise帐户(如其他人在此提到的那样),那么只有在注册用户和configuration其设备的UDID时才能正常工作,但这是迄今为止最快,最快的向客户端分发应用程序的工作stream程,无需设备configuration开销。