1: Region
if (BlocProvider.of<AppRegionBloc>(context).state.region == Region.china) {
return _buildChinaWidget();
} else {
return _buildGlobalWidget();
}
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选择对应的描述文件
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-----