为什么需要将配置概要文件设置为分发以进行调试和发布?

时间:2019-10-15 21:57:13

标签: ios react-native circleci fastlane fastlane-match

我正在尝试通过CircleCI上的fastlane构建我的react native应用。我正在使用match来管理证书/配置文件并使用以下指南:

https://docs.fastlane.tools/best-practices/continuous-integration/circle-ci/

https://circleci.com/docs/2.0/testing-ios/#example-configuration-for-using-fastlane-on-circleci

https://circleci.com/docs/2.0/ios-codesigning/#preparing-your-xcode-project-for-use-with-fastlane-match

fastlane ios beta在本地工作。

但是,在CI上,我发现安装程序无法构建,并出现以下错误:

error: No profile for team '...' matching 'match Development app.my' found: Xcode couldn't find any provisioning profiles matching '.../match Development app.my'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the Signing & Capabilities tab of the target editor. (in target 'MyApp' from project 'MyApp')

我认为这很奇怪,因为我的构建不是使用开发配置文件,而是使用 distribution 配置文件。调用match / gym时,在构建输出中对此进行了确认,其中未提及开发配置文件。

在xcode中,根据上述指南,我在“签名和功能”下“自动管理签名” 未选中,其中“调试”设置为使用开发配置文件,而“发布”设置为使用分发配置文件。

将配置文件更改为“调试”部分下的“发行版”是我的CI构建的固定功能,但是为什么呢?我的调试版本肯定应该始终使用开发证书吗?

1 个答案:

答案 0 :(得分:0)

我的iOS版本也遇到类似的问题,最后意识到我需要将Xcode中的配置文件与Fastfile中的配置文件进行匹配:

lane :beta do
  begin
    build_number = increment_build_number(...)
    slack(message: "Starting new build " + build_number)

    *** match(type: "appstore") ***

    build_app(
      ...

      *** export_method: "app-store", ***

      build_path: "./builds",
      output_directory: "./builds"
    )
    upload_to_testflight(
      skip_waiting_for_build_processing: true
    )

    slack(
      message: "App successfully published to TestFlight"
    )

  end

Match会将所需的配置文件下载到计算机上,但是如果Xcode中的“ Provisioning Profile”(在Build Settings-> Signing中找到)与Fastfile不匹配,则Xcode将不会从Match中获得所需的文件。 / p>

相关问题