首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题

编译环境,因此必须要安装插件 (当然,也可以不安装Xcode integration插件,使用shell脚本命令进行打包) Xcode integration 若最后构建生成的ipa包,需要上传到FTP...2. ruby_executable_hooks: No such file or directory jekyll有时也会报这个错误得到启示,可能是由于执行pod命令的路径粗存在问题。...在网上搜了一下这个plist文件的用处,发现原来新版的Xcode 9将不会允许你访问钥匙串里的内容,除非设置 allowProvisioningUpdates。...其中,需要特别注意的是ExportOptions.plist的存放路径。 手写ExportOptions.plist文件过于麻烦,不如让XCode帮我们生成。...在 Jenkins 中使用 SVN 管理源码,因此,我需要将这个新增的文件上传SVN,这样在我每次构建项目,输出ipa时就能直接SVN上拉取这个plist文件,通过设置 ExportOptions.plist

2.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

jenkins 之 iOS 打包及上传至蒲公英

" # 指定项目的scheme名称 # (注意: 因为shell定义变量时,=号两边不能留空格,若scheme_name与info_plist_name有空格,脚本运行会失败,暂时还没有解决方法,知道的还请指教...scheme_name="你项目的scheme名称" # 工程中Target对应的配置plist文件名称, Xcode默认的配置文件为Info.plist info_plist_name="Info"...\"error: exportArchive: No applicable devices found.\" --> 可能是ruby版本过低导致,升级最新版ruby再试,升级方法自行百度/谷歌,GitHub...(文件名要与 .sh 脚本里设置的名称一致,如果有新设备注册就要重新替换一次) 修改项目名称: # 指定项目的scheme名称 # (注意: 因为shell定义变量时,=号两边不能留空格,若scheme_name...与info_plist_name有空格,脚本运行会失败,暂时还没有解决方法,知道的还请指教!)

2.1K20

Flutter iOS 混合工程自动化

这些配置信息,在xcode runscript中引入的flutter编译嵌入脚本xcode_backend.sh中会使用到。当然你也可以修改脚本,去除对这个文件的依赖。...podhelper.rb ruby脚本,包含了一个 cocoapod钩子,在pod的安装过程中引入flutter的所有本地库依赖,并在每个*.xcconfig配置文件中写进 『导入Generated.xcconfig...默认的混编方案流程是 1 在Podfile加入脚本 #Flutter工程路径 flutter_application_path = 'flutter_project_dir' #读取 podhelper.rb...分析podhelper.rb 这个Ruby脚本只有七十多行,鉴于不是每个人都熟悉Ruby脚本,我详细注释了一下: # 解析文件内容为字典数组 # 文件内容格式为 A=B换行C=D 的类型 # 如...image.png 混编方案 方案大概的解决方法就是: 完全脱离Flutter环境:(图中实线流程部分) 利用脚本将所有的依赖编译结果Flutter工程中剥离出来,放到iOS工程目录下。

1.5K40

Mac下使用Jenkins踩坑 Fastlane自动化iOS打包写在前面使用FastlaneJenkins 踩坑后记

本来的话也只是想找个自动打包的脚本,找了几个发现都不怎么理想,于是就瞄准了 Jenkins + Fastlane Jenkins是用于管理,如果只需要打包的话Fastlane就足够了 本文也主要是记录自己踩的坑...,而且大部分是来自于Jenkins的, 有兴趣的童靴可以继续往下看~ 当前环境 名称 版本 macOS 10.13.4 Xcode 9.3 ruby 2.4.0 fastlane 2.91.0 使用...command not found那就是有问题了, 具体情况需要具体分析还是google吧 安装ruby 有了rvm安装后 直接安装ruby 安装好后 执行which ruby 看看ruby是否由...rvm插件 安装完成后 在项目配置的构建环境中选择rvm的ruby版本就行了。。 ? 选择ruby版本 接下来就可以愉快的构建了。...执行脚本 这里就直接执行fastlane命令就可以 ? shell 至此就足够了。 点击立即构建,查看控制台,所有的日志都会打印出来。

1.7K31

使用shell分页读取600万+的MySQL数据脚本

shell-mysql (1)脚本背景: 由于要在Linux上,远程读取mysql的表的数据,然后做一定清洗后,把数据上传至Hadoop集群中,使用Java写吧,感觉太麻烦了,得在Win上开发好,还得打成...jar包, 上传到Linux上,如果那里出了问题,还得重复这样,非常不方便,那就用shell写一个吧,也不需要什么jdbc驱动包,只需要在Linux上装个MySQL的 客户端即可,用一行yum命令即可搞定...,所以就花了点时间,封装了一个小脚本 (2)功能介绍: 直接在Linux下使用shell脚本远程分页读取MySQL表的数据的一个小脚本,已测过读取600万+的数据 效率与jdbc相差无几 (3...)脚本介绍: 主要有三个脚本构成 1,page.sh 这是一主脚本,里面定义了分页的条件,大家看下便知 2,f.sh 一个小包装的脚本吧,里面会用sed去掉表头一些信息 3,port.sh 分页读取数据的执行脚本...:$pageSize 分页数量:$totalPage" #把总页数减一,方便分页处理,因为后面咱的下标0开始 totalPage=`echo "$totalPage-1" | bc `

1.9K50

【Jenkins】Jenkins集成IOS全自动打包专题

工程中设置证书与provisioning pfrofile 2.1.3 编写shell打包脚本     Xcode9以后只能通过shell脚本打包,而不能通过Jenkins的xcode集成控件打包。...2.2 自动构建脚本格式         其中打包类型是adhoc、dev或者app-store,是在脚本plist文件中指定的,与工程中设置无关。...才会允许,但是由于 Xcode integration 插件封闭,并不能对其进行修改加上这个属性,所以决定使用 Shell 脚本代替插件。...其原因在于自动打包脚本中设置的文件路径不对,导致plist文件找不到。...HJEntDisExportOptions.plist 3.1.10.6 问题二解决方案         将shell脚本加入换行连接符、分行输入,例如: xcodebuild -archivePath

78840

我的自动化构建之路之 Jenkins+Fastlane+Github内网测试

当时想着利用 Jenkins进行打包之前写一个 Shell脚本替换环境的配置,为此我那段时间还专门看了 Shell的入门教程,最后我放弃了。...我之前经常搭建企业安装的环境,无非就是 点击安装转接到 Plist 的地址, Plist读取 Ipa的安装路径进行安装。 不过从 iOS7开始必须让 Plist是正规的地址,不然无法进行安装。...新建一个构建 Shell脚本 #!...我们使用 Copy命令用 NSTask执行一个简单的 Shell脚本把 /Applications/MAMP/htdocs/mainfest.plist的文件复制到 GearBest_temp.ipa的同级目录...我们可以利用 Model 转 Json存在本地 每次重新生成安装界面本地读取之后生成安装的 Html存在到我们 MAMP的主目录即可。

1.6K41

Xcode的iOS项目的版本号设置

Version & Build 号 今天对Xcode里iOS的版本号又有了新的认识,一个叫做Version,一个叫做Build,这两个值都可以在Xcode中选中target,点击“Summary”后看到...Version在plist文件中的key是“CFBundleShortVersionString”,和AppStore上的版本号保持一致,Build在plist中的key是“CFBundleVersion...Phases“ 点击右下角的”Add Build Phrase“,选择”Add run script“,会产生一个新的Run Script项 拖拽新生成的Run Script项到最上面 点开该项,copy下面的shell...代码进去,代码来自[这里](http://stackoverflow.com/questions/9855955/xcode-increment- build-number-only-during-archive...$buildnum" else echo $CONFIGURATION " build - Not bumping build number." fi 这段shell脚本的意思就是说,如果当前的配置是

2.3K10

用expect脚本实现Xcode对越狱设备的动态库注入

安装的方法就是cydia这个应用中搜索openssh,然后安装即可。...工具的开发到打包一般都会借助脚本来实现,而最后的远程文件传输部分因为需要登录所以需要手动输入用户和密码而无法进行自动化处理,即使是在脚本中使用输入重定向也是无用。...你可以利用expect命令实现Shell自动化交互的方法详解这篇中获取详细的expect脚本的使用方法。 聪明的你是否想到了什么? 我们先暂停一下关于shell和expect相关的东西。...你可以借助一些第三方工具来创建一个Tweak程序,也可以在Xcode直接创建动态库。...在Xcode 上引入expect脚本 我们在Xcode中添加expect脚本来实现无交互的远程文件的拷贝的能力,从而快速的安装和运行Tweak插件。

99130

工程化(一)——Xcode工程探究

如果我们熟悉配置文件的语法书写规则,其实我们也可以自己去写这个Scheme配置文件,然后通过脚本的方式读取该文件并且将读取到的配置内容应用到构建过程中去,如果所有的这些都是自己手动去做的话,那就会非常麻烦...二、Xcode就是一个终端 Xcode可以在build phases中添加shell脚本,如下: Run Script,顾名思义,就是运行脚本的意思。...这里export出的这些变量,就是在执行当前shell脚本的环境中,所能够拿到的、Xcode给提供的环境变量。...我在XcodeShell脚本中输入如下指令: 1> 代表的是将正确的结果重定向到某个地方。...Xcode中的Run Script来执行脚本,如下: 在这里可以执行Python、Ruby或者是Shell脚本

2K31

Flutter 搭建 iOS 命令行服务打包发布全保姆式流程

App Id 等相关配置; 通过 Print 命令直接输出对应的 plist信息; 完成 plist 配置的支持, 接下来就需要在机器上配置开发者信息,最简单的做法就是打开 Xcode 然后直接登陆上开发者账号...configuration Release archive -archivePath $PWD/build/Runner.xcarchive ⚠️这里有一个需要注意,那就是打包过程中如果出现 .sh 脚本的相关报错.../Xcode/DerivedData/ 的错误,推荐先在打包机上用 Xcode 执行一次完整的 Archive 流程,在首次执行过程应该会出现关于某些 sh 的授权执行弹框,输入密码点始终完成,然后再重新执行上述脚本...rvm; curl -L get.rvm.io | bash -s stable && source ~/.rvm/scripts/rvm 2、通过 rvm install 2.5.5 安装对应的 ruby...具体可以通过 rvm list known 选中你想要需要的版本 这里需要注意 rvm install 可能会失败,一般和 brew 需要 update 还有网络情况有关系; 3、可以安装多个 ruby

2.9K50

xcodebuild:从命令行部署 iOS 应用程序

Apple Developer 工具上有一个名为 Fastlane 花哨包装器,可用于 iOS 应用程序的脚本部署。您可能想知道为什么我们需要使用命令行来部署 iOS 应用程序。...你能想象没有 Xcode 的一天吗?或者您能想到从没有 GUI 访问权限的服务器部署应用程序吗?或者如果你没有 Ruby脚本技能怎么办?使用Fastlane?...macOS 与钥匙串中的分发证书 我们将介绍 iOS 应用程序的循环,分析 app 到使用 xcodebuild 部署到 iTunes Connect 。...DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">...接下来是什么 现在,我们已成功将 IPA 上传到 iTunes Connect,我们可以分发到 testFlight 进行内部测试或将其提交给 Apple 以便 iTunes Connect 进行审核

2.2K20
领券