使用 iOS 应用扩展时无法将 AppStore 版本直接安装到移动设备

Posted

技术标签:

【中文标题】使用 iOS 应用扩展时无法将 AppStore 版本直接安装到移动设备【英文标题】:Unable to install AppStore version directly to mobile device when using an iOS App Extension 【发布时间】:2016-11-17 13:35:02 【问题描述】:

在我们公司,我们通常执行的流程是:

修复/实施 测试临时版本 创建 AppStore 包 直接通过 iTunes 安装 AppStore 包来测试它。 向 AppStore 提交版本。

我们还需要测试 AppStore 版本的原因是,如果我们不这样做,某些支付服务将无法运行。所以我们需要一个真实的环境。

在包含 ios 应用扩展(共享)之前,我们可以毫无问题地执行此过程,但现在在执行相同过程后,我们无法再执行此操作了。

我们可以;

通过将应用扩展签名为 ad-hoc 来测试 ad-hoc 版本。 创建并提交应用商店包。

但是我们不能再安装应用商店版本,错误提到签名存在问题,更准确地说:

(Entitlements found that are not permitted by provisioning profile)

有人知道为什么会发生这种情况吗?

【问题讨论】:

检查用于在 iTunes 商店中签署应用程序的配置文件,您可能需要允许访问那里的某些资源或服务。 【参考方案1】:

您确实不应该在物理设备上安装应用商店版本并运行它。

它可以在某些情况下工作(例如,如果您之前在那里安装了开发版本,并且当您尝试运行应用商店版本时设备上存在有效的开发版本)。也许设备具有旧的应用程序配置文件(没有应用程序扩展权利)。嵌入应用程序(并具有适当权利)的新配置文件是 App Store 配置文件,不能直接在设备上运行。

我会在您的项目中创建一个新的构建配置,它是发布配置的副本,除了只有代码签名设置。这将允许您运行一个完全是生产 App Store 构建的构建,除了代码签名设置。

【讨论】:

是的,这是有道理的,我们之前可以安装该应用程序的原因是因为之前安装了它。然而,我们对扩展做了同样的事情,但没有奏效。问题是,这里的人们想要在我们的设备中完全测试我们提交到应用商店的相同版本。我们使用 TeamCity,创建一个 appstore 包,然后通过 iTunes 或 iFunBox 使用它来手动安装它。除了这次我们不能使用应用扩展。 我不知道为什么 iOS 会以不同于应用程序的方式处理扩展的配置文件缓存。这是奇怪的部分。您可以使用您的临时个人资料/证书重新签署该应用程序。这将允许二进制文件完全相同,但嵌入式配置文件/签名将是唯一不同的东西。这基本上会给你以前的东西,因为你之前测试的应用没有使用应用商店配置文件。 你说得很好,安装的“appstore”构建实际上是在使用临时配置文件。

以上是关于使用 iOS 应用扩展时无法将 AppStore 版本直接安装到移动设备的主要内容,如果未能解决你的问题,请参考以下文章

将 iOS 应用上传到 AppStore(上传到 App Store 时出错。)

无法使用 Xcode 6 GM Seed 提交到 AppStore

尽管 Xcode 是最新的,但无法将 iOS 应用程序部署到 App Store

IOS:无法从 Appstore 安装我们的应用

将应用程序发布到 AppStore Xamarin.iOS 构建时出错

无法在 ios 11 的设备中下载应用程序