美文网首页
flutter使用百川SDK

flutter使用百川SDK

作者: 晓函 | 来源:发表于2020-06-02 19:17 被阅读0次

    开通权限

    image.png

    百川官网下载安全图片

    image.png
    分为ios版本和android版本,
    ios BundleID直接写你flutter app的BundleID,我的是com.tangxxx.app
    android需要你用keytools生成带签名的apk,然后上传。详情请看https://www.jianshu.com/p/398d41128b02

    下载yw_1222.jpeg后图片名字必须改为yw_1222_baichuan.jpg

    android添加安全图片

    复制安全图片到android/app/src/main/res/drawable/yw_1222_baichuan.jpg

    ios添加安全图片

    复制安全图片到ios/yw_1222_baichuan.jpg,

    用xcode添加资源文件,用xcode打开ios下的Runner.xcodeproj


    image.png

    选择add other,选取ios目录下的yw_1222_baichuan.jpg,确定。

    使用flutter_alibc这个库

    flutter_alibc:https://pub.dev/packages/flutter_alibc
    在pubspec.yaml引用

      flutter_alibc: ^0.0.21-nullsafety
    

    ios引入百川SDK

    1、打开ios/podfile,在最后面添加

    # 版本最低为 13.0 
    platform :ios, '13.7'
    #官方源
    source 'https://github.com/CocoaPods/Specs'
    
    #使用阿里源,才会自动从阿里下载百川依赖包
    source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git'
    

    2、然后删除podfile.lock文件,
    3、 命令行通过pod安装
    a、添加阿里百川的源(这样才会自动下载百川需要的依赖包),
    b、pod update命令会根据flutter_alibc这个包安装需要的依赖包

    pod repo add AliBCSpecs http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git
    pod update
    

    c、如果pod update报错,


    如果报错

    注释掉podfile中的 use_frameworks!
    (use_frameworks是表示使用动态库,注释掉就会使用静态库)


    注释掉

    pod安装依赖成功截图:


    image.png

    android引入百川SDK

    打开android/app/src/main/AndroidManifest.xml,在application标签中加入子标签

            <!--阿里百川,一定要用singleTask,这样登陆状态才在二次授权免登-->
            <activity android:name="com.wxwx.flutter_alibc.web.WebViewActivity" android:launchMode="singleTask"></activity>
    

    如果flutter build apk 的时候提示建议加入tools:replace="android:label"
    就打开AndroidManifest.xml,
    <application标签加入属性 xmlns:tools="http://schemas.android.com/tools" tools:replace="android:label"

    如下:

        <application
            android:label="糖喵"
            android:icon="@mipmap/ic_launcher"
            xmlns:tools="http://schemas.android.com/tools" 
            tools:replace="android:label"
            >
            。。。省略
            <!--阿里百川,一定要用singleTask,这样登陆状态才在二次授权免登-->
            <activity android:name="com.wxwx.flutter_alibc.web.WebViewActivity" android:launchMode="singleTask"> 
                <intent-filter> 
                    <category android:name="android.intent.category.DEFAULT" /> 
                </intent-filter> 
            </activity>
        </application>
    
    
    

    android错误一:build的时候提示错误:

    image.png

    这是因为新版本gradle6.x编译时,会强制校验远程仓库是否存在.pom文件, 阿里百川仓库目前缺少.pom文件, 因此我们需要使用5.6较低版本gradle

    修改android/gradle/wrapper.properties,使用gradle5.6.4

    #注释掉新版本gradle
    #distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
    #新版本gradle编译时,会强制校验远程仓库是否存在.pom文件, 阿里百川仓库目前缺少.pom文件, 因此目前先使用较5.6低版本gradle
    distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
    

    修改android/build.gradle,使用对应低版本gradle tool和kotlin

    buildscript {
        //ext.kotlin_version = '1.5.21'//高版本,注释掉
        ext.kotlin_version = '1.4.31'
        repositories {
            google()
            mavenCentral()
        }
    
        dependencies {
            //classpath 'com.android.tools.build:gradle:4.1.0'//对应高版本gradle6.7,注释掉
            classpath 'com.android.tools.build:gradle:3.6.0'//对应gradle5.6.4
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    

    如果想知道更多gradle和gradle plugin插件对应版本,打开
    https://developer.android.google.cn/studio/releases/gradle-plugin#groovy

    image.png

    android错误二:

    flutter run AlibcInit成功。flutter build apk后运行app,AlibcInit失败,
    原因是build后yw_1222_baichuan.jpg安全图片自动被压缩和混淆后,图片二进制数据发生变化,所以获取到的数据错误,签名也对不上了。

    解决:
    在android/app/build.gradle关闭混淆和压缩

        buildTypes {
            debug {
                signingConfig signingConfigs.release
            }
            release {
                signingConfig signingConfigs.release
                minifyEnabled false //禁用混淆
                shrinkResources false //禁用r8压缩
            }
        }
    
    

    相关文章

      网友评论

          本文标题:flutter使用百川SDK

          本文链接:https://www.haomeiwen.com/subject/lsspzhtx.html