47

我正在启动一个 iOS 8 扩展,但我无法在我的设备上运行它。尝试运行时的错误是:

找不到匹配的配置文件

在您的构建设置中指定的配置文件(“ExtensionName”)的 AppIDnet.company.AppName与您的 bundle identifier 不匹配net.company.AppName.ExtensionName。Xcode 可以通过从会员中心下载新的配置文件来解决这个问题。

  1. 主应用程序和扩展程序是否需要单独的配置文件?
  2. 他们是否应该共享一个包标识符(默认情况下它将扩展名添加到包标识符中,所以可能不是)?
  3. 如果它有一个单独的包标识符,它是如何反映在配置文件中的(如果有一个单独的)?
4

5 回答 5

26

Xcode 似乎更喜欢这种方式,但是在您想要执行 Adhoc 或发布到 App Store 之前,没有什么能阻止您使用通配符配置文件。不过,更重要的是,对于您拥有的每个目标,您都需要一个配置文件和捆绑 ID。所以,是的,您“需要”为您的扩展提供另一个配置文件,尽管我希望 Apple 能够简化这个过程。

总而言之,在您需要配置文件之前,最好只使用 WildCard 开发配置文件。请记住,这只是一个测试版,他们仍在研究几乎所有内容。

于 2014-08-15T15:50:52.203 回答
11

扩展是与主机应用程序分开的目标。您必须将它们视为具有不同捆绑标识符和不同配置文件的独立应用程序。

最好只在测试期间创建它们而不是使用通配符,因为您可能需要测试您启用的某些功能,例如应用程序组,以便您的扩展程序和主机应用程序可以访问同一个容器。

请注意,如果您想为您的主机应用程序和扩展启用任何功能,您必须为所有它们单独启用它们。

于 2014-09-26T02:39:30.417 回答
11

我找到了与App Extensions相关的文档。如果您阅读第 20 页的底部,似乎实际上建议使用相同的分发证书。我已经继续并更改了 Today Extension 的包标识符以扩展我的应用程序。例如,在Dev Center中创建了一个与之对应com.DeveloperName.AppName.TodayExtension的 App ID ,并为其创建了分发配置文件。我的应用+Quotes已按照以下步骤成功更新。我在应用程序或扩展程序方面没有遇到任何问题,但 Xcode 现在在尝试为我的扩展程序自动分配正确的配置文件时似乎有点困惑。手动选择它们可以解决这个问题。

于 2014-09-11T15:10:46.433 回答
7

您确实需要为您的扩展提供单独的配置文件,但与您的主应用程序具有相同的证书。当您创建新的配置文件时,您的扩展程序的应用程序 ID 也将出现在列表中,选择它,然后继续创建新的配置文件。

还要在扩展的目标中选择该配置文件。

在此处输入图像描述

于 2016-06-22T06:54:08.537 回答
1

我只是使用“自动管理登录”,直到我需要推送到 App Store。这适用于模拟器,尚未尝试使用设备。

Appstore Build 的几点建议:

  1. 我为每个通知扩展创建了一个通配符 ID,但是这个通配符捆绑 ID 的前缀应该与您的应用的捆绑 ID 作为前缀匹配。如果不是这样,就会出现这个错误:“Embedded binary's bundle identifier is not prefixed with parent app's bundle identifier”。因此,如果您的应用程序的 bundle-id 是:"com.companyName.appName",那么您的扩展的通配符 bundle-id 应该是"com.companyName.appName.*"。然后,您可以将 * 替换为 XCode 中的特定通知扩展。请注意,苹果只允许在应用程序的捆绑包 ID 之后使用一个句点(“.”)来命名您的扩展包 ID。
  2. 您的扩展程序的版本和内部版本号应与您的应用程序相匹配。
  3. 创建 App Id 后,使用它创建一个分发配置文件并在 XCode 中使用它。
于 2019-05-28T12:54:30.817 回答