Xcode 9 在 Jenkins 自动打包脚本 中使用 Xcode integration 插件打包失败的原因

从FPN到PANet:保姆级图解CVPR经典网络结构演进与PyTorch代码实现 本文深入解析了从FPN到PANet的特征金字塔网络演进历程,详细介绍了PANet在CVPR中的三项关键创新及其PyTorch代码实现。通过自底向上路径增强、自适应特征池化和全连接特征融合,PANet显著提升了实例分割性能,成为YOLOv4等现代检测器的核心组件。文章包含完整的网络架构解析和实战代码示例,帮助开发者深入理解多尺度目标检测技术。 阅读详情

问题

使用 Jenkins 来做 iOS 项目的持续集成,升级 Xcode 9 之后,编译完成之后打包会一直报如下所示的错误:

error: exportArchive: "APPNAME.app" requires a provisioning profile with the Push Notifications feature.

Error Domain=IDEProvisioningErrorDomain Code=9 ""APPNAME.app" requires a provisioning profile with the Push Notifications feature." UserInfo={NSLocalizedDescription="APPNAME.app" requires a provisioning profile with the Push Notifications feature., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

** EXPORT FAILED **

Failed to build /Users/Tolecen/.jenkins/workspace/APPNAME/build/APPNAME_release.ipa

Build step 'Xcode' marked build as failure

Finished: FAILURE

原因

因为 Xcode 9 默认不允许访问钥匙串的内容,必须要设置 allowProvisioningUpdates 才会允许,但是由于 Xcode integration 插件封闭,并不能对其进行修改加上这个属性,所以决定使用 Shell 脚本代替插件

解决方案

将 Jenkins 项目里的 Xcode integration 构建步骤去掉,使用下面所示的命令:
如果是 project 的项目,那就将下面第一段的命令中 -workspace PROJECTNAME.xcworkspace修改为−workspace{PROJECT_NAME}.xcodeproj 即可。

# clean
echo "================= Clean一下 ================="
xcodebuild clean  -workspace  ${PROJECT_NAME}.xcworkspace \
                  -configuration ${CONFIGURATION} \
                  -target ${CURRENT_SHEME} \
#-alltargets
echo "================= Clean一下 Over ================="

# archive
echo "============== archive =================="
xcodebuild archive  -workspace ${PROJECT_NAME}.xcworkspace \
                    -scheme ${CURRENT_SHEME} \
                    -configuration ${CONFIGURATION} \
                    CFBundleVersion=${BOUNDLE_VERSION} \
                    -destination generic/platform=ios \
                    -archivePath build/${CURRENT_SHEME}.xcarchive \
                    CODE_SIGN_IDENTITY="${__signingIdentity}"

# export ipa
echo "+++++++++++++++++ exportArchive +++++++++++++++++"
xcodebuild -exportArchive -archivePath build/${CURRENT_SHEME}.xcarchive \
                          -exportPath build/${CURRENT_SHEME}\
                          -destination generic/platform=ios\
                          -exportOptionsPlist ${ExportOptionsPlistPath}\
                          -allowProvisioningUpdates

注意ExportOptions.plist配置,这个文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>compileBitcode</key>
    <false/>
    <key>method</key>
    <string>enterprise</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.houmanager.enterprise.test</key>
        <string>com.houmanager.enterprise.test</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Distribution</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>5XXXXXXXXXXXHM</string>
    <key>thinning</key>
    <string><none></string>
</dict>
</plist>

如果不知道怎么填写,手动用Xcode9打包,导出文件中会有ExportOptions.plist

直接复制到指定路径或者手动copy即可。

使用Jenkins搭建iOS/Android持续集成打包平台  背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包。而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品、运营、测试等人员)通过手机扫描二维码后就能直接安装测试包。 该需求具有一定的普遍性,基本上所有开发APP的团队都可能会用到,因此我将整个需求实现的过程整理后形成此文,并且真正地做到了零基础上手,到手即飞 阅读详情

相关推荐

Appium跨平台移动自动化测试:从原理到实战的完整指南

移动应用自动化测试是软件质量保障的关键环节,其核心在于模拟用户操作、验证功能稳定性。基于WebDriver协议的统一标准,自动化测试框架实现了跨平台脚本复用,显著提升了测试效率和维护性。在技术价值层面,这种标准化方案降低了多端测试的技术门槛,使团队能够将重复的回归测试自动化,并集成到CI/CD流水线中,实现快速反馈。在实际应用场景中,无论是原生Android、iOS应用,还是鸿蒙、Flutter等跨平台框架,都需要适配对应的自动化引擎。本文以Appium这一主流工具为例,深入解析其基于UiAutomator

weixin_30596023的博客 547

升级xcode9 自动打包失败问题

由于升级xcode9后,自动打包出现错误。 error: exportArchive: "xxx.app" requires a provisioning profile with the Push Notifications feature.   解决方案: 可以手动Archive打出ipa,然后查看 ExportOptions.plist内容,会发现和原来的plist,相差几组数据。 ...

Lee的博客 6781

Codex:面向Agent操作系统的MCP协议与Computer Use能力解析

Agent操作系统是AI从‘生成’走向‘执行’的关键范式升级,其核心在于标准化的能力调用与确定性系统交互。MCP(Model Communication Protocol)作为Agent世界的语义化通信协议,通过强Schema约束实现能力声明、参数校验与上下文感知,显著降低LLM幻觉风险;Computer Use则代表操作系统级的‘手眼协调’能力层,依赖AXAPI、UIAutomation等原生接口完成屏幕捕获、鼠标模拟、键盘注入等真实操作。二者共同构成AI自动化闭环的技术底座,广泛应用于智能IDE控制、跨

weixin_34416754的博客 340

Flutter打包报错requires a provisioning profile with the Push Notifications and Sign in with Apple featur

最近参与团队开发,之前一直好用的flutter打包命令居然不好用了,现在把解决方法分享给大家,希望帮助到你。这就是flutter到处ipa文件时遇到的问题和解决方法,希望能帮助到你!

smileKH的博客 2976

jenkins+xcode插件在mac上构建iOS项目(含构建脚本)

前期准备: linux服务器:需安装好jenkins 我的是2.234版本,Java是11(jenkins需要的插件,gitlab,xcode) mac:我部署在虚拟机上,版本是macOS12,Java11 xcode也是最新版本 需要开发准备 plist文件 login.keychain文件,以及IOS证书(他们都懂) 1.创建节点,我是节点构建方便管理,所以先创建一个slave节点(mac) 创建完节点开始配置节点 配置节点 节点配置完毕。然后配置证书。 ...

m0_61664359的博客 2509

Unity3D实战:5分钟搞定RTSP监控视频播放(附完整代码)

本文提供了一套在Unity3D中快速集成RTSP监控视频播放的实战方案。通过采用LibVLCSharp for Unity这一成熟稳定的跨平台中间件,开发者可以轻松实现RTSP流的解码与渲染,并附有完整的C#代码示例,帮助用户在5分钟内完成集成,适用于智慧园区、安防监控等3D可视化场景。

weixin_29001655的博客 192

手把手教你利用Jenkins持续集成iOS项目

投稿文章,作者:一缕殇流化隐半边冰霜(@halfrost) 前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一批的用户在使用中纷纷出现闪退bug,轻则,很可能前期推广砸的钱都白费了,重则,口碑不好,未来也提升不起用户量来了。静下心来分析一下问题的

小流星子学习博客 3232

宝塔面板全栈部署指南:Node后端+React前端与数据库配置实战

本文提供了一份详尽的宝塔面板全栈部署实战指南,涵盖Node.js后端、React前端与数据库的完整配置流程。文章深入解析了环境准备、数据库创建与导入、Node服务部署、PM2进程守护、React应用构建与托管,以及线上环境变量管理与安全配置等核心步骤,帮助开发者高效、稳定地将项目部署至生产环境。

weixin_29232121的博客 90

Xcode持续集成之道:自动化构建与部署的精粹

通过本文的详细指导,开发者可以掌握如何在Xcode项目中集成持续集成系统,实现自动化构建和部署。这不仅提高了软件开发的效率,也保障了软件产品的质量。本文深入探讨了Xcode与持续集成系统的集成方法,提供了从配置到测试的全面指南,并通过代码示例展示了具体的实施步骤。希望能够帮助开发者在Xcode项目中顺利实施持续集成,提升开发流程的自动化水平。

2401_85341950的博客 1167

淘特App x-sign参数逆向实战:从抓包到算法定位

本文详细解析了淘特App的x-sign参数逆向过程,从抓包分析到算法定位,涵盖了使用jadx-gui进行静态分析、Frida动态Hook验证以及Native层算法还原等关键技术。文章重点介绍了x-sign参数的生成机制及其在阿里系应用中的安全防护策略,为逆向工程师提供了实用的调试技巧和对抗策略。

5b6n7m8的博客 229

Abaqus小白必看:用Micromechanics Plugin轻松搞定RVE周期性边界条件(附避坑指南)

本文为Abaqus初学者提供了使用官方Micromechanics Plugin插件高效实现复合材料代表性体积单元分析的完整指南。文章详细讲解了从插件安装、模型准备、周期性边界条件自动设置到结果验证的全流程,并重点分享了处理复杂模型和避免常见错误的实用技巧,帮助用户大幅提升RVE分析效率与准确性。

weixin_28363123的博客 801

iOS自动化测试利器xctool:从安装到CI集成的完整指南

在iOS开发与持续集成(CI)领域,自动化测试是保障代码质量与交付效率的核心环节。其基本原理是通过命令行工具驱动XCTest框架执行测试用例,取代手动操作,实现快速反馈。这项技术的核心价值在于提升测试执行速度、生成结构化报告,并无缝融入CI/CD流水线,从而支撑敏捷开发与快速迭代。典型的应用场景包括本地快速测试、多设备并行验证以及生成JUnit/JSON格式报告供第三方工具集成。针对xcodebuild输出冗长、格式不友好的痛点,Facebook开源的xctool提供了增强解决方案,通过支持并行测试和多种报

weixin_33811539的博客 358

Python自动化监控:实时捕捉LOF基金溢价套利机会并微信预警

本文详细介绍了如何使用Python构建一个自动化监控系统,实时捕捉LOF基金的溢价套利机会。通过AKShare获取基金数据,结合雪球API计算实时溢价率,并利用企业微信API实现微信推送预警,帮助投资者高效、自动地发现并抓住转瞬即逝的套利机会。

weixin_28327051的博客 525

Jenkins Pipeline 实战指南:从声明式语法到企业级 CI/CD 流水线构建

持续集成与持续交付(CI/CD)是现代软件工程的核心实践,旨在通过自动化流程提升软件交付的效率与质量。其核心原理在于将代码变更后的构建、测试、部署等一系列操作编排为可重复执行的流水线,从而实现快速、可靠的软件发布。Jenkins Pipeline 作为实现这一理念的关键技术,通过将构建流程定义为代码(即 Jenkinsfile),带来了流程版本化、可追溯和团队协作的巨大价值。它广泛应用于微服务构建、容器化部署及云原生场景。本文聚焦于 Jenkins Pipeline 的两种核心语法——强调安全与结构的声明式

weixin_30564901的博客 521

如何查看在电脑里登陆过的微信帐号的聊天记录

打开微信电脑版,点击左下角 "≡" 菜单 → 选择 "设置"进入 "账号与存储"(旧版为" 文件管理 ")选项卡在 "存储位置"一栏查看当前实际保存路径,可点击" 打开文件夹 " 直接访问查看电脑里登录过的微信账号聊天记录,首选官方客户端直接登录查看,操作简单且安全;若账号已退出,可通过备份恢复功能处理;仅需查看媒体文件时,可定位到FileStorage 文件夹直接访问。无论哪种方式,都需遵守隐私保护原则,并注意聊天记录的加密特性限制。

捷利迅分享的博客 4556

告别Link180!在Ansys Mechanical 2020R2中正确启用Cable280绳索单元(附Beta选项开启指南)

本文详细介绍了在Ansys Mechanical 2020R2中启用Cable280绳索单元的全过程,包括Beta选项的开启步骤、建模技巧及高阶应用。Cable280作为专为绳索仿真设计的单元,相比传统的Link180单元,在大变形模拟和计算效率上表现更优,特别适合斜拉桥、电梯牵引绳等工程场景。

weixin_33711647的博客 406

iOS自动化测试实战指南:从XCTest/KIF框架选型到CI集成

在软件开发领域,自动化测试是保障产品质量、提升交付效率的核心工程实践。其基本原理是通过编写脚本模拟用户操作或验证代码逻辑,替代重复的人工测试,从而构建快速反馈的“安全网”。这项技术的核心价值在于实现快速、可靠且可重复的验证,为代码重构和持续迭代提供信心。在移动开发,特别是iOS生态中,自动化测试的应用场景广泛,涵盖单元测试、UI集成测试等不同层级。开发者常面临框架选型难题,需在XCTest、KIF、Appium等工具中做出决策。本文聚焦iOS平台,深入探讨如何基于XCTest进行单元测试,并利用KIF框架实

weixin_34150830的博客 496

【图像超分】论文复现:轻量化超分 | 残差特征蒸馏网络RFDN的Pytorch源码复现,跑通源码,整合到EDSR-PyTorch中进行训练,补充CCA的实现!

本文介绍了将RFDN(残差特征蒸馏网络)整合到EDSR-PyTorch框架中的实现过程。主要内容包括:1)环境配置与数据集准备;2)测试源码提供的x4预训练模型,并通过修改图像裁剪函数解决HR与SR尺寸不一致问题;3)训练过程详解,包括将RFDN源码模块整合到EDSR框架中,调整模型参数输入方式。文章还提供了完整的代码实现、训练好的模型权重下载链接,并对RFDN架构进行了详细拆解与注释。通过将RFDN与EDSR相结合,实现了轻量级图像超分辨率重建,获得了PSNR/SSIM等指标及可视化结果。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 433

Unity iOS开发:EDM4U与Cocoapods依赖管理完全指南

在移动应用开发中,依赖管理是确保项目稳定构建和团队协作的基础环节。其核心原理是通过声明式配置,自动化地获取、版本控制和集成第三方代码库,从而解决手动管理带来的冲突与维护难题。对于Unity引擎的iOS平台构建,这一技术价值尤为突出,它使得开发者能够无缝集成Firebase、广告和分析等强大的原生SDK,极大地扩展了应用功能。具体到应用场景,Unity项目通过External Dependency Manager (EDM4U) 工具,在构建时自动调用iOS生态标准的Cocoapods依赖管理器,处理原生库的

weixin_30736301的博客 346

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ios jenkins配置_jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略

一.环境说明搭建机器:一台Mac Book Pro开发工具:XCode V7.3.1开发环境:OS X EI Capitan 版本 10.11.5jenkins版:V1.647(特别注意:我用的是V1.647,如果使用其他版本可能导致一些未知的BUG)比如我之前用了最新的2.10版本,就导致了一个很奇葩的问题,找了很多资料都没有解决2.10.png所以还是用老版本吧,比较稳定点。二.环境搭建1:安...

weixin_35988311的博客 405

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

xode9.0的xcodebuild -exportArchive -archivePath 导出ipa包报错Error Domain=IDEProvisioningErrorDomain Code=...

今天升级xcode9.0,莫名其妙的 xcodebuild -exportArchive -archivePath命令失效,导出ipa安装包报错,经过和同事的自己查找,发现苹果的XcodeBuild命令发生了变化,需修改-exportOptionsPlist 导出的plist文件,操蛋的苹果必须要我们指定证书的buildId和证书的UUID。 以下是苹果的官方文档: provisionin...

weixin_30652897的博客 726

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Xcode9解决exportArchive: requires a provisioning profile

https://stackoverflow.com/questions/45748140/xcode-9-distribution-build-fails-because-format-of-exportoptions-plist-has-chang

wanzhanzhuce的博客 3485

ios jenkins配置_利用Jenkins进行iOS持续集成

前言一、持续集成优点:1、缩减开发周期,快速迭代版本2、提供分发效率,测试人员以及相关人员无需等待开发人员打包3、减少重复操作,高效打包,减轻开发人员工作量。二、iOS 持续集成的大概原理为:1、通过Jenkins作为一个触发器,捕捉push等操作或者定时,触发打包动作;2、GIT plugin 进行项目源码管理;3、通过Xcode integration进行打包。目录一、安装Jenkins二、J...

weixin_39738380的博客 378

Xcode9 命令行打包变化

最近更新了Xcode9 原有的自动化打包工具不好用了,会出现如下报错 Error Domain=IDEProvisioningErrorDomain Code=9 ""apple.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="apple.app" requires a provisioning

tianhf8的博客 2137

iOS 测试 xcodebuild 命令行打包遇到的坑与解决方案 2017

第一个问题 ** INTERNAL ERROR: Uncaught exception ** Uncaught Exception: -[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fd4c8e38fd0 原因分析:Export Options plist文件里的格式不...

chqj_163的专栏 3073
上一篇: -bash: netstat: command not found
下一篇: iOS一行shell脚本自动打包上传指定位置
Bytesking
博客等级 码龄10年 15粉丝 39原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值