Flutter macOS Android打包

#GitHub地址 #打包过程视频预览 对于macOS用户使用flutter build apk打包可为曲折,官方只给出了Android正常的配置流程,但是macOS用户是不行滴---需要申请系统的访问权限授权

  1. 简略的Android Studio配置(默认你的签名文件已经设置完成) 防止key.properties文件

配置gradle

  1. 配置脚本执行是申请macOS的系统权限参考文章

    1. 打开keychain app, 选中密码,点击底部toolbar的+

    2. 设置对应的信息

    密钥项目名称:随意填写,就是一个名称

    账户名称:可以打开终端输入```whoami```可以查看对应用户
    复制代码
    1. gradle配脚本

      def getPassword(String currentUser, String keyChain) {
          def stdout = new ByteArrayOutputStream()
          def stderr = new ByteArrayOutputStream()
          exec {
              commandLine 'security', '-q', 'find-generic-password', '-a', currentUser, '-s', keyChain, '-w'
              standardOutput = stdout
              errorOutput = stderr
              ignoreExitValue true
          }
          //noinspection GroovyAssignabilityCheck
          stdout.toString().trim()
      }
      def getWhoami(){
          def stdout = new ByteArrayOutputStream()
          def stderr = new ByteArrayOutputStream()
          exec {
              commandLine 'whoami'
              standardOutput = stdout
              errorOutput = stderr
              ignoreExitValue true
          }
          //noinspection GroovyAssignabilityCheck
          stdout.toString().trim()
      }
      //def pass = getPassword("YOUR_USER_NAME","android_keystore") //终端中 whoami 查看YOUR_USER_NAME android_keystore你在密钥串中设置的名称
      def pass = getPassword(getWhoami(),"les01_flutter")
      复制代码

最终配置

    
def getPassword(String currentUser, String keyChain) {
    def stdout = new ByteArrayOutputStream()
    def stderr = new ByteArrayOutputStream()
    exec {
        commandLine 'security', '-q', 'find-generic-password', '-a', currentUser, '-s', keyChain, '-w'
        standardOutput = stdout
        errorOutput = stderr
        ignoreExitValue true
    }
    //noinspection GroovyAssignabilityCheck
    stdout.toString().trim()
}
def getWhoami(){
    def stdout = new ByteArrayOutputStream()
    def stderr = new ByteArrayOutputStream()
    exec {
        commandLine 'whoami'
        standardOutput = stdout
        errorOutput = stderr
        ignoreExitValue true
    }
    //noinspection GroovyAssignabilityCheck
    stdout.toString().trim()
}
//def pass = getPassword("YOUR_USER_NAME","android_keystore") //终端中 whoami 查看YOUR_USER_NAME android_keystore你在密钥串中设置的名称
def pass = getPassword(getWhoami(),"les01_flutter")

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    compileSdkVersion 27

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.xiangshike.les01hello"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            storeFile file(keystoreProperties['storeFile'])
            /*
            //windows用户
            keyPassword keystoreProperties['keyPassword']
            storePassword keystoreProperties['storePassword']
            */
            storePassword pass // Change this
            keyPassword keystoreProperties['keyPassword'] // Change this
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.

	//            signingConfig signingConfigs.debug
            signingConfig signingConfigs.release

        }
   	 }
	}
		
复制代码

打包:

flutter build apk --debug
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值