如何解决使用 AWS CloudBuild 的 Flutter 无法编译 apk
Gday!
我正在尝试使用 AWS 开发人员工具为 Flutter android 应用程序创建 CI/CD 管道。 但是我无法使用 AWS Codebuild 编译 apk 包。你能帮我们吗。
设置非常简单。 enter image description here
为了简单起见,我使用了 Flutter HelloWorld dart 代码
import 'package:Flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'),),body: Center(
child: Text('Hello World'),);
}
}
buildspec.yml
version: 0.2
phases:
install:
runtime-versions:
android: 29
java: openjdk8
commands:
- pwd
pre_build:
commands:
- echo Pre Build started on `date`
- git clone https://github.com/Flutter/Flutter.git -b stable
- export PATH="$PATH:`pwd`/Flutter/bin"
- Flutter precache
- Flutter doctor
build:
commands:
- echo Build started on `date`
- Flutter build apk
- ls -al
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- "**/*"
CodeBuild 过程成功,但每次运行后都会创建新的随机名称输出工件,但不是 .apk 文件。
我尝试了几种类似的组合,但最终都会出错。
artifacts:
files:
- "**/app-release.apk"
和
artifacts:
type: apk
files:
- "**/*"
解决方法
找到解决方案。将工作目录更改为 helloworld 后,我设法编译了 apk 文件。
正确的 buildspec.yml 应如下所示:
version: 0.2
phases:
install:
runtime-versions:
android: 29
java: openjdk8
commands:
- pwd
pre_build:
commands:
- echo Pre Build started on `date`
- git clone https://github.com/flutter/flutter.git -b stable
- export PATH="$PATH:`pwd`/flutter/bin"
- flutter precache
- flutter doctor
build:
commands:
- cd helloworld
- pwd
- ls -al
- echo Build started on `date`
- flutter build apk
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- helloworld/build/app/outputs/flutter-apk/app-release.apk
discard-paths: yes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。