iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法

简介: iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法

报错原文:

gen_jwt_s.rb:3:in `initialize': invalid curve name (OpenSSL::PKey::ECError)
    from gen_jwt_s.rb:3:in `new'
    from gen_jwt_s.rb:3:in `<main>'
JWT_TOKEN=
创建cer证书
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: POST
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1324  100   350  100   974    489   1360 --:--:-- --:--:-- --:--:--  1851
{ "errors": [ { "status": "401", "code": "NOT_AUTHORIZED", "title": "Authentication credentials are missing or invalid.", "detail": "Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests [https://developer.apple.com/go/?id=api-generating-tokens](https://developer.apple.com/go/?id=api-generating-tokens)" } ] }</pre>


报错分析:


可以看出是请求https://developer.apple.com/go/?id=api-generating-tokens这个生成token的接口报错了,看报错信息可以看到是生成token的脚本gen_jwt_s.rb里面出现的错误,在脚本的第三行出现的错误

生成token的脚本代码:

require 'jwt'
ecdsa_key = OpenSSL::PKey::EC.new File.read "AuthKey.p8"
ecdsa_key.private? #=>true
payload = {
    "iss": "xxx",
    "exp": Time.now.to_i + 1200,
    "aud": "appstoreconnect-v1"
  }
header = {
    "alg": "ES256",
    "kid": "xxx",
    "typ": "JWT"
  }
token = JWT.encode payload, ecdsa_key, 'ES256',header
#puts "生成Token成功有效时间是20分钟:"
puts token
aFile = File.new("token.txt", "r+")
if aFile
   aFile.syswrite(token)
else
   puts "Unable to open file!"
end


其中第三行代码是:

ecdsa_key = OpenSSL::PKey::EC.new File.read "AuthKey.p8"


可以推测出是读取p8文件时出现错误,检查了一下p8文件,发现我们这边下载p8文件的链接失效了,所以导致了无法读取p8文件。


解决办法:

1.重新上传p8文件到服务器

2.也可能是存放p8文件的服务出了问题,修复即可

目录
相关文章
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
733 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
1357 11
|
iOS开发 开发者 MacOS
在线创建ios打包证书无需mac
这个文件并不一定需要使用mac OS去创建,在苹果开发者中心,生成了cer格式的证书后,导出p12证书这个过程,其实也并不一定需要mac电脑来完成。
251 0
|
jenkins Java 持续交付
Jenkins打包,发布,部署
Jenkins打包,发布,部署
926 0
|
Android开发 iOS开发 开发者
ios应用打包、安装和上架攻略
假如是普通的证书或普通company证书只能上架才能安装(测试的话有其他安装方法,那是另外的话题),假如是企业类型的in house证书,则可以通过在线安装的方式,比如通过上传到一些分发平台,比如香蕉云编或蒲公英生成安装码扫码安装。
299 2
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
开发框架 监控 iOS开发
Flutter IOS 打包上架踩坑
Flutter IOS 打包上架踩坑
570 0
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
220 0
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
407 2
|
11月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1060 9

推荐镜像

更多