公开的iOS IPA文件通过OTA分发?

40

我看到这家中文公司提供了一个他们的应用/服务的演示,它是一个.ipa文件。你只需通过Safari访问iPhone上的链接,就可以安装演示版.ipa文件。

链接就在iPhone应用程序下载按钮下面。

这使我想知道是什么阻止人们在苹果应用商店之外以这种方式分发他们的应用程序。是法律问题,还是技术可行?

我也想知道他们使用的配置文件是什么,以生成此.ipa文件,并具有如此广泛的安装能力。就Ad Hoc分发配置文件而言,它仅允许100个用户,这还正确吗? 这是我不知道的其他配置文件吗? 我最好的猜测是这是一个常规的企业安装,他们只是为全世界所有人制作了这个...他们能做到吗?

我已经在我的iPhone 4上尝试了这个演示版,它运行良好。登录页面上的左侧按钮是注册。右侧按钮是登录。尝试使用一个名称(使名称唯一)和密码进行注册,只要你能收到一个成功消息,就可以登录。


我投票关闭此问题,因为关于iTunes应用商店政策的问题在Stack Overflow上是不相关的话题 - Machavity
3个回答

56

你提到的是OTA(空中下载)ADHOC或企业级分发。 我多年来一直为我的测试人员执行此操作。

您不需要任何企业程序来执行此操作,尽管现在使用Xcode 6有点困难,因为在将项目存档以进行分发后,ADHOC分发不再创建必要的plist文件。

我不知道企业计划如何在可以安装应用程序的设备方面运作(是否需要为开发者门户网站上的每个设备注册UDID),但如果您需要将测试应用程序部署到已在您的开发人员门户网站上的“设备”选项卡中注册其设备的测试人员,则可以使用我下面解释的方法。

那么,如何做到这一点? 我将逐步解释:

请注意:在上传IPA和Plist文件时,需要在服务器上使用加密的SSL连接(或者至少仅对Plist文件使用加密的SSL连接 - 如果您的服务器没有SSL连接,则有一个解决方法,请参见下文)。

1. 在开发人员门户网站中为您的App ID生成ADHOC分发配置文件。 还要选择可以安装分发的设备。 只有这些设备才能安装该应用程序。

2. 在Xcode中转到“首选项”>“帐户”>“您的帐户”>“查看详细信息”>“刷新”。

3. 在Xcode中转到“项目”>“目标”>“您的目标”>“代码签名”>为ADHOC分发选择正确的配置文件。

4. 清理您的项目。

5. 将您的设备选择为构建设备,即使它未连接到计算机并构建您的项目,以确保不会发生任何错误。

6. 选择您的设备,将您的项目存档。

7. 在Xcode的组织器中选择导出 > 保存用于ADHOC部署 > 选择您的账户并确保您的存档正在使用正确的配置文件(如果您没有看到整个名称,请将鼠标光标悬停在剪切文本上几秒钟,它会出现)。

8. 使用一个简单的名称命名您的文件并将其保存到您选择的位置。

9. 您还需要编辑一个Plist文件,因为Xcode不再生成该文件,所以我已经上传了一个模板给您这里。我已经在那个plist中放了一些示例,请相应地进行编辑。

10. 将IPA文件和Plist文件上传到启用SSL的服务器上。您还应该更改我上传的Plist文件的名称以匹配您的IPA文件的名称。

11. 创建这样的链接:itms-services://?action = download-manifest&url = http://yourdomain.example/AppName.plist

12. 将链接发送给您的测试人员,他们必须在他们的设备上点击链接,然后会弹出一个安装提示。

现在,如果您没有启用SSL的服务器,您可以将Plist文件上传到Dropbox帐户上,同时将IPA文件放在未启用SSL的服务器上,并像这样使用它:

1. 获取文件的链接。应该是这样的:https://www.dropbox.com/s/a8hpnmq654pmbaw/AppName.plist?dl=0

2. 复制从/s/.....开始的所有内容,并删除?dl=0参数。

3. 创建您的安装链接,如下所示:itms-services://?action=download-manifest&url=https://dl.dropbox.com/s/a8hpnmq654pmbaw/AppName.plist

4. 将链接发送给您的测试人员,在其设备上打开链接。


您的指示是如何通过付费的苹果开发者账户,将应用程序以adhoc方式通过空中分发到已批准的UDID设备上,对吗?如果没有付费的ADP账户,我可以通过Xcode将我的应用程序安装到测试设备上,只要该设备接受我的个人Apple ID配置文件即可。我是否也可以设置OTA应用程序分发呢? - ziggurism
@ziggurism 我不确定,但我认为不行。因为你需要用分发类型的配置文件来进行 OTA,而你在免费的 ADP 账户中只能获得开发者类型的配置文件。 - Razvan
这是苹果文档:http://help.apple.com/deployment/ios/#/apda0e3426d7(无线安装企业应用程序-iOS部署参考)。此外,例如,在Xcode 8上,当归档Ad-hoc应用程序时,有一个选项“包括用于空中安装的清单”。注意:在分发应用程序之前,您需要添加UDID。 - Gianfranco P.
这对我几乎起作用了。 我不得不进行一次微小的更改。 Dropbox链接需要将“https://dl.dropboxusercontent.com”作为URL的基本域。 也许这取决于什么样的Dropbox帐户? 没有那种URL样式,Safari会说“地址无效”。 我通过查看我的浏览器开发人员工具来找到问题,同时访问Plist链接,我看到它正在重定向到dl.dropboxusercontent.com。 因此,当我将所有链接更改为从头开始转到dl.dropboxusercontent.com时,Safari接受了我的itms-services链接。 - pestophagous

46
我是一名有用的助手,可以为您进行翻译。以下是需要翻译的内容:

我在一家公司工作,这家公司也会发布应用到私有商店,它的运作方式非常类似。唯一的区别在于,苹果不会审核这个应用程序,并且上传只需要1分钟,而不是2周。

它的运作方式:

  1. Generate the ipa for entreprise distribution (with the correct provisioning profiles)
  2. Upload the ipa wherever you want, if you need something beautiful, you could make an app that lists your IPA (your own private store) with information about it, and a link to download it (look below)
  3. Upload the .plist file and make it so the url in the url field is the .ipa that you uploaded on step 1.
  4. Create a basic HTML page with this line where you want it :
  5. Users can now click it and download ;)

    <a href="itms-services://?action=download-manifest&url=YOUR-UPLOADED-PLIST-FILE.plist">Click here ;-)</a>
    
请注意,您不被允许像这样公开发布应用程序。这是为了在您自己的公司内部分发应用程序而设计的。更具体地说,我们有四个应用程序。商店、时间记录应用程序、联系人/地址簿以及其他不需要解释的特定应用程序。但是,分享任何这些应用程序(或下载链接)都将违反苹果的EULA。尝试在苹果应用商店上发布也无法通过审核。
话虽如此,在很多情况下,这非常实用和有用,因为您可以自由选择不遵循任何指南,并避免紧张的审核。
还有其他问题吗?

6
如果您将该应用分发给普通公众而不是组织内部,将违反苹果公司的协议。 - Peng90

14

Xcode 9提供了针对adhoc分发的无线安装构建选项。

enter image description here

但是苹果似乎没有提供基本的安装html页面。因此,需要像这里所示创建一个。

这里是来自该网站的这样一个页面的html。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
  <title>Install Geoloqi</title>
  <style type="text/css">
    body {
      background: url(bkg.png) repeat #c5ccd4;
      font-family: Helvetica, arial, sans-serif;
    }
    .congrats {
      font-size: 16pt;
      padding: 6px;
      text-align: center;
    }
    .step {
      background: white;
      border: 1px #ccc solid;
      border-radius: 14px;
      padding: 4px 10px;
      margin: 10px 0;
    }
    .instructions {
      font-size: 10pt;
    }
    .arrow {
      font-size: 15pt;
    }
    table {
      width: 100%;
    }
  </style>
</head>
<body>

<div class="congrats">Congrats! You've been invited to the beta of Geoloqi.</div>

<div class="step">
  <table><tr>
    <td class="instructions">Install the<br />Geoloqi app</td>
    <td width="24" class="arrow">&rarr;</td>
    <td width="57" class="imagelink">
      <a href="itms-services://?action=download-manifest&url=http://loqi.me/app/Geoloqi.plist">
        <img src="geoloqi-icon.png" height="57" width="57" />
      </a>
    </td>
  </tr></table>
</div>

</body>
</html>

设备的UDID需要注册才能安装吗? - oliverbytes
1
@nemoryoliver 是的,除非您有企业帐户(内部部署),否则它会这样做。 - ovxrfl0w

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接