基础库TMFBase
组件简介
TMF基础库包含了TMF组件依赖的核心公共服务,使用TMF组件前需先接入TMF基础库。
集成
前置条件
- 环境要求
iOS
>= 9.0Xcode
>= 10.0
- 组件依赖
TMFBaseCore
TMFShark
TMFXLog
TMFInstruction
集成方式
TMFBase
的集成方式有以下 2 种,可选择其一进行集成:
- CocoaPods 集成 SDK
- 手动集成 SDK
CocoaPods 集成 SDK
在您项目中的
Podfile
文件里添加如下内容:source 'https://e.coding.net/tmf-work/tmf/tmf-repo.git' target 'YourTarget' do pod 'TMFBase' end
其中
YourTarget
为您的项目需要引入TMFBase
的 target 的名字。Terminal
cd 到 Podfile 文件所在目录,并执行pod install
进行组件安装。$ cd "yourDirectory" $ pod install
手动集成SDK
添加 SDK
把
TMFBase
组件的目录添加到您项目的Xcode Project
中的合适位置,并选择合适的 target。 您可以把组件的目录从 Finder 直接拖动到Xcode Project
中,以进行快捷添加。添加依赖的 SDK
把
TMFShare
依赖的所有组件添加到您的项目中,依赖的组件列表,请参见 前置条件 - 组件依赖。
使用SDK
初始化
快速启动
此方法适用于使用
tmf-ios-configurations.json
进行初始化。
如果工程MainBundle
中存在tmf-ios-configurations.json
文件,并使用该文件中的配置进行初始化,可快速启动。
// AppDelegate.m
[TMFServerManager start];
使用默认配置进行初始化
此方法适用于使用
tmf-ios-configurations.json
进行初始化。
如果需要对TMFBase进行个性化配置或指定配置文件路径,可使用这种方式进行初始化。
// AppDelegate.m
TMFServerManager *serverManager = [TMFServerManager shareServerManager];
// 如果需要配置文件路径,可在这里传入路径
//TMFServerManager *serverManager = [TMFServerManager shareServerManagerWithConfigPath:filePath];
/*
进行其他个性化配置
*/
[serverManager activate];
使用TMFShark配置文件进行初始化
此方法适用于使用
TMFSharkConfiguration.h
进行初始化。
如果不想使用json
配置文件进行初始化,可以使用TMFSharkCenterConfiguration
对象并对其赋值来进行初始化。
注意:
TMFSharkCenterConfiguration
的.customerID
和.productID
需要在创建TMFServerManager
对象之前进行赋值。其他属性需要在TMFServerManager
对象创建完成之后进行赋值。
// AppDelegate.m
// 0.若需要使用国密通过,则需要在start前初始化设置TMFGMURLSession对象
TMFGMURLSession *session = [TMFGMURLSession sessionInit];
session.cipher_list = @"ECC-SM4-SM3";
[[TMFServerManager shareServerManager] setTMFGMURLSession:session];
// 1.初始化TMFSharkCenterConfiguration
TMFSharkCenterConfiguration *sharkConfig = [TMFSharkCenterConfiguration masterConfiguration];
// 2.对.customerID和.productID进行赋值
sharkConfig.customerID = TMF_CUSTOM_ID;
sharkConfig.productID = TMF_PID;
// 3.创建TMFServerManager对象
TMFServerConfiguration *serverConfig = [TMFServerConfiguration serverConfigurationWithSharkConfiguration:sharkConfig];
TMFServerManager *serverManager = [TMFServerManager shareServerManagerWithConfiguration:serverConfig];
// 4.赋值TMFSharkCenterConfiguration的其他参数
sharkConfig.HTTPURL = TMF_GW_HTTP_URL;
sharkConfig.productKey = TMF_APP_KEY;
sharkConfig.RSAPublicKey = TMF_GW_RKEY;
sharkConfig.SM2PublicKey = TMF_GW_SKEY;
sharkConfig.enforceCheckMasterEvent = NO; // 迁移旧的shark数据,不重新生成GUID
[serverManager activate];
Base库相关类说明
TMFServerManager
TMFServerManager
主要包含下列属性
属性 | 类型 | 说明 |
---|---|---|
serverConfiguration | TMFServerConfiguration | 配置项 |
scenesController | TMFScenesController | 数据隔离环境控制 |
sharkCenter | TMFSharkCenter | TMF 网关 |
主要方法
- 初始化
/** @brief 单例对象,可以指定配置文件路径,如果已经有 TMFServerManager 单例对象,filePath、fileName会被忽略 */ + (instancetype) shareServerManagerWithConfigPath:(NSString *)filePath; + (instancetype) shareServerManagerWithMainBundleFile:(NSString *)fileName; + (instancetype) shareServerManagerWithConfiguration:(TMFServerConfiguration *)serverConfiguration; + (instancetype) shareServerManager;
TMFServerManager
启动时需要设置配置文件,它是一个JSON文件。需从TMF控制台下载并集成到工程中去。TMFServerManager
会根据配置文件初始化serverConfiguration
属性。TMFBaseCore
TMFServerManager
遵循TMFBaseCore
协议,他对TMF SDK文件存储和网络请求进行了统一定义。你可以调用当法来获取TMF SDK的相关内容。#pragma mark - TMFBaseCore - (NSString *)currentWorkSpace __attribute__((deprecated("Use -workSpace instead"))); - (NSUserDefaults *)currentUserDefault __attribute__((deprecated("Use -userDefault instead"))); - (NSString *)workSpace; - (NSUserDefaults *)userDefault; - (id)networkHelper;
TMFServerConfiguration
主要功能
- 负责处理
TMFBase
及其他TMF组件所需的配置。主要包含一个类方法serverConfigurationWithFile:
,它使用一个JSON文件来创建一个TMFServerConfiguration
实例。 - 主要属性包含
customID
和productId
,用来表示与它匹配的控制台项目。SDK使用这两项来实现数据隔离功能。 - 提供TMF其他组件初始化所需的配置项。
- 负责处理
相关属性
customID
productId
相关方法
- (NSDictionary *)sharkConfigurationDictionary;
TMFShark
的配置文件。- (void)settingSharkConfiguration;
TMFShark
配置为单例对象,调用-settingSharkConfiguration
使用配置文件对TMFShark
配置单例进行赋值。- (NSDictionary *)webOfflineConfigurationDictionary;
TMFWebOffline
离线包公钥配置信息。- (NSString *)webOfflineConfigurationPublicKey;
TMFWebOffline
离线包公钥。- (void)setDefaultWebOfflineConfigurationPublicKey:(NSString *)publicKey;
设置
TMFWebOffline
离线包公钥,使用优先级高于从配置文件中读取的公钥信息。- (NSDictionary *)xlogConfigurationDictionary;
TMFXlog
染色日志配置信息。- (NSString *)xlogConfigurationPublicKey;
TMFXlog
染色日志公钥。- (**void**)setDefaultXlogConfigurationPublicKey:(NSString *)publicKey;
设置`TMFXlog染色日志公钥,使用优先级高于从配置文件中读取的公钥信息。
TMFScenesController
- 主要功能
- 创建并返回TMF组件的根目录
- 返回当前TMF组件使用的
NSUserDefaults
- 相关属性
workSpace
scenesUserDefault
自定义初始化
自定义初始化TMFXlog
使用- (void)setXlogConfiguration:(TMFXLogConfiguration *)configuration;
来指定TMFXlog
启动时的配置项。
TMFServerManager *serverManager = [TMFServerManager shareServerManager];
TMFXLogConfiguration *xLogConfirutation = [TMFXLogConfiguration configuration];
xLogConfirutation.publicKey = @"";
[serverManager setXlogConfiguration:xLogConfirutation];
[serverManager start];
控制台日志输出
日志示例
下面是在 AppDelegate.m
中配置组件日志的示例:
// AppDelegate.m
#if DEBUG
[TMFServerManager setLogLevels:TMFBaseCoreLogLevelAll];
#elif
[TMFServerManager setLogLevels:TMFBaseCoreLogLevelNone];
#endif
下面是只输出警告+错误的日志配置示例:
[TMFServerManager setLogLevels:(TMFBaseCoreLogLevelWarn | TMFBaseCoreLogLevelError)];
TMF SDK日志追踪
TMFServerManager
启动时,会创建并赋值TMFBaseCore
的日志追踪回调,并最终将TMF SDK日志写入TMFXlog
中。