Flutter插件dmg的使用_DMG是Flutter的一个包,帮助您通过单个命令创建、签名、公证和固定一个.DMG文件。

发布于 1周前 作者 h691938207 最后一次编辑是 5天前 来自 Flutter

Flutter插件dmg的使用_DMG是Flutter的一个包,帮助您通过单个命令创建、签名、公证和固定一个.DMG文件。

DMG

Flutter的一个包,帮助您通过单个命令创建、签名、公证和固定一个.DMG文件。

特性

  • 易于使用:通过一个命令简化整个过程。
  • 安全性:确保您的.DMG文件按照苹果的要求进行签名和公证。

要求

所有这些步骤仅在第一次安装应用程序时需要。您可以在其他应用中重用这些设置。

安装前,请确保具备以下条件
  • Python(版本3.x或更高)
  • Flutter
  • Xcode(适用于macOS)
如果尚未安装,请安装dmgbuild
pip install dmgbuild
创建一个NotaryProfile
  1. 前往App Store Connect -> 用户和访问 -> 密钥。
  2. 点击(+)生成一个新的API密钥,输入名称(通常使用NotaryProfile)和权限(通常使用Admin)。
  3. 下载生成的文件并将其保存在安全的地方。同时记录Issuer IDKey ID
  4. 打开终端并运行xcrun notarytool store-credentials。输入上述数据,确保名称输入为NotaryProfile
如果没有,请创建一个Developer ID Application证书
  1. 打开Xcode。
  2. 前往Xcode -> Preferences -> Accounts
  3. 点击Manage Certificates... -> 点击(+) -> 选择Developer ID Application -> 点击Done

使用方法

将此包添加到您的开发依赖项:

flutter pub add --dev dmg

打开当前项目的终端,然后运行:

dart run dmg --sign-certificate "Developer ID Application: Your Company"

有时需要在“Your”和“Company”之间添加两个空格,如“Your Company”。

该包将自动运行flutter build macos --release --obfuscate --split-debug-info=debug-macos-info。如果您想自己执行此操作,可以传递此标志给命令:

--no-build

如果未使用默认值更改公证配置文件名称,请添加:

--notary-profile "NotaryProfile"

如果您想添加许可证(在显示.dmg安装之前会弹出一个窗口要求接受),请在上面的代码中添加这一行:

--license-path "./path/to/license.txt"

您也可以添加自己的settings.py(来自dmg-build):

--settings "./path/to/settings.py"

注意:当您使用自己的settings.py时,--license-path将被忽略。

您的输出.DMG预计位于build/macos/Build/Products/Release/<name>.dmg

示例Demo

由于示例代码部分为空,我们提供一个简单的Flutter应用结构来演示如何集成这个插件:

// main.dart
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter DMG Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

更多关于Flutter插件dmg的使用_DMG是Flutter的一个包,帮助您通过单个命令创建、签名、公证和固定一个.DMG文件。的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件dmg的使用_DMG是Flutter的一个包,帮助您通过单个命令创建、签名、公证和固定一个.DMG文件。的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


探索和使用Flutter中的未知功能插件,尤其是以.dmg文件形式分发的插件,可能涉及一些风险,因为这类插件可能未经官方认证,存在潜在的安全问题。然而,如果你已经充分了解了风险并决定继续探索,以下是一个基本的步骤指南和代码示例,帮助你安装和使用这样的插件(假设插件是一个MacOS上的.dmg文件,并且Flutter插件本身包含原生代码部分)。

注意:以下步骤仅供学习和研究目的,不建议在生产环境中使用未经官方验证的插件。

步骤一:下载并安装.dmg文件

  1. 下载插件:从可靠来源下载Flutter插件的.dmg文件。
  2. 挂载.dmg文件:在MacOS上,双击.dmg文件以挂载它。
  3. 安装插件:将插件文件(可能是.framework.bundle或其他原生代码库)复制到你的Flutter项目的原生代码目录中(通常是ios/android/目录,但如果是MacOS桌面应用,则可能是项目根目录或特定位置)。

步骤二:配置Flutter项目

假设你下载的是一个MacOS桌面应用的插件,以下是如何在pubspec.yaml中声明并使用它的示例。

  1. 修改pubspec.yaml

    name: your_flutter_app
    description: A new Flutter application.
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.12.0 <3.0.0"
    
    dependencies:
      flutter:
        sdk: flutter
    
    # 这里不直接声明.dmg插件,因为.dmg不是Flutter包管理的一部分。
    # 我们假设插件已经以某种方式集成到原生代码中。
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
    flutter:
      uses-material-design: true
    
    # MacOS特定的配置(如果需要)
    macos:
      asset_bundles: true
      configure_flutter: true
      # 如果插件需要特定的配置,可以在这里添加
    
  2. 集成原生代码

    • 对于MacOS桌面应用,你可能需要在macos/Runner/目录下修改Info.plistAppDelegate.swift(或AppDelegate.m)以及可能的其他原生代码文件来集成插件。
    • 假设插件提供了一个名为MyPlugin.framework的框架,你需要将其添加到Xcode项目中,并在AppDelegate.swift中导入和使用它。
    // AppDelegate.swift
    import Cocoa
    import FlutterMacOS
    import MyPlugin  // 假设这是你的插件框架
    
    [@main](/user/main)
    [@NSApplicationMain](/user/NSApplicationMain)
    class AppDelegate: FlutterAppDelegate {
        override func applicationDidFinishLaunching(_ aNotification: Notification) {
            // 初始化插件(如果需要)
            let plugin = MyPlugin()
            // 使用插件功能
            plugin.someFunction()
    
            super.applicationDidFinishLaunching(aNotification)
        }
    }
    

步骤三:运行和测试

  1. 在Flutter中运行项目

    flutter run -d macos
    
  2. 测试插件功能:确保你的Flutter应用能够正确调用并显示插件提供的功能。

注意事项

  • 安全性:始终确保从可信来源下载插件,并仔细检查插件代码以避免潜在的安全风险。
  • 兼容性:确保插件与你的Flutter版本和目标平台兼容。
  • 文档和支持:查找插件的官方文档或社区支持,以了解如何正确集成和使用它。

由于.dmg文件通常不是Flutter插件的标准分发格式,因此上述步骤可能需要根据你的具体情况进行调整。如果插件实际上是一个标准的Flutter包但包含原生代码部分,则应该遵循Flutter官方文档中的插件集成指南。

回到顶部