Jenkins/fastlane - 没有找到本地代码签名身份

2023-11-27

我在使用 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'.

快速通道版本 2.141.0

追踪步骤:

  1. 我运行这个命令security find-identity -v -p codesigning这是结果:2 valid identities found
  2. 我检查了 Apple Worldwide Developer 证书及其有效且可信的
  3. 我检查了钥匙串和苹果开发者帐户中的分发证书,两者都在那里

这是 Jenkins 执行 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

这是faslane车道:

########## 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                                |
+-------------------------------------+--------------------------------------+

Solution

  1. 正如@Scriptable 在他的评论中所说:

因为 Jenkins 服务像守护进程一样运行,所以它无法访问登录钥匙串,它使用系统钥匙串。请确保您的签名证书位于系统钥匙串中,看看这是否有助于您解决问题。

  1. 证书永远不会被设置为永远信任, 一定是使用系统默认值

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins/fastlane - 没有找到本地代码签名身份 的相关文章

随机推荐

  • 将 JavaScript 变量传递给 AngularJs ng-init

    我定义了以下 javascript 变量并需要传递memId值传入 AngularJs init 函数 div class mini 我收到错误 memId没有定义 您需要使用 角度 方式来完成此操作 window var app angu
  • 如何以最小的影响重新启动 CSS 动画

    有没有一种方法可以重新启动 CSS 动画 而无需克隆元素 回流 DOM 等待 setTimeout onAnimationEnd EDIT 无需 jQuery 或检查 我基本上只是在下一个绘制的帧处重新启动动画 此方法不会克隆任何元素 重排
  • 处理带有未知 IPv6 扩展标头的数据包

    Question 是否应该丢弃带有未知 IPv6 扩展标头的数据包 Details 我无法通过检查找到这个问题的答案RFC 这本书IPv6 要点第 22 页指出 如果节点需要下一个标头但无法识别下一个标头字段中的值 则需要丢弃该数据包并向数
  • 在C#中,如何可靠地杀死进程树[重复]

    这个问题在这里已经有答案了 在 C 中 我们使用以下代码来终止进程树 有时有效 有时无效 可能与 Windows 7 和 或 64 位有关 它找到给定进程的子进程的方法是调用GetProcesses获取系统中的所有进程 然后调用NtQuer
  • Airplay 按钮未显示在 AVPlayer 的播放器控件中

    我使用 AVPlayer 和 AVPlayerViewController 创建了一个视频播放器 我已经设定 allowsExternalPlayback 财产至真也 usesExternalPlaybackWhileExternalScr
  • apk (.apk) 和应用程序包 (.aab) 之间的区别

    最近谷歌推出了一个新功能app bundle这与 APK 的概念非常相似 除了灵活性和架构差异之外 我阅读了很多博客 文章来了解应用程序包与 APK 文件相比如何在设备中工作 App Bundle 的实际内部工作流程是什么 它如何在从 Go
  • 将标记替换为 html 内容

    我一直在搜索 Google Map API V3 文档 但找不到任何方法来使用我自己的 html 内容而不是图像在地图上创建自定义图标 我想显示一个动态标记 可以显示文本或我想要的任何内容 例如 div class marker Dynam
  • Java打印包含多个整数的字符串

    今天刚开始学习java 似乎无法弄清楚这一点 我正在关注 learnjavaonline org 上的教程 该教程会教您一些内容 然后要求您编写代码来执行特定操作 然后检查输出以查看其是否正确 问题是 如果它不正确 它不会说明原因 也不会为
  • Anaconda 安装后运行 pyinstaller 会导致 ImportError: no Module named 'pefile'

    I did conda install c acellera pyinstaller 3 2 3 as per Anaconda 的网站看起来它安装正确 但如果我尝试通过 cmd 运行它 我会得到以下信息 C Users Cornelis
  • 增加该值(如果存在),否则在 DynamoDB 中添加新条目

    我有一个 DynamoDB 表 其列和主键为ipAddress IP地址 visits 我从我的 React 网站获取用户的 IP 地址 并通过 Lambda 函数和 API Gateway POST 请求将其插入到 DynamoDB 如果
  • UIImages 的图像尺寸是 1024 x 1024?

    苹果文档指出 您应该避免创建大于 1024 x 的 UIImage 对象 大小为 1024 除了大量的内存之外 这样的图像还会 消耗 使用图像作为纹理时可能会遇到问题 在 OpenGL ES 中或将图像绘制到视图或图层时 这个尺寸 如果您正
  • Boost.Test 检查指针是否为空

    我有以下测试 BOOST CHECK NE pointer nullptr 编译失败的原因是 xxx include boost test tools detail print helper hpp 50 14 错误 operator 出了
  • 如果Java中的反射会减慢命令的执行速度,为什么还有这么多框架使用它?

    根据我的理解 使用 Java 反射 API 会按命令减慢代码执行速度 但后来我看到它在 Java 世界的很多地方都在使用 仅举几例 注释 Spring框架 AOP 休眠 MyBatis 这意味着我错过了一些关于 java 反射 又名优化技术
  • 使用 PostGIS 配置 Amazon Elastic Beanstalk

    有谁有使用 PostGIS 设置 Amazon Elastic Beanstalk 的经验 以便我可以利用 Geodjango 默认设置 RDS 以 MySQL 为特色 当前不支持开箱即用的许多功能 1 PostgreSQL PostGIS
  • 如何在 django 中验证 json 对象

    我正在使用 AJAX 向 django 视图提交 JSON JSON 如下所示 code 9910203040 required name Abc required payments amount 300 required name efg
  • winform 友好的类名

    我有一个 C winform 应用程序 当使用间谍 时 它给出 WindowsForms10 Window 8 app 0 33c0d9d 作为类名 有没有办法将其更改为更友好的内容 没有 最后一个十六进制数字是拥有该窗口的 AppDoma
  • 如何在 vim 中删除下一个字符(不是当前字符!)?

    我经常发现自己需要删除光标后面的字符 而不是当前字符 在 vim 的正常模式下执行此操作的最短方法是什么 lx会成功 或者lxh如果您想将光标返回到原始位置 它只是向前移动光标并删除其下方的字符 如果这还不够短 您可以将其映射到单个按键 m
  • Linux集群,如何“仅仅”锁定一个文件?

    在 Bash 中 我试图使函数 getLock 与不同的锁名称一起使用 function getLock getLock FILE 1 getLock OP 2 case getLock OP in LOCK UN flock u getL
  • 如何表示当前英国时间?

    我在服务器和客户端之间转换日期时遇到问题 两者都在德国运行 客户端计算机上的区域设置可以设置为英国或德国 我从服务器收到一个 CET 格式的日期 我需要在 UI 上将此时间表示为英国时间 例如 从服务器收到的时间 如 01 07 2010
  • Jenkins/fastlane - 没有找到本地代码签名身份

    我在使用 Jenkins 的 fastlane 时遇到问题 在终端中运行此命令有效fastlane provide crashlytics build testing false check xcode false env xxx 但是詹金