搜索插件、代码仓与 APP 分类

插件详情v1.0.0

simple_deploy

仅使用一个 Dart 命令,即可轻松部署到 TestFlight 和 Play Store 测试轨道!

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
110
喜欢数
60
Pub 分数
150

安装插件

flutter pub add simple_deploy

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Simple Deploy 是一个 Flutter/Dart 包,通过单个 Dart 命令简化将应用发布到 TestFlight 和 Google Play 商店测试轨道的过程。它通过自动化构建和上传步骤,简化了应用分发,减少了手动操作和潜在错误。该包专为频繁测试发布版本的开发者设计,支持 Android、iOS、Web、macOS、Windows 和 Linux 等多个平台。该包可无缝集成到现有工作流程中,配置简单,非常适合注重快速迭代和测试的团队。

适合场景

  • 自动化测试版发布
  • 优化CI/CD流水线
  • 快速部署到 TestFlight 和 Play 商店
  • 减少手动构建/上传任务
  • 跨平台应用程序分发
  • 频繁的发布周期

主要特点

  • 单命令部署
  • 支持 iOS 和 Android 测试轨道
  • 多平台兼容性
  • 所需设置最少
  • 与 CI/CD 系统的集成
  • 内置的构建自动化

适合对象

  • Flutter 开发者
  • 移动应用测试团队
  • CI/CD 自动化工程师
  • 快速发展的开发环境
  • 使用 TestFlight 或 Play 商店内部测试的团队

使用建议

  • 需要正确的凭据以及对 Apple Developer 和 Google Play Console 的访问权限
  • 可能需要为 CI 添加额外的环境变量
  • 不适用于生产应用发布
  • 依赖外部服务(Apple、Google)
  • 限于测试轨道部署
  • 执行期间需要互联网连接

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

simple_deploy is a quick and easy way to deploy apps to the store's test systems

Features

Deploy to iOS Test Flight Deploy to Android Play Store tracks of your choice Supports flavors

Getting started

Install the dependency into your pubspec.yaml with the following:

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

Create a deploy.yaml file at the root of your project and configure it

Here is minimal example version of deploy.yaml

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

ios:
  # App Store Connect API configuration (All fields are required)
  issuerId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  keyId: "XXXXXXXXXX"
  privateKeyPath: "path/to/your/AuthKey_XXXXXXXXXX.p8"
  bundleId: "com.example.coolapp"
  
  # Optional fields
  whatsNew: "New features and improvements" # For "What's New" text in TestFlight
  flavor: "production"                   # Omit if not using flavors
  generatedFileName: "custom_name.ipa"   # Omit to use the default ipa name

And here's a version with all options set:

common:
  versionStrategy: "none"  # or "pubspecIncrement" or "storeIncrement"

android:
  credentialsFile: "c:/credentials/project-credentials.json"
  packageName: "com.example.coolapp"
  trackName: "internal"
  whatsNew: "Simple bug fixes"
  flavor: "flavor"            # specify a flavor if required, or omit if not using flavors
  generatedFileName: "fancyproject.aab"       # supply a custom file name for the aab, or omit if using the default

ios:
  # App Store Connect API configuration (required for storeIncrement version strategy)
  issuerId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"  # App Store Connect API Issuer ID
  keyId: "XXXXXXXXXX"  # App Store Connect API Key ID
  privateKeyPath: "path/to/AuthKey_XXXXXXXXXX.p8"  # Path to your private key file
  bundleId: "com.example.coolapp"  # Required for App Store submission
  whatsNew: "New features and improvements"  # Optional, used for App Store submission
  flavor: "flavor"            # specify a flavor if required, or omit if not using flavors
  generatedFileName: "fancyproject.ipa"         # supply a custom file name for the ipa, or omit if using the default
  autoIncrementMarketingVersion: false # defaults to false, updates the first part of the 'version' in the pubspec.yaml, e.g. 1.0.15+39 (it would increment to 1.0.16)
Parameter details

| flavor | Description | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | --- | | flavorName | Optional parameter, which can be set for both android and iOS, don't supply if not using flavors, or provide the flavor name if using them | |

versionStrategy Description
none Default. Uses the current value in the pubspec.
pubspecIncrement Retrieves the current build number from the pubspec, increments it by one, and uses the updated number.
storeIncrement Gets the latest version code from the store (Play Store for Android), increments it by one, and updates the pubspec. For Android only.
trackName Description
internal Default. Deploys to the internal track.
alpha Deploys to the alpha track.
beta Deploys to the beta track.
production Deploys to the production track.

Here's the step-by-step instructions for configuring for each platform

Android configuration

iOS configuration

Usage

Just run dart run simple_deploy and select the deployment platform

You can also supply the platform with

  • dart run simple_deploy android
  • dart run simple_deploy ios
  • dart run simple_deploy ios --submit-review # This will also submit to App Store review after TestFlight processing

If you are using flavors you can add them here, they will override what is set in the pubspec.yaml, for example

  • dart run simple_deploy android --flavor flavorName

You can use the --pubspecIncrement flag to increment the build number for a specific deployment, regardless of the versionStrategy setting in your deploy.yaml:

  • dart run simple_deploy --pubspecIncrement

This flag will override the versionStrategy setting just for that deployment, allowing you to increment the build number only when needed.

Additional information

You'll need to get some developer details from App Store connect for the deploy.yaml file You will also need to set up a google cloud project to create the .json file required for android. See steps below of these:

Android configuration

Android configuration

iOS configuration

iOS configuration

Contributions

Thanks to the following people for their great contributions to this project KarlJan Reginaldo

所属分类

依赖

依赖清单 8 项

源码仓库

使用此插件的项目

暂无相关数据。