Jenkins / fastlane-找不到本地代码签名标识

问题描述 投票:2回答:1

我在使用Jenkins的fastlane时遇到问题。

在终端中运行此命令有效fastlane provide_crashlytics_build testing:false check_xcode:false --env xxx,但在詹金斯手中不起作用

错误消息:

There are no local code signing identities found.
You can run `security find-identity -v -p codesigning` to get this output.
This Stack Overflow thread has more information: https://stackoverflow.com/q/35390072/774.
(Check in Keychain Access for an expired WWDR certificate: https://stackoverflow.com/a/35409835/774 has more info.)
[14:03:30]: No certificates for filter: Certificate ID: '7D72F7MC75' 
[14:03:30]: something bad happened: Could not find a matching code signing identity for type 'AdHoc'.

fastlane版本2.141.0

跟踪步骤:

  1. 我运行此命令security find-identity -v -p codesigning结果如下:2 valid identities found
  2. 我检查了Apple Worldwide Developer证书及其有效和受信任的
  3. 我检查了钥匙串和Apple Developer帐户中的发行证书,并且都在这里

这里是Jenkins Execute Shell:

#!/bin/zsh
export TERM=xterm-256color
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

export GIT_TRACE_PACKET=1
export GIT_CURL_VERBOSE=1

source /Users/Shared/Jenkins/.rvm/scripts/rvm
rvm use 2.6.3

fastlane provide_crashlytics_build testing:false check_xcode:false --env xxx

这里是法藏路:

########## Upload testbuild to crashlytics ##########
  desc "Upload testbuild to crashlytics"
  lane :provide_crashlytics_build do |options|

    if options[:check_xcode]
      verify_xcode
    end

    if options[:add_badge]
        if ENV['DARK_BADGE']
        badge(dark: true)
        else
        badge
        end
    end

    build_preparations

    if options[:testing]
      start_tests
    end

    pem

    match(
      type: "adhoc",
      app_identifier: [ENV['APP_IDENTIFIER'], ENV['APP_NOTIFICATION_EXTENSION_IDENTIFIER']],
      force_for_new_devices: true
    )

    gym(
      xcargs: "ARCHIVE=NO",
      output_name: "#{ENV['OUTPUT_NAME_TESTING']}"
    )

    verify_build(
      provisioning_type: 'distribution',
      bundle_identifier: ENV['APP_IDENTIFIER']
    )

    version = get_ipa_info_plist_value(ipa: "#{ENV['OUTPUT_NAME_TESTING']}.ipa", key: "CFBundleShortVersionString")

    crashlytics(
      api_token: ENV['CRASHLYTICS_API_TOKEN'],
      build_secret: ENV['CRASHLYTICS_BUILD_SECRET'],
      emails: ENV['CRASHLYTICS_EMAILS'],
      notifications: false,
      notes: "#{change_log_last_five_commits}"
    )

    if ENV['SLACK_URL']
      sh ("say 'Yippee! What a awsome day. Thanks to #{lastCommitAuthor} something great happend. A new build is born.'")  

      slack(
        message: "New crashlytics build of #{ENV['SCHEME']} v.#{version}(#{build})",
        channel: "#{ENV['SLACK_CHANNEL']}",
        success: true,
        use_webhook_configured_username_and_icon: true,
        default_payloads: [],
        payload: {
          'Release Notes' => change_log_last_five_commits
        }
      )
    end

    clean_build_artifacts
  end

这里是快速通道日志:

Summary for match 2.141.0                                              |
+----------------------------+---------------------------------------------------------------------------------------+
| type                       | adhoc                                                                                 |
| app_identifier             | ["xxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxx.NotificationServiceExtension"] |
| force_for_new_devices      | true                                                                                  |
| readonly                   | false                                                                                 |
| generate_apple_certs       | false                                                                                 |
| skip_provisioning_profiles | false                                                                                 |
| username                   | xxxxxxxxxxxxxxx                                                                       |
| team_id                    | R2Q6VXW97P                                                                            |
| team_name                  | xxxxxxxxxxxxxxxxxxxxxxxxx                                                             |
| storage_mode               | git                                                                                   |
| git_url                    | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx                       |
| git_branch                 | master                                                                                |
| shallow_clone              | false                                                                                 |
| clone_branch_directly      | false                                                                                 |
| keychain_name              | login.keychain                                                                        |
| force                      | false                                                                                 |
| skip_confirmation          | false                                                                                 |
| skip_docs                  | false                                                                                 |
| platform                   | ios                                                                                   |
| verbose                    | false                                                                                 |
+----------------------------+---------------------------------------------------------------------------------------+
+-------------------+-------------------------------------------------------------+
|                              Installed Certificate                              |
+-------------------+-------------------------------------------------------------+
| User ID           | R2Q6VXW97P                                                  |
| Common Name       | iPhone Distribution: xxxxxxxxxxxxxxxxxxxxxxxxx (R2Q6VXW97P) |
| Organisation Unit | R2Q6VXW97P                                                  |
| Organisation      | xxxxxxxxxxxxxxxxxxxxxxxxx                                   |
| Country           | US                                                          |
| Start Datetime    | 2020-02-04 11:56:01 UTC                                     |
| End Datetime      | 2021-02-03 11:56:01 UTC                                     |
+-------------------+-------------------------------------------------------------+


+-------------------------------------+--------------------------------------+
|                          Summary for sigh 2.141.0                          |
+-------------------------------------+--------------------------------------+
| app_identifier                      | xxxxxxxxxxxxxxxxxxxxxxxxx            |
| username                            | xxxxxxxxxxxxxxxxxxxxxxxxx            |
| force                               | false                                |
| cert_id                             | 7D72F7MC75                           |
| provisioning_name                   | match AdHoc xxxxxxxxxxxxxxxxxxxxxxxx |
| ignore_profiles_with_different_name | true                                 |
| team_id                             | R2Q6VXW97P                           |
| team_name                           | xxxxxxxxxxxxxxxxxxxxxxxxx            |
| platform                            | ios                                  |
| adhoc                               | true                                 |
| developer_id                        | false                                |
| development                         | false                                |
| skip_install                        | false                                |
| skip_fetch_profiles                 | false                                |
| skip_certificate_verification       | false                                |
| readonly                            | false                                |
+-------------------------------------+--------------------------------------+
ios jenkins fastlane fastlane-match
1个回答
0
投票

解决方案>>

  1. 正如@Scriptable在他的评论中所说:
  2. 因为Jenkins服务像守护程序一样运行,它无法访问登录钥匙串,因此使用系统钥匙串。请确保您的签名证书在系统钥匙串中,并查看是否对您有帮助。

  1. 证书永远不会设置为始终信任,它必须是使用系统默认值
  2. enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.