【问题标题】:Distributing apps from two different Macs using the same dev and team profile使用相同的开发人员和团队配置文件从两台不同的 Mac 分发应用程序
【发布时间】:2014-05-02 09:34:11
【问题描述】:

我正在尝试从我的另一台 mac(mac pro)分发内部企业应用程序。我从我一直用来成功分发的 macbook 中导出了 Apple's instructions 之后的开发配置文件。我将它们导入到我现在尝试分发的 Mac 上,也遵循这些说明。

我将项目文件夹从我的 macbook(工作发行版)复制到 mac pro(不工作)并用 Xcode 打开它。然后我构建并存档了该项目。然后我去 Organizer,选择最新的存档,然后点击Distribute...

从那里我做了我一直做的事情:为 Enterprise 选择第二个选项,使用正确的配置文件,然后将其导出到托管它的服务器。

当我单击链接安装应用程序时,它开始下载很好,但以奇怪的无图标图像作为应用程序图标完成,当我尝试打开它时,应用程序立即关闭。

我在导出和导入我的个人资料时是否做错了什么?如果不是,这里还有什么问题?

【问题讨论】:

    标签: ios xcode in-house-distribution


    【解决方案1】:

    请在安装过程中发布写入设备日志的内容。您可以从 Xcode 的 Organizer 窗口监视设备控制台。打开 Xcode 并选择 Window -> Organizer 然后选择您设备下的 Console

    根据您的描述,我可以想到可能导致此问题的三件事:

    基于 SSL 的 OTA

    尝试安装应用程序的设备正在运行 iOS 7.1,并且 manifest.plistipa 未通过 SSL 提供。请注意,iOS 7.1 现在需要通过安全的 https 连接进行 OTA 安装。

    使用不正确的个人资料签名

    如果设备日志包含“无法预检应用程序”,则很可能该应用程序未正确签名。您可以按照以下答案中的步骤验证您确实使用了正确的移动设备:https://stackoverflow.com/a/18642782/1144060

    1. 获取您的 IPA 文件,将其重命名为具有 .zip 扩展名。
    2. 解压此文件并在 Finder 中打开 Payload 目录。
    3. 右键单击您的应用程序并单击显示包内容。
    4. 找到文件 embedded.mobileprovision,然后在文本编辑器(如 TextEdit)中打开该文件。

    如果 embedded.mobileprovision 包含 ProvisionedDevices 的条目,那么您是在使用 Ad Hoc 或开发配置文件而不是您的企业配置文件进行签名。

    缺少私钥

    除非企业证书由 Xcode 管理(例如,您在 Xcode 中创建了企业证书),否则 Xcode 管理它的方式可能与管理其他配置文件的方式不同。

    我们的构建机器在 XCode 5 中配置了多个 ADC 帐户。在尝试初始化新的构建环境时,我导出了配置文件并将它们导入到新的构建环境中。企业证书和密钥不是由在 Xcode 中注册的帐户之一创建的。企业证书和密钥未转让。

    在您的 macbook 上打开 Keychain Access.app 并选择左下角的 Certificates 类别。您的企业证书将与私钥相关联显示。选择它们,然后选择文件... -> 导出。输入密码以保护 p12 文件。

    将生成的 p12 文件(默认命名为 Certificates.p12)复制到您的 mac pro 并双击该文件以使用 Keychain Access.app将其导入您的默认钥匙串>

    【讨论】:

    • 对不起,我刚刚对此发表评论。我最近很忙。我检查了 embedded.mobileprovision,它的值是 trueProvisionedAllDevices。所以那里没有问题。我还完成了我的证书的导出。它们在两台 Mac 上是相同的。另外,我的网站有 SSL。我知道这一点,因为当我从我的 Macbook Air 分发时,我可以正常安装。
    • 在安装应用程序和尝试启动应用程序时控制台输出显示什么?您可以在此处了解如何访问这些日志:developer.apple.com/library/ios/qa/qa1747/_index.html
    【解决方案2】:

    在与 Apple 通了几个小时的电话、在论坛上搜索了几个小时以及自己玩弄了几个小时之后,我最终决定尝试从第二台 Mac 上创建一个新项目,即 MacPro。我为它创建了一个包 ID 和配置文件。我下载了配置文件,将其放在 Xcode 中,归档项目,使用所述配置文件完成分发过程,果然应用程序工作正常!

    这告诉我,我实际上已经正确地完成了导出和导入。 mac 本身没有问题; 问题一定出在项目上!我创建了一个新项目,并简单地复制了所有单独的文件,并通过了该项目的分发,果然它安装和启动顺利。

    我仍然不知道原始项目本身是什么导致它以这种方式运行。我认为项目中必须有一些东西将它与创建它的 mac 联系起来。从现在开始,我想我要么必须将项目保存在服务器或某个中心位置,要么将其保存在创建它的 mac 上。

    【讨论】:

    • 很高兴您能够使用蛮力方法解决问题。从现在开始,我建议您在出现异常行为时检查日志文件。它可能会为您节省数小时和数小时。
    • 我同意这些日志非常有用。但是,它们并不是导致我回答的原因。
    猜你喜欢
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2023-03-27
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多