面向公众的无线 (OTA) iOS IPA 文件分发?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26042508/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 02:48:54  来源:igfitidea点击:

Over The Air (OTA) iOS IPA File Distribution For Public?

iosprovisioning-profileipa

提问by Hao

I saw this Chinese companyoffering a demo for their app/service which is a .ipafile. You can simply visit a link by your iPhone via Safari and you can install the demo .ipafile.

我看到这家china公司为他们的应用程序/服务提供了一个演示,这是一个.ipa文件。您只需通过 Safari 访问 iPhone 上的链接,即可安装演示.ipa文件。

The linkis right under the iphone app download button.

链接位于 iphone 应用程序下载按钮下方。

This makes me wonder what stops people from distributing their app this way outside the Apple app store. A legal issue, but technical can-do?

这让我想知道是什么阻止人们以这种方式在 Apple 应用商店之外分发他们的应用程序。一个法律问题,但技术上能做什么?

And I am also wondering what the provisioning profile they have used is, to generate this .ipafile from Xcode with such broad capacity of installation. As far as Ad Hoc distribution profile goes, it allows only 100 users, still correct? Is this some other provisioning profile I don't know about? My best guess is that this is a normal enterprice installation and they just make it for everyone in the world... can they?

而且我还想知道他们使用的配置文件是什么,.ipa从具有如此广泛安装容量的 Xcode生成这个文件。就 Ad Hoc 分发配置文件而言,它只允许 100 个用户,仍然正确吗?这是我不知道的其他一些配置文件吗?我最好的猜测是,这是一个正常的企业安装,他们只是为世界上的每个人制作它......他们可以吗?

I have tried the demo on my iPhone 4 and it works fine. The left button on the login page is register. The right button is login. Try register with a name (make name unique) and password, as long as you can get a success message back. You can log in.

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

回答by Razvan

Well, you're talking about OTA (over-the-air) ADHOC or ENTERPRISE distribution. I've been doing that for years for my beta testers.

好吧,您说的是 OTA(空中)ADHOC 或企业分发。多年来,我一直在为我的 Beta 测试人员这样做。

You don't require any Enterprise Program to do that although now with Xcode 6 is a bit harder to do because after you archive your project for distribution, the ADHOC distribution doesn't create the necessary plist file anymore.

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

I don't know how the Enterprise program works in terms of the devices you can install the app to (if it is required to register the UDID for each device in your Developer Portal or not) but if you need to deploy your test app to your testers which have their devices registered in the Devices tab in your Developer Portal you can use what I've explained below.

我不知道企业程序在您可以安装应用程序的设备方面如何工作(是否需要在开发人员门户中为每个设备注册 UDID)但如果您需要将测试应用程序部署到您的测试人员在您的开发人员门户的设备选项卡中注册了他们的设备,您可以使用我在下面解释的内容。

So, how do you that? I'll explain in steps:

那么,你怎么看?我会分步骤解释:

Please Note:it is required that you use an encrypted SSL connection on the server you're uploading the IPA and Plist files (or at least only for the Plist file - there's a workaround if you don't have an SSL connection on your server, see below).

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

1.In your developer portal generate an ADHOC Distribution Provisioning Profile for your App ID. Also select the devices that can install your distribution. Only those devices can install the app.

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

2.In Xcode go to Preferences > Accounts > Your Account > View Details > Refresh.

2.在 Xcode 中,转到 Preferences > Accounts > Your Account > View Details > Refresh。

3.In Xcode go to your Project > Targets > Your target > Code Signing > Select the correct Provisioning Profile for ADHOC Distribution for your build schema.

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

4.Clean your project.

4.清理你的项目。

5.Select your device as the build device even if it's not connected to your computer and build your project to be sure no errors are occurring.

5.选择您的设备作为构建设备,即使它没有连接到您的计算机并构建您的项目以确保没有发生错误。

6.With your device selected, Archive your project.

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

7.In Xcode's Organizer select Export > Save for ADHOC Deployment > Select your account and be sure that your archive is using the correct Provisioning Profile (if you're not seeing the whole name, hold your mouse cursor over the clipped text for a few seconds and it will appear).

7.在 Xcode 的 Organizer 中选择 Export > Save for ADHOC Deployment > 选择您的帐户并确保您的存档使用正确的 Provisioning Profile(如果您没有看到全名,请将鼠标光标悬停在剪辑的文本上几秒,它会出现)。

8.Name your file with an easy name and save it to a location of your choice.

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

9.You'll also need a Plist file to edit because Xcode is not generating one anymore so I've uploaded a template for you here. I've put examples in that plist and edit them accordingly.

9.你还需要一个 Plist 文件来编辑,因为 Xcode 不再生成一个,所以我在这里为你上传了一个模板。我已经把例子放在那个 plist 中并相应地编辑它们。

10.Upload your IPA File and Plist File to your SSL Enabled Server. You should also change the name of the Plist File I've uploaded to match the name of your IPA File.

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

11.Create a link like this: itms-services://?action=download-manifest&url=http://yourdomain.com/AppName.plist

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

12.Send the link to your testers and they must click on the link on their devices and an installation alert will show up.

12.将链接发送给您的测试人员,他们必须在他们的设备上单击该链接,才会显示安装警报。

Now, if you don't have an SSL enabled serveryou can upload the Plist file to your Dropbox account while keeping the IPA file on your non-SSL enabled server and use it like this:

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

1.Get the link to the file. Should be something like this: https://www.dropbox.com/s/a8hpnmq654pmbaw/AppName.plist?dl=0

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

2.Copy everything starting with /s/..... and remove the ?dl=0 parameter.

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

3.Create your installation link like this: itms-services://?action=download-manifest&url=https://dl.dropbox.com/s/a8hpnmq654pmbaw/AppName.plist

3.像这样创建你的安装链接:itms-services://?action=download-manifest&url= https://dl.dropbox.com/s/a8hpnmq654pmbaw/AppName.plist

4.Send the link to your testers to open it on their devices.

4.将链接发送给您的测试人员以在他们的设备上打开它。

回答by Gil Sand

I work in a company that releases on a private store too, and it works in a very similar way. The only difference is, Apple does not check the app and it takes 1 minute to upload it, not 2 weeks.

我也在一家在私人商店发布产品的公司工作,它的运作方式非常相似。唯一的区别是,Apple 不检查应用程序,上传它需要 1 分钟,而不是 2 周。

How it works :

这个怎么运作 :

  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>
    
  1. 为企业分发生成 ipa(使用正确的配置文件)
  2. 将 ipa 上传到任何你想要的地方,如果你需要一些漂亮的东西,你可以制作一个应用程序,列出你的 IPA(你自己的私人商店)及其相关信息,以及一个下载链接(见下文)
  3. 上传 .plist 文件并使它的 url 字段中的 url 是您在步骤 1 中上传的 .ipa。
  4. 在你想要的地方用这一行创建一个基本的 HTML 页面:
  5. 用户现在可以点击它并下载;)

    <a href="itms-services://?action=download-manifest&url=YOUR-UPLOADED-PLIST-FILE.plist">Click here ;-)</a>
    

Note that you're not allowed to publish apps publicly like this. This is meant, for example, to distribute apps within your own company. More specifically and as an example, we had 4 apps. The store, a timesheeting app, a contact/adress book, and other specific apps that don't need to be explained. But it would be against the EULAof Apple to share any of those apps (or download links) publicly. Trying to publishing on the Apple app store would also not pass the review.

请注意,您不得像这样公开发布应用程序。例如,这意味着在您自己的公司内分发应用程序。更具体地说,例如,我们有 4 个应用程序。商店、时间表应用程序、联系人/通讯录以及其他不需要解释的特定应用程序。但是,公开共享任何这些应用程序(或下载链接)将违反Apple的EULA。尝试在苹果应用商店发布也不会通过审核。

That being said, this is verypractical and useful for many companies in a lot of cases, because you're free to not follow any guideline, and avoid the stressful review.

话虽如此,这在很多情况下对许多公司来说非常实用和有用,因为您可以自由地不遵循任何指导方针,并避免紧张的。

Any other questions :) ?

还有其他问题吗 :) ?

回答by zeeawan

Xcode 9 gives over-the-air installationbuild option for adhoc distribution.

Xcode 9为临时分发提供了无线安装构建选项。

enter image description here

在此处输入图片说明

But apple seems not providing a basic installation html page. So, one needs to create one as shown here.

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

Here goes the html of such a page from that site.

这是来自该站点的此类页面的 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>

回答by fat

They probably use an Enterprise Developer Account. See: https://developer.apple.com/programs/ios/enterprise/

他们可能使用企业开发者帐户。请参阅:https: //developer.apple.com/programs/ios/enterprise/

And they will most likely run into a legal issue, if their link is somewhere out in the interweb.

如果他们的链接在互联网上的某个地方,他们很可能会遇到法律问题。

Cheers, Fabian

干杯,法比安