【问题标题】:Fastlane cannot find provisioning profile on BitriseFastlane 在 Bitrise 上找不到配置文件
【发布时间】:2018-07-14 11:43:14
【问题描述】:

我正在使用 Fastlane 在本地构建一个 iOS 应用程序,没有任何问题。

我将match 与单独的存储库一起使用,以跟踪证书和配置文件。

在本地运行良好。

但是,在 Bitrise 上,我收到此错误:

[05:23:16]:所有必需的密钥、证书和配置文件都已安装???? [05:23:16]:将配置文件类型设置为“应用商店” [05:23:16]:------------ [05:23:16]:--- 步骤:build_app --- [05:23:16]:------------ [05:23:16]:$ xcodebuild -list -workspace Myapp.xcworkspace -configuration 调试 [05:23:17]:$ xcodebuild -showBuildSettings -workspace Myapp.xcworkspace -scheme Myapp -configuration 调试 [05:23:20]:无法自动检测配置文件映射 [05:23:20]:从 Xcode 9 开始,您需要提供一个明确的映射 [05:23:20]:用于应用程序每个目标的配置文件 [05:23:20]:没有这样的文件或目录@ rb_sysopen - /Users/vagrant/git/Pods/Target Support Files/Pods-Myapp/Pods-Myapp.debug.xcconfig [05:23:20]:检测到的配置文件映射:{:"com.myapp.myapp"=>"match AppStore com.myapp.myapp"}

我尝试在我的Fastfile 中显式映射配置文件:

lane :beta do
    clear_derived_data
    increment_build_number
    match(app_identifier: "com.myapp.myapp", type: "appstore", clone_branch_directly: true)
    build_app(
        workspace: "Myapp.xcworkspace",
        scheme: "Myapp",
        configuration: "Debug",
        export_options: {
            method: "app-store",
            provisioningProfiles: { 
                "com.myapp.myapp" => "match AppStore com.myapp.myapp"
            }
        }
    )
    upload_to_testflight(skip_waiting_for_build_processing: true)
end

知道我需要什么来解决这个问题吗?

【问题讨论】:

  • 遇到同样的问题:在本地工作,但在 Bitrise 上遇到了这个问题。你最后解决了吗?
  • 不,我放弃了..
  • 对我来说,添加 pod 更新并禁用 xcode 自动管理签名使其工作。
  • 终于找到了fastlane和profile的问题:创建一个名称没有像'xxx_Adhoc'这样的空格的profile

标签: ios xcode fastlane bitrise


【解决方案1】:

第 1 部分:解决这个问题并了解正在发生的事情

为了在本地重现/解决此问题,我建议禁用自动签名。这样,您将更接近 CI/CD 配置。您可能在本地有权访问允许您使其在本地工作的证书。禁用自动代码签名将准确显示您的 XCode 正在使用哪些证书。为了实现这一点,您可以使用disable_automatic_code_signing 命令。

disable_automatic_code_signing(
    path: "demo-project/demo/demo.xcodeproj"
)

完成后,您可以进入本地 XCode 查看它使用的配置文件。这是第一步。我还建议从您的库中删除所有本地配置文件。 (更接近于 Bitrise 配置,一旦您开始流程,就没有任何加载的配置文件)。 以下命令将实现:

cd ~/Library/MobileDevice/Provisioning\ Profiles
rm -fr *

完成此操作后,很可能不允许您使用所需的目标(和配置)导出存档。希望它会像远程失败一样在本地失败。从那时起,您可以进入您的 XCode 查看使用 match 下载的不同配置文件,并找出它无法自动解决它的原因。

第 2 部分:对正在发生的事情以及如何解决它的有根据的猜测

我怀疑您正在尝试使用 iPhone 开发人员代码签名身份进行代码签名,但您使用的 match 命令检索分发证书(iOS 分发签名身份)。 使用自动签名,XCode 正在寻找与您的目标和配置相匹配的配置文件。它会尝试查找 iOS 开发者证书,但这不是您使用 match 获取的。

解决这个问题(如果这是问题的话)的一个简单方法是在 build_app 之前和之后更改签名标识方法。你可以这样实现:

automatic_code_signing(
    path: "demo.xcodeproj",
    code_sign_identity: "iPhone Distribution"
)

或者直接在你的 build_app/gym 中使用 code_sign_identity 参数:

build_app(
    workspace: "Myapp.xcworkspace",
    scheme: "Myapp",
    configuration: "Debug",
    codesigning_identity: "iPhone Distribution" # or iPhone Developer
)

【讨论】:

    【解决方案2】:

    既然您使用的是 Bitrise,为什么不使用可以自动处理代码签名和部署的集成?我最近从 Fastlane 步骤转移到了 Bitrise 步骤。在这里查看我的答案:https://stackoverflow.com/a/60836343/1271474

    【讨论】:

      猜你喜欢
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-30
      • 2015-09-27
      相关资源
      最近更新 更多