From d889004b4d501e2c58e4790a6e3608adaa39f4ff Mon Sep 17 00:00:00 2001 From: shenyong Date: Wed, 6 May 2020 18:08:24 +0800 Subject: [PATCH] =?UTF-8?q?v1.0.1=20=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 57 ++++++++++++------ README.md | 4 ++ README_zh.md | 4 ++ .../AssetsRefGenerator_v1.0.0.jar | Bin release/AssetsRefGenerator_v1.0.1.jar | Bin 0 -> 13516 bytes resources/META-INF/plugin.xml | 2 +- 6 files changed, 46 insertions(+), 21 deletions(-) rename AssetsRefGenerator_v1.0.0.jar => release/AssetsRefGenerator_v1.0.0.jar (100%) create mode 100644 release/AssetsRefGenerator_v1.0.1.jar diff --git a/.idea/workspace.xml b/.idea/workspace.xml index fd3db6b..aecba3f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,18 +2,10 @@ - - - - - - - - - - + + + - + + + + @@ -62,6 +58,7 @@ + @@ -104,8 +101,18 @@ - + + + + + 1588757574228 + + @@ -147,6 +154,12 @@ + + @@ -160,22 +173,22 @@ - + - + - + - - + + - + @@ -224,10 +237,14 @@ - + + + + + - + diff --git a/README.md b/README.md index 895c6ea..859b45d 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@ Makes it easier to use assets in [Flutter][1], just like using R.drawable.xxx in - Now you'll see the pubspec.yaml file has been updated and a res.dart file also has been created under lib. ## Change-notes +1.0.1 + - Support Flutter Module, Package and Plugin project. + - Ignore .DS_Store file on Mac OS X. + 1.0.0 - Implement basic functions. diff --git a/README_zh.md b/README_zh.md index 609fb19..838aeb1 100644 --- a/README_zh.md +++ b/README_zh.md @@ -16,6 +16,10 @@ - 打开 pubspec.yaml 看一下,你将看到文件中已经自动添加了资源文件的声明。并且在lib目录下生成了一个res.dart文件,其中包含资源文件的 String 类型使用定义。 ## 更新日志 +1.0.1 + - 支持Flutter Module、Package、Plugin项目类型. + - 忽略Mac OS X 上的 .DS_Store 文件. + 1.0.0 - 初始版本功能添加和完善 diff --git a/AssetsRefGenerator_v1.0.0.jar b/release/AssetsRefGenerator_v1.0.0.jar similarity index 100% rename from AssetsRefGenerator_v1.0.0.jar rename to release/AssetsRefGenerator_v1.0.0.jar diff --git a/release/AssetsRefGenerator_v1.0.1.jar b/release/AssetsRefGenerator_v1.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..a9001844650119350235c216d6e8f24e9769fcab GIT binary patch literal 13516 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 hlvDn;?w com.shenyong.flutter.refgenerator Flutter Assets Ref Generator - 1.0.0 + 1.0.1 Andrew Shen