【问题标题】:Download and install an ipa from self hosted url on iOS从 iOS 上的自托管 url 下载并安装 ipa
【发布时间】:2014-06-27 00:03:15
【问题描述】:

我需要直接从 URL 下载并安装 ipa

我试过这个:

NSURL *url = [NSURL URLWithString:@"https://myWeb.com/test.ipa"];
[[UIApplication sharedApplication] openURL:url];

应用程序启动 Safari,但随后出现以下消息:

有可能吗?

【问题讨论】:

  • Afaik,您不能将 IPA 直接安装到您的设备上。不过,您可能想查看TestFlight
  • 你做错了。让我给你正确的答案。
  • 您使用什么配置文件来编译 ipa、开发人员或发行版?
  • 上传你的ipa到Diawi 将生成的url邮寄给你自己然后打开邮件点击它应该在safari中打开的url点击安装应用程序。
  • 请检查 Beta Builder。理想情况下,我们不应该将我们的工作上传到第三方服务器。我一直在使用 beta builder,所有 ipa 和生成的工作都在本地。您只需要将文件上传到您的分发服务器或 DropBox 或 amazon S3 等帐户或您的本地服务器。

标签: ios ipa


【解决方案1】:

现在有更多具有更多新功能的新工具可用于分发甚至管理您的项目和应用程序(ipa 和 apk),在我看来 https://appforshare.io 是最近的新工具,除了分发 ad-hoc或开发版本。

【讨论】:

    【解决方案2】:
    NSURL *url = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://xxxxxx.com/rest/images/apps/ipa/dev/xyz.plist"]];
    [[UIApplication sharedApplication] openURL:url];
    

    openUrl 方法是deprecated

    [[UIApplication sharedApplication] openURL: url options:@{} completionHandler:nil];
    

    这个方法latestopenUrl 方法,它会显示提示对话框。对话框会显示

    xxxxxx.com 想安装“YOUR_APP_NAME”

    此消息。如果您单击“安装”按钮,应用程序将关闭并下载 ipa。

    【讨论】:

      【解决方案3】:

      是的,safari 会检测 *.ipa 并尝试安装它,但需要正确签名 ipa,并且只有允许的设备才能安装它。

      http://www.diawi.com 是一项可以帮助您完成此过程的服务。

      所有这些都是为了临时分发,而不是用于生产应用程序。

      有关以下链接的更多信息: Is there a way to install iPhone App via browser?

      【讨论】:

      【解决方案4】:

      创建一个运行 Windows 的虚拟机并将文件下载到共享文件夹。 :-D

      【讨论】:

        【解决方案5】:

        更简单地说,您可以为此使用 DropBox。步骤基本相同。 您可以执行以下操作:

        1) 将您的 .ipa 上传到 dropBox,分享此 .ipa 的链接

        2) 将 .ipa 的共享链接粘贴到 manifest.plist 文件中,再次在 DropBox 中上传清单文件共享此 .plist 文件的链接

        3) 将此 Plist 的链接粘贴到您的 index.html 文件中,并使用合适的标签。

        与任何可以点击 URL 并下载的人共享此 index.html 文件。或者您可以直接点击 URL。

        【讨论】:

        • 它不工作。我所做的是将所有内容上传到我的 s3 存储桶而不是 Dropbox 上,并且成功了。
        • @AlqamaBinSadiq 您为 S3 使用了什么 URL?我的意思是在 S3 上上传之后你怎么称呼它
        • @Bhupesh 上传文件后,当您单击它时,您将获得一个安全的 URL 来访问该文件。
        • 我在使用 GCE 存储桶时遇到了同样的问题 - 不过它可以在 Dropbox 上运行
        • 它对我不起作用。当我分享 url 时,我曾经使用 Dropbox,它被重定向到 Dropbox 页面安装页面
        【解决方案6】:

        有一些在线工具可以简化这个分享过程,例如https://abbashare.comhttps://diawi.com 使用 adhoc 或内部配置文件从 xcode 创建一个 ipa 文件,并将此文件上传到这些站点。 我更喜欢 abbashare,因为将文件保存在您的 Dropbox 中,您可以随时删除它

        【讨论】:

        • abbashare帮我上传文件
        【解决方案7】:

        使用 Xcode8 回答企业帐户

        1. 通过选中“with manifest plist checkbox”导出 .ipa 并提供请求的链接。

        2. 将 .ipa 文件和 .plist 文件上传到服务器的同一位置(您在导出 .plist 文件中提到的 .ipa/ 时提供的位置)。

        3. 如下所示创建下载链接。 url 应该链接到您的 .plist 文件位置。

          itms-services://?action=download-manifest&url=https://yourdomainname.com/app.plist

        4. 复制此链接并将其粘贴到您 iPhone 的 Safari 浏览器中。它会要求安装:D

        使用这个完整的 url 创建一个 html 按钮

        【讨论】:

          【解决方案8】:

          要通过无线方式分发您的应用(OTA,这意味着使用 TestFlight 或官方 App Store),您可能需要创建 3 个不同的文件,即:

          • .ipa 文件(使用临时配置文件)
          • index.html
          • manifest.plist

          您可以使用 Beta Builder 来生成这些文件:

          1. 存档您的构建。
          2. 将 .ipa 保存在桌面上。
          3. here 下载一个小实用程序Beta Builder。这完成了大部分必需的任务。
          4. 打开该工具并选择您的 .ipa 文件,然后在 beta 构建器中提供您将在 https://myWeb.com/MY_TEST_APP 上放置构建的路径。
          5. 生成所有文件。
          6. 现在将index.htmlyour_App.ipamanifest.plist上传到您的服务器路径https://myWeb.com/MY_TEST_APP
          7. 现在分享index.html的链接。打开此文件后,系统会要求您点击安装。
          8. 它将在您的设备上安装your_App.ipa

          您也可以手动执行此操作。

          index.html

          <a href="itms-services://?action=download-manifest&url=https://myWeb.com/MY_TEST_APP/manifest.plist">Install App</a>

          ma​​nifest.plist

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
          <plist version="1.0">
          <dict>
              <key>items</key>
              <array>
                  <dict>
                      <key>assets</key>
                      <array>
                          <dict>
                              <key>kind</key>
                              <string>software-package</string>
                              <key>url</key>
                              <string>http://YOUR_SERVER_URL/YOUR-IPA-FILE.ipa</string>
                          </dict>
                      </array>
                      <key>metadata</key>
                      <dict>
                          <key>bundle-identifier</key>
                          <string>com.yourCompany.productName</string>
                          <key>bundle-version</key>
                          <string>1.0.0</string>
                          <key>kind</key>
                          <string>software</string>
                          <key>title</key>
                          <string>YOUR APP NAME</string>
                      </dict>
                  </dict>
              </array>
          </dict>
          </plist>
          

          如果应用程序拒绝安装或运行,您可能需要检查以下项目:

          • 您在编译/归档应用时使用的配置文件
          • index.htmlmanifest.plist 中的 URL
          • plist 文件可能需要托管在 HTTPS 服务器上。如有必要,您可以使用 Dropbox。
          • 除非您拥有企业许可证,否则您的设备 UUID 可能需要在 Apple Developer Center 中注册
          • 您可能需要在“设置”>“个人资料”中手动启用对应用程序的访问权限

          【讨论】:

          • 首先感谢您的准确和广泛的回答 :) 好的,我了解该方法,但是是否可以执行 ´itms-services://?action=download-manifest&url=myWeb.com/MY_TEST_APP/manifest.plist´directly from该应用程序?因为在这种方式下,我可能需要在不离开另一个应用程序的情况下下载并安装该应用程序。 Bu 或许不可能……
          • 据我所知,您必须离开应用程序。可以使用 Safari 进行 On Air 安装。 (我可能不正确)。事实上,你可以在你的应用程序中尝试这个,让我们知道它是否有效:-)
          • 我已编辑您的答案以包含更多细节和index.html 的示例。我希望没关系。
          • @Austin :这取决于您用于分发应用程序的开发者帐户证书/配置文件的类型。如果您通过企业帐户(299 美元)进行分发,那么您可以放松,因为任何拥有该链接的人都可以下载该应用程序,但使用普通的 99 美元开发人员帐户,您仍然需要添加设备并将它们包含到配置文件中。
          • @BalramTiwari 下载 beta builder 的给定链接已损坏,请修复它。
          【解决方案9】:

          如果您想直接从您的网站下载并安装该应用程序,这是不可能的。企业可以通过不同的方式通过无线方式部署和安装应用程序。您的 URL 应指向一个 Web 服务,该服务以 Apple 要求的预定义格式托管清单 plist 文件。此服务应返回清单文件的 url,然后可以按如下方式使用:

          NSString *urlString = // url string where your manifest.plist is deployed on your server.
          NSURL *installationURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@",[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
          [[UIApplication sharedApplication] openURL];
          

          希望这能回答你的问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-13
            • 2018-11-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多