月別アーカイブ: 12月 2019

Flutter, build.gradle Release


key.properties


keyAlias='key'
keyPassword=<password from previous step>
storeFile=<location of the key store file, such as /Users//key.jks>
storePassword=<password from previous step>

app/build.gradle


def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

signingConfigs {
release {
keyAlias keystoreProperties[‘keyAlias’]
keyPassword keystoreProperties[‘keyPassword’]
storeFile file(keystoreProperties[‘storeFile’])
storePassword keystoreProperties[‘storePassword’]
}
}

buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true

proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}

こちらを設定しても Build – Flutter – Build APK を実行すると、flutter storefile path may not be null or empty string. path=’null’ エラーが発生してAPKファイルが生成されません。

(rootPorject(your jroject))/android/app/key.jks を設置して、

keyAlias 'key', keyPassword '<password from previous step>', storeFile file('key.jks'), storePassword '<password from previous step>'

と直接指定すると正しく生成できるようになりました。''等は実際に使用するパスワードに置き換えます。

私の使用しているPC環境の問題かもしれません。passwordが流出することはないと思います。

Google Play License Verification (LVL)


Android Studio 3.5 でGoogle Play License Verification (LVL) をインポートする方法です。

  1. File – New – Import Module .. を選択して Source directory: に [ANDROID_SDK]/extras/google/market_licensing/library を指定します。Finishをクリックします。プロジェクト内にlibrary ディレクトリーが作成され、インポートされます。
  2. library/src/main/java/com を android/app/src/main/java/com にコピーします。
  3. AndroidManifest.xmlに次の要素を追加します。
<!-- Devices >= 3 have version of Google Play that supports licensing. -->
<uses-sdk android:minSdkVersion="3" />
<!-- Required permission to check licensing. -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />

Flutter, ‘which requires SDK version’ message


Windows の Android Studio で pubspec.yaml に、xml: ^3.6.0 を追加し、dartファイルに import 'package:xml/xml.dart' as xml;を追加すると次のようなエラーメッセージが表示されます。

The current Dart SDK version is 2.5.0.

Because (appname) depends on xml >=3.6.0 which requires SDK version >=2.6.0 <3.0.0, version solving failed.
Running "flutter pub get" in (appname) …
pub get failed (1)

次のコマンドをそれぞれ実行しました。

  • flutter doctor -v
  • flutter upgrade
  • flutter pub get
  • flutter channel master
  • flutter -v
  • flutter upgrade
  • flutter pub get

flutter -vを実行したところ

Checking Dart SDK version...
Downloading Dart SDK from Flutter engine (hash hex?)...
Unzipping Dart SDK...
Building flutter tool...
Running pub upgrade...
Manage your Flutter app development.
が表示されてダウンロードが始まりました。その後エラーメッセージが表示されなくなりました。2019-12-01の時点で xml: ^3.6.0は指定できないので xml: ^3.5.0を指定することになりました。
Because every version of flutter_test from sdk depends on xml 3.5.0 and xskytools_compact_app depends on xml ^3.6.0, flutter_test from sdk is forbidden.
So, because (appname) depends on flutter_test any from sdk, version solving failed.