开发

2.34.0

一、功能描述

  1. 新增精简版 BBAMNPLiteLib(无小游戏模块)
  2. 废弃联盟账号 SDK (BBAMNPUnionLib),统一使用 BBAMNPLib
  3. 小程序菜单中新增我的小程序,展示关注、历史列表
  4. 开源Demo新增 CTS 自动化测试小程序
  5. 小程序描述表脚本优化
  6. 小程序增加内嵌支付组件
  7. 小程序日志系统优化,增加分级策略
  8. fix bugs

二、Changelist

1:【重要】新增精简版 BBAMNPLiteLib(无小游戏模块);宿主如需精简版 SDK,则需要进行如下配置

1
2
// 精简版SDK(精简版,不包含小游戏)
pod 'BBAMNPLiteLib', '2.34.0'

2:【重要】清理开源 Demo 工程中无用的类及依赖库,包含

  • 去除 BBASMPlugin+PrivateFavor、BBASMPlugin+PrivateImageRecognition、 BBASMImplementModule、BBASMPlugin+PrivateFaceVerify 类
  • 去除无用的 APSSDK.framework 库

    如果宿主之前有手动集成过此部分类,直接去除即可

3:【重要】百度外部宿主需要关注此更新,内部宿主无需关注

3.1 废弃开源联盟账号 SDK (BBAMNPUnionLib);接入联盟账号修改为如下方式

1
2
3
4
5
// 小程序SDK
pod 'BBAMNPLib', '2.34.0'

# 风控库(联盟账号必须依赖, 自有账号不用依赖)
pod 'SSDKLightLib', '1.1.0'

如果使用的是自有账号,则无需引入 SSDKLightLib 库

3.2 废弃原有需要宿主实现的 isUseUnionAccountLogin 接口,框架根据宿主是否集成了 SSDKLightLib 库来判断宿主是否使用的是联盟账号
3.3 新增 [Pyramid.bba_MNPUtilities isUseUnionAccountLogin] 接口,宿主可用来判断当前是否使用开源联盟账号,可参考 Demo

4:【可选】百度系宿主需要关注此更新,外部宿主无需关注

BBASMBDAccountImplement 可选实现如下接口,具体实现参考 Demo。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/// @brief 百度私有方法:有实名信息时直接调用人脸校验接口
/// @param appID 小程序appID, srcVC 来源VC
+ (void)faceVerifyHasRealName:(NSString *)appID
sourceVC:(UIViewController *)srcVC
success:(void(^)(NSDictionary *info))successBlock
failure:(void (^)(NSError *error))failureBlock;

/// @brief 账号实名认证
/// @param appID appID
/// @param extraParams 额外参数,在pass调起实名认证的h5时会将字典中的内容拼入query,如果传nil则是默认的高级实名认证,传realname_level: @(YES)则是默认的初级实名认证,请视业务需要传入
/// @param callback key - 完成高级实名后的刷脸凭证 haveJunior - 是否完成了初级实名 haveSenior - 是否完成了高级实名
+ (void)faceVerifyNoRealName:(NSString *_Nonnull)appID
extraParams:(NSDictionary *_Nullable)extraParams
verifyCallback:(void(^_Nonnull)(NSString * _Nullable key, BOOL haveJunior, BOOL haveSenior))callback;

5:【可选】描述表脚本更新

  • 保留原有手动执行描述表方式,执行时增加输入输出路径提示
  • 增加自动执行描述表文件方式(可选),具体集成方式如下,可参考 Demo

Easybox 集成:Boxfile 中新增如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 描述表收集脚本,如果期望每次box install都自动收集描述表,则添加如下代码
post_install :all do |context|
# 要扫描的当前工程目录
root_path = context.workspace_root
# 其中'/Resources/SwanResource'为描述表要输出的目录,宿主需要指定自己的目录
scheme_desc_path = "#{root_path}/Resources/SwanResource"
input_file_path = context.host_generator.output + "scheme_descs_search_header.xcfilelist"
File.open(input_file_path , "w+") do |aFile|
# 扫描 workspace_root 下的 plugin 头文件
require 'find'
Find.find(context.workspace_root) do |project_file|
if project_file.end_with?(".h")
if project_file.include? "Plugin" or project_file.end_with?("Bridge.h")
aFile.puts(project_file)
end
end
end
end
unless File::exist?(scheme_desc_path) then
puts "⚠️ 描述表保存路径scheme_desc_path不正确,请在Boxfile中修正⚠️"
else
# 在末尾加 --diff 参数, 可以在更新描述表并时输出diff文件
output = `python Script/scheme_desc_collector.py #{input_file_path} #{scheme_desc_path}`
if $?.to_i != 0
raise Error.new "收集端能力描述表!\n#{output}"
else
UI.ok "收集端能力描述表"
puts "描述表保存在目录:#{scheme_desc_path}"
end
end
end

CocoaPods 集成:Podfile 中增加如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 描述表收集脚本,如果期望每次pod install都自动收集描述表,则添加如下代码
post_install do |installer|
root_path = File.dirname(__FILE__)
# 其中'/Resources/SwanResource'为描述表要输出的目录,宿主可以指定自己的目录
scheme_desc_path = "#{root_path}/Resources/SwanResource"
unless File::exist?(scheme_desc_path) then
puts "⚠️ 描述表保存路径 scheme_desc_path 不正确,请在Podfile中修正 ⚠️"
else
# 在末尾加 --diff 参数, 可以在更新描述表并时输出 diff 文件
output = `python Script/scheme_desc_collector.py #{root_path} #{scheme_desc_path}`
if $?.to_i != 0
puts "⚠️ 收集端能力描述表失败:⚠️\n#{output}"
else
puts "-------收集端能力描述表成功!-------"
puts "保存在目录:#{scheme_desc_path}"
end
end
end

6:【可选】小程序日志系统优化,增加分级策略
宏定义 BBASM_ERROR_LOG 改成 BBASM_INFO_LOG,第一个参数修改为 BBASMLogLevelError ( Error 级别的日志),其它参数不变
eg:
原有宏定义 BBASM_ERROR_LOG(@”error log”, kBBASMFavorModuleName, appID);
替换成 BBASM_INFO_LOG(BBASMLogLevelError, @”error log”, kBBASMFavorModuleName, appID);

7:【可选】BBASMUtilAdapterProtocol.h

1
2
3
4
5
/**
* @brief 宿主是否允许小程序通过 openApp 端能力跳转到手百,默认允许
* @return 是否允许跳转到手百
*/
+ (BOOL)isAllowedOpenBaiduApp;