基础库TMFBase

组件简介

TMF基础库包含了TMF组件依赖的核心公共服务,使用TMF组件前需先接入TMF基础库。

集成

前置条件

  • 环境要求
    • iOS >= 9.0
    • Xcode >= 10.0
  • 组件依赖
    • TMFBaseCore
    • TMFShark
    • TMFXLog
    • TMFInstruction

集成方式

TMFBase 的集成方式有以下 2 种,可选择其一进行集成:

  • CocoaPods 集成 SDK
  • 手动集成 SDK

CocoaPods 集成 SDK

  1. 在您项目中的 Podfile 文件里添加如下内容:

    source 'https://e.coding.net/tmf-work/tmf/tmf-repo.git'
    target 'YourTarget' do
      pod 'TMFBase' 
    end
    

    其中YourTarget 为您的项目需要引入 TMFBase 的 target 的名字。

  2. Terminal cd 到 Podfile 文件所在目录,并执行 pod install 进行组件安装。

    $ cd "yourDirectory"
    $ pod install
    

手动集成SDK

  1. 添加 SDK

    TMFBase 组件的目录添加到您项目的 Xcode Project 中的合适位置,并选择合适的 target。 您可以把组件的目录从 Finder 直接拖动到 Xcode Project 中,以进行快捷添加。

  2. 添加依赖的 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实例。
    • 主要属性包含customIDproductId,用来表示与它匹配的控制台项目。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中。

Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""