flutter ios打包_使用 Travis CI 为 Flutter 项目打包 Android/iOS 应用
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
代码的阶段,原文中的配置会下载 Flutter
的 alpha
分支代码,但是目前 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 应用相关推荐
- 构建指定仓库_使用Travis CI自动构建和部署你的GitBook
本文,博主将会介绍利用Travis CI持续集成服务自动化构建和部署GitBook. 首先介绍一下TravisCI,下文摘自维基百科-Travis CI Travis CI是在软件开发领域中的一个在线 ...
- flutter图片识别_从头到尾撸一遍Flutter的一切...
Flutter学(cai)习(keng)之路(Exploring Flutter in action) 创世宣言 尽情踩坑吧 ⤵️ 主要Cover到的点 [x] 路由界面 [x] 状态传递 [x] 子 ...
- python开发ios插件_[原创]Textobot-换个轻松高效的方式开发iOS越狱插件
许愿:要是段老师的看雪平台能导入头条或者公众号的文章就好了. 导读 0x00.交个朋友 0x01.越狱开发 0x02.Cydia插件体系 0x03.Cydia插件开发 0x04.Textobot插件体 ...
- python 自动化框架打包_听说很多人都不会打包,教你Python实现前端自动化打包部署!...
作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈 ...
- vue 使用window的对象_如何3分钟把VUE项目打包成apk
必要条件 使用vue-cli3搭建的项目 工具 HBuilder X,他的图标长这个样子,下载地址:https://www.dcloud.io/hbuilderx.html 做前端的大多数小伙伴们都应 ...
- flutter usb串口_在Windows上搭建Flutter开发环境
一.使用镜像 由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中: export PUB_HOSTED_URL=h ...
- 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat
之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...
- flutter ios打包_安卓开发者如何使用Flutter打包IOS应用
安卓开发使用Android Studio开发Flutter应用,那么Flutter代码写出来了,却不知道怎么上架,接下来就教你如何正确的把Flutter代码打包成IPA上架到APP Store 你现在 ...
- 安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!
软件/资料获取方式在文末 正文: 前几天发哥预告了一下LOL手游上线的事,本来以为国服也会同步上线,结果也是意料之中的跳票了,让我不禁想起当年玩魔兽世界时国服万年的TBC,不过据说LOL推迟上线是怕影 ...
最新文章
- 单片机中SDZ是什么意思_合泰单片机ADC转换程序
- jquery封装插件
- python 调用linux命令-Python Linux系统管理之Python中执行外部命令
- 印度式画线乘法基本操作
- ERROR 1366 (HY000): Incorrect string value......(Mysql报错解决)
- 如何区分网线是几类的_银行卡分为三类,怎么知道自己的的银行卡是几类卡?...
- 理解MySQL——架构与概念
- React 18 Beta 来了
- 使用Directory.EnumerateFiles进行批处理
- Bash脚本15分钟进阶教程-转
- 本地方法接口和本地方法栈总结
- javascript手册地址
- 把桌面路径移动到D盘的一种方法
- Jmeter中大佬的大集合
- python 进阶案例_Python 进阶内容整理
- 9.10教师节 Best wishes to teachers
- 舰r最新服务器,战舰少女R官方网站—战舰少女-与心爱的舰娘一起守护这片海域...
- 第四届蓝桥杯JavaC组国(决)赛真题
- [渝粤教育] 中南大学 科学计算与MATLAB语言 参考 资料
- 服务器所有文件后缀名变了,怎么样批量修改文件扩展名(后缀)
热门文章
- 关于request.getRequestDispatcher()的两个方法
- python 心电处理包_python 黏包现象及其解决方案
- python 整合excel_python EXcel表整合(自动办公)
- 如何将一个向量投影到一个平面上_CameraLidar投影:2D3D导航
- linux mysql 备份脚本_linux 之mysql备份脚本
- python的装饰器、迭代器、yield_python装饰器,迭代器,生成器,协程
- docker 容器之间通信_四、Docker 网络原理、分类及容器互联配置
- 计算机与编程导论,计算机科学与编程导论
- java应用程序多态_java – 多态和n层应用程序
- html 为什么ul不撑开,给li设置float浮动属性之后,无法撑开外层ul的问题。