Travis CI 构建

Building Flutter APKs and IPAs on Travis 这篇文章详细介绍了如何在 Travis CI 上为 Flutter 项目打包 Android/iOS 应用,不过实际构建时存在几个问题,原文中的 .travis.yml 配置如下:

matrix:include:- os: linuxlanguage: androidlicenses:- 'android-sdk-preview-license-.+'- 'android-sdk-license-.+'- 'google-gdk-license-.+'android:components:- tools- platform-tools- build-tools-25.0.3- android-25- sys-img-armeabi-v7a-google_apis-25- extra-android-m2repository- extra-google-m2repository- extra-google-android-supportjdk: oraclejdk8sudo: falseaddons:apt:# Flutter depends on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 version GLIBCXX_3.4.18sources:- ubuntu-toolchain-r-test # if we don't specify this, the libstdc++6 we get is the wrong versionpackages:- libstdc++6- fonts-droidbefore_script:- wget http://services.gradle.org/distributions/gradle-3.5-bin.zip- unzip -qq gradle-3.5-bin.zip- export GRADLE_HOME=$PWD/gradle-3.5- export PATH=$GRADLE_HOME/bin:$PATH- git clone https://github.com/flutter/flutter.git -b alpha --depth 1script:- ./flutter/bin/flutter -v build apk- os: osxlanguage: genericosx_image: xcode8.3before_script:- pip install six- brew update- brew install --HEAD libimobiledevice- brew install ideviceinstaller- brew install ios-deploy- git clone https://github.com/flutter/flutter.git -b alpha --depth 1script:- ./flutter/bin/flutter -v build ios --no-codesigncache:directories:- $HOME/.pub-cache

Android

wget - 403 Forbidden

这个错误发生在执行 wget http://services.gradle.org/distributions/gradle-3.5-bin.zip 的时候,把 gradle 的下载路径替换成 https 即可。

Remote branch alpha not found in upstream origin

这个错误发生在下载 Flutter 代码的阶段,原文中的配置会下载 Flutteralpha 分支代码,但是目前 Flutter 的仓库已经没有 alpha 分支,切换到 stable 分支即可,即:git clone https://github.com/flutter/flutter.git -b stable --depth 1

Failed to install the following Android SDK packages as some licences have not been accepted

详细错误信息如下:

[        ] > Failed to install the following Android SDK packages as somelicences have not been accepted.[        ]      build-tools;28.0.3 Android SDK Build-Tools 28.0.3[        ]      platforms;android-29 Android SDK Platform 29[        ]   To build this project, accept the SDK license agreements andinstall the missing components using the Android Studio SDK Manager.

这个错误是由于没有同意 Android SDK 的许可证协议,在 before_script 中加入如下配置即可:

yes | sdkmanager "platforms;android-29"
yes | sdkmanager "build-tools;28.0.3"

iOS

pip: command not found

这个错误在执行 pip install six 时遇到,经过实际验证构建 iOS 应用时并不需要此行配置,所以删掉即可。

Xcode 11.0 or greater is required to develop for iOS

原文中的配置使用的是 Xcode 8.3,最后打包时会提示此错误,将 osx_image 设置为 xcode11 即可。

最后完整可用的 .travis.yml 配置如下:

matrix:include:- os: linuxlanguage: androidlicenses:- 'android-sdk-preview-license-.+'- 'android-sdk-license-.+'- 'google-gdk-license-.+'android:components:- tools- platform-tools- build-tools-25.0.3- android-25- sys-img-armeabi-v7a-google_apis-25- extra-android-m2repository- extra-google-m2repository- extra-google-android-supportjdk: oraclejdk8sudo: falseaddons:apt:# Flutter depends on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 version GLIBCXX_3.4.18sources:- ubuntu-toolchain-r-test # if we don't specify this, the libstdc++6 we get is the wrong versionpackages:- libstdc++6- fonts-droidbefore_script:- wget https://services.gradle.org/distributions/gradle-3.5-bin.zip- unzip -qq gradle-3.5-bin.zip- export GRADLE_HOME=$PWD/gradle-3.5- export PATH=$GRADLE_HOME/bin:$PATH- git clone https://github.com/flutter/flutter.git -b stable --depth 1- yes | sdkmanager "platforms;android-29"- yes | sdkmanager "build-tools;28.0.3"script:- ./flutter/bin/flutter -v build apk- os: osxlanguage: genericosx_image: xcode11before_script:- brew update- brew install --HEAD libimobiledevice- brew install ideviceinstaller- brew install ios-deploy- git clone https://github.com/flutter/flutter.git -b stable --depth 1script:- ./flutter/bin/flutter -v build ios --no-codesigncache:directories:- $HOME/.pub-cache

完整的代码可参考 flutter-travis-build-demo。

Codemagic

最后推荐 Codemagic 这个服务,提供云端打包 Flutter 应用的功能,省去了 Travis CI 配置的步骤,免费用户每月有500分钟的额度来执行构建。

参考:

  • Building Flutter APKs and IPAs on Travis
  • Failed to install the following Android SDK packages as some licences have not been accepted in jitpack

flutter ios打包_使用 Travis CI 为 Flutter 项目打包 Android/iOS 应用相关推荐

  1. 构建指定仓库_使用Travis CI自动构建和部署你的GitBook

    本文,博主将会介绍利用Travis CI持续集成服务自动化构建和部署GitBook. 首先介绍一下TravisCI,下文摘自维基百科-Travis CI Travis CI是在软件开发领域中的一个在线 ...

  2. flutter图片识别_从头到尾撸一遍Flutter的一切...

    Flutter学(cai)习(keng)之路(Exploring Flutter in action) 创世宣言 尽情踩坑吧 ⤵️ 主要Cover到的点 [x] 路由界面 [x] 状态传递 [x] 子 ...

  3. python开发ios插件_[原创]Textobot-换个轻松高效的方式开发iOS越狱插件

    许愿:要是段老师的看雪平台能导入头条或者公众号的文章就好了. 导读 0x00.交个朋友 0x01.越狱开发 0x02.Cydia插件体系 0x03.Cydia插件开发 0x04.Textobot插件体 ...

  4. python 自动化框架打包_听说很多人都不会打包,教你Python实现前端自动化打包部署!...

    作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈 ...

  5. vue 使用window的对象_如何3分钟把VUE项目打包成apk

    必要条件 使用vue-cli3搭建的项目 工具 HBuilder X,他的图标长这个样子,下载地址:https://www.dcloud.io/hbuilderx.html 做前端的大多数小伙伴们都应 ...

  6. flutter usb串口_在Windows上搭建Flutter开发环境

    一.使用镜像 由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中: export PUB_HOSTED_URL=h ...

  7. 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat

    之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...

  8. flutter ios打包_安卓开发者如何使用Flutter打包IOS应用

    安卓开发使用Android Studio开发Flutter应用,那么Flutter代码写出来了,却不知道怎么上架,接下来就教你如何正确的把Flutter代码打包成IPA上架到APP Store 你现在 ...

  9. 安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!

    软件/资料获取方式在文末 正文: 前几天发哥预告了一下LOL手游上线的事,本来以为国服也会同步上线,结果也是意料之中的跳票了,让我不禁想起当年玩魔兽世界时国服万年的TBC,不过据说LOL推迟上线是怕影 ...

最新文章

  1. 单片机中SDZ是什么意思_合泰单片机ADC转换程序
  2. jquery封装插件
  3. python 调用linux命令-Python Linux系统管理之Python中执行外部命令
  4. 印度式画线乘法基本操作
  5. ERROR 1366 (HY000): Incorrect string value......(Mysql报错解决)
  6. 如何区分网线是几类的_银行卡分为三类,怎么知道自己的的银行卡是几类卡?...
  7. 理解MySQL——架构与概念
  8. React 18 Beta 来了
  9. 使用Directory.EnumerateFiles进行批处理
  10. Bash脚本15分钟进阶教程-转
  11. 本地方法接口和本地方法栈总结
  12. javascript手册地址
  13. 把桌面路径移动到D盘的一种方法
  14. Jmeter中大佬的大集合
  15. python 进阶案例_Python 进阶内容整理
  16. 9.10教师节 Best wishes to teachers
  17. 舰r最新服务器,战舰少女R官方网站—战舰少女-与心爱的舰娘一起守护这片海域...
  18. 第四届蓝桥杯JavaC组国(决)赛真题
  19. [渝粤教育] 中南大学 科学计算与MATLAB语言 参考 资料
  20. 服务器所有文件后缀名变了,怎么样批量修改文件扩展名(后缀)

热门文章

  1. 关于request.getRequestDispatcher()的两个方法
  2. python 心电处理包_python 黏包现象及其解决方案
  3. python 整合excel_python EXcel表整合(自动办公)
  4. 如何将一个向量投影到一个平面上_CameraLidar投影:2D3D导航
  5. linux mysql 备份脚本_linux 之mysql备份脚本
  6. python的装饰器、迭代器、yield_python装饰器,迭代器,生成器,协程
  7. docker 容器之间通信_四、Docker 网络原理、分类及容器互联配置
  8. 计算机与编程导论,计算机科学与编程导论
  9. java应用程序多态_java – 多态和n层应用程序
  10. html 为什么ul不撑开,给li设置float浮动属性之后,无法撑开外层ul的问题。