Flutter部署管理插件simple_deploy的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter部署管理插件simple_deploy的使用

simple_deploy 是一个快速且简单的方式来将应用部署到商店的测试系统。请注意,这是一个正在进行中的包,直到它达到版本 1.0。

Features

  • 部署到 iOS Test Flight
  • 部署到 Android Play Store 的自选轨道
  • 支持 flavors

Getting Started

安装依赖

在你的 pubspec.yaml 文件中添加以下依赖:

dev_dependencies:
  simple_deploy: latest_version # e.g. ^0.26.0

创建配置文件

在项目根目录创建一个 deploy.yaml 文件并进行配置。以下是一个最小化的 deploy.yaml 示例:

android:
  credentialsFile: "c:/credentials/project-credentials.json"   
  packageName: "com.example.coolapp"                           
  whatsNew: "Simple bug fixes"                                 

ios:
  teamKeyId: "ABCD1A4A12"                                      
  developerId: "76a6aa66-e80a-67e9-e987-6a1c711a4b2"            

以下是包含所有选项的完整配置示例:

common:
  versionStrategy: "none" 

android:
  credentialsFile: "c:/credentials/project-credentials.json"   
  packageName: "com.example.coolapp"                           
  trackName: "internal"                                        
  whatsNew: "Simple bug fixes"                                 
  flavor: "flavor"            # 如果需要使用 flavors,可以指定,否则可以省略
  generatedFileName: "fancyproject.aab"       # 可以指定自定义的 aab 文件名,否则使用默认值                 

ios:
  teamKeyId: "ABCD1A4A12"                                      
  developerId: "76a6aa66-e80a-67e9-e987-6a1c711a4b2"            
  flavor: "flavor"            # 如果需要使用 flavors,可以指定,否则可以省略
  generatedFileName: "fancyproject.ipa"         # 可以指定自定义的 ipa 文件名,否则使用默认值                                                     

参数详情

参数 描述
flavorName 可选参数,适用于 androidiOS,如果未使用 flavors,则不提供;如果使用 flavors,则提供 flavor 名称
参数 描述
versionStrategy 版本策略,默认为 none,使用 pubspec 中的当前值;pubspecIncrement,从 pubspec 中获取当前构建号,增加 1 并使用更新后的编号
参数 描述
trackName 轨道名称,默认为 internal,内部轨道;alpha,alpha 轨道;beta,beta 轨道;production,生产轨道

配置步骤

Usage

只需运行以下命令并选择部署平台:

dart run simple_deploy

你也可以直接指定平台:

dart run simple_deploy android
dart run simple_deploy ios

如果你使用了 flavors,可以在命令中指定,这将覆盖 pubspec.yaml 中的设置:

dart run simple_deploy android --flavor flavorName

Additional Information

你需要从 App Store Connect 获取一些开发者详细信息,并将其填入 deploy.yaml 文件中。对于 Android,你需要设置一个 Google Cloud 项目来创建所需的 .json 文件。具体步骤如下:

Contributions

感谢以下人员对该项目的贡献:

示例代码

void main() {
  print('simple_deploy is awesome!');
}

希望这些信息对你有所帮助!如果你有任何问题或建议,请随时提出。


更多关于Flutter部署管理插件simple_deploy的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter部署管理插件simple_deploy的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用simple_deploy插件进行部署管理的代码示例。simple_deploy插件的具体功能和用法可能因版本而异,因此以下代码是基于假设的插件功能编写的。如果你在使用中发现有差异,请参考插件的官方文档。

首先,确保你的Flutter项目已经初始化,并且已经添加了simple_deploy插件。你可以在pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  simple_deploy: ^x.y.z  # 请替换为实际的版本号

然后运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以使用simple_deploy插件提供的API来管理部署。假设simple_deploy插件提供了上传构建文件到服务器的功能,以下是一个示例代码:

import 'package:flutter/material.dart';
import 'package:simple_deploy/simple_deploy.dart';  // 假设插件的导入路径

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Deployment Management'),
        ),
        body: Center(
          child: DeploymentManager(),
        ),
      ),
    );
  }
}

class DeploymentManager extends StatefulWidget {
  @override
  _DeploymentManagerState createState() => _DeploymentManagerState();
}

class _DeploymentManagerState extends State<DeploymentManager> {
  String status = 'Not Deployed';

  void deployApp() async {
    // 假设simple_deploy插件提供了一个deploy方法
    try {
      // 构建文件路径(例如APK或IPA文件)
      String buildFilePath = 'path/to/your/build/file';
      
      // 服务器信息
      String serverUrl = 'https://your-deployment-server.com/api/upload';
      String authToken = 'your-auth-token';  // 如果需要认证

      // 调用deploy方法
      var response = await SimpleDeploy.deploy(
        buildFilePath: buildFilePath,
        serverUrl: serverUrl,
        authToken: authToken,
      );

      // 处理响应
      if (response.success) {
        setState(() {
          status = 'Deployed Successfully';
        });
      } else {
        setState(() {
          status = 'Deployment Failed: ${response.errorMessage}';
        });
      }
    } catch (e) {
      setState(() {
        status = 'Error: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('Deployment Status: $status'),
        SizedBox(height: 20),
        ElevatedButton(
          onPressed: deployApp,
          child: Text('Deploy App'),
        ),
      ],
    );
  }
}

注意

  1. 上述代码中的SimpleDeploy.deploy方法是假设存在的,实际使用时请参考simple_deploy插件的官方文档。
  2. buildFilePathserverUrlauthToken等参数需要根据你的实际情况进行配置。
  3. 错误处理和状态更新部分可以根据你的需求进行调整。

由于simple_deploy插件的具体API和功能可能有所不同,建议你在使用前仔细阅读其官方文档和示例代码,以确保正确集成和使用。

回到顶部