# Connect20

120 阅读2分钟

1: Region

# Region!
if (BlocProvider.of<AppRegionBloc>(context).state.region == Region.china) {
    return _buildChinaWidget();
} else {
    return _buildGlobalWidget();
}

# region.china && guest login!
if (BlocProvider.of<AppRegionBloc>(context).state.region ==
          Region.china) {
        if (_tokenAuthenticationBloc is TokenRevokeSuccess ||
            _tokenAuthenticationBloc is TokenValidateFailure) {
          stopTimer();
          return;
        };
      }

2: UnitTest 覆盖率检测和网页查看

1: 进入到指定的测试test文件下如: cd platform_sdk/core/shell/test/
2: 执行:flutter test --coverage, 生成test同级别的coverage目录
3: 生成html
     01: cd .. 进入test同级别的coverage
     02: genhtml coverage/lcov.info -o coverage/html
4: 可以打开index.html网页可以查看到UT的覆盖率
     01: cd .. 进入上一级
     02: open . 打开目录
     03: coverage -> html -> index.html


# 总结:
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html

3: pull-dependence

1: 最开始使用:
        - git pull
        - flutter packages get 或者 flutter pub get
        - make install_dependencies 或者 dart ./scripts/cli/cli.dart getPackages

2: 现在直接使用:
        - git pull
        - getPackages.sh
        (但是脚本文件是放在本地的bin下:/Users/qxu7859/bin/getPackages.sh 方可使用)

4: formatter/

1: 比如进入某个featureModule
2: dartfmt -w .   可以将该个featureModule下所有不合适的代码格式化

5: VSCode debug 真机

1: open flutter project ios by Xcode
2: 项目选择Runner
3: Signing & Capabilities 每一个target选择对应的描述文件

截图1

截图2

6: 根据公钥加密密码

1: 根据接口获取公钥:
https://omcmybgwace{{env}}.chinacloudsites.cn/api/gateway/connected/cn-connected-oauth-service/api/v1/cop/publickey
data -> value:
     01: 去掉\r\n
     02: 换行为三行,如下图
     03: [打开“根据公钥加密文本”在线网站加密](http://www.bejson.com/enc/rsa/)
     04: 请输入公钥,就是上面那个
     05: 请输入要加密的字符串就是你的密码
     06: 然后获取到加密后的密码、作为登录接口的headers参数之一即可
{
    "data": {
        "value": "-----BEGIN PUBLIC KEY-----\r\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCLjc+vdGoU/XJYCdQEeGDSdsZza0vaOAo+Tljsl+B/eZcvseZlwKKR6aO1PmEcGTxjneSrSLFfo1IEPPVOFYBJmVxYT1Opk27c5OZ3mQtpN6HRU6hTQVtRJW98ZkjlSZcqXyo+ebHg+r7i9VHNBKu2c7Y2/SZZsX9FTgo6izUIqwIDAQAB\r\n-----END PUBLIC KEY-----",
        "expires": "1431665"
    },
    "code": 200,
    "error": false,
    "description": "ok"
}

最后转化为三行:去掉\r\n, 如:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCLjc+vdGoU/XJYCdQEeGDSdsZza0vaOAo+Tljsl+B/eZcvseZlwKKR6aO1PmEcGTxjneSrSLFfo1IEPPVOFYBJmVxYT1Opk27c5OZ3mQtpN6HRU6hTQVtRJW98ZkjlSZcqXyo+ebHg+r7i9VHNBKu2c7Y2/SZZsX9FTgo6izUIqwIDAQAB
-----END PUBLIC KEY-----