1 パス設定
Umeng + SDK を使用したかどうかを確認します。 SDK を使用した場合は、SDK ファイルパスを適時に変更します。
Umeng + SDK が統合されており、次に QT SDK を統合する必要があります:
[QTConfigure resetStorePath]すべての QT および Umeng + のコードの前に(少なくとも受信ドメイン名よりも前)QT SDK が統合されており、次に Youmeng + SDK を統合する必要があります:
[UMConfigure resetStorePath]すべての QT および Youmeng + コードの前に(少なくとも受信ドメイン名よりも前)
もし上記のロジックに基づいて呼び出されない場合、Umeng + SDK と QT SDK は同じストレージパスを使用するため、ログが混同されます。具体的なロジックは、最初に呼び出された SDK 初期化メソッドが別の SDK のファイルパスをリセットするということです。たとえば、最初に初期化された Youmeng + SDK は [QTConfigure resetStorePath]; を呼び出します。最初に初期化されたのが QT SDK の場合は、[UMConfigure.resetStorePath]; を呼び出す必要があります。
注: QT SDK のパスをリセットすると、SDK に設定した機能情報ストアのキー値(ユーザーアカウントやアプリケーションバージョンなど)が変更されます。これらのフィールドをビジネス処理に使用する必要がある場合は、これらのフィールドをリセットすることをお勧めします。データ損失を避けるため、QT SDK を初めて統合するときにこれらのフィールドを設定することをお勧めします。
2 ドメイン名設定
インターフェース:
/**統計ログを報告するためのプライマリおよび代替ドメイン名を設定します。この関数は、SDK が関数呼び出しを初期化する前に呼び出す必要があります。
@ param primaryDomain ログが渡されるプライマリドメイン名の受信アドレス。パラメータは null または空の文字列にすることはできません。例: https://www.xxx.com
@ param standbyDomain ログをアップロードするためのバックアップドメイン名の受信アドレス。パラメータは null または空の文字列にすることができます。このパラメータが空の場合、SDK はプライマリドメイン名をバックアップドメイン名として自動的に設定します。
*/
+ (void)setCustomDomain:(NSString *)primaryDomain standbyDomain:(NSString *)standbyDomain;パラメーター:
オプション | タイプ | 説明 | 備考 |
primaryDomain | NSString | プライマリドメイン名 | 必須設定 |
standbyDomain | NSString | 代替ドメイン名 | いいえ |
プロンプト
このメソッドは初期化メソッドの前に呼び出す必要があります
サンプルコード:
[QTConfigure setCustomDomain:@"あなたの収集サービスドメイン名" standbyDomain:nil];3. コンプライアンスの初期化
3.1 初期化インターフェース
1. コンプライアンス声明
Quick Tracking SDK サービスを選択したことをユーザーに通知する必要があります。プライバシーポリシーに次の参照条項を追加してください。
当社の製品は Quick Tracking SDK を統合しています。Quick Tracking SDK は、統計分析サービスを提供するために、お客様の OAID/GAID/MAC/IMEI/Android ID/IDFA/IDFV/OPENUDID/GUID/SIM カード IMSI 情報/ハードウェア シリアル番号/MCC(モバイル国別コード)、MNC(モバイルネットワーク番号)を収集する必要があります。
2. コンプライアンスの初期化
[Quick Tracking] 統計 SDK を統合した後、アプリが工業情報化部(MIIT)のコンプライアンス要件を満たせるようにするには、アプリの最初のコールドスタート時に、ユーザーがプライバシーポリシーを読み、ユーザーの承認を得た後に、初期初期化関数を呼び出して統計 SDK を初期化する必要があります。この場合、SDK はデバイス情報を収集し、データを報告します。逆に、ユーザーがプライバシーポリシーの承認に同意しない場合、初期化関数を呼び出すことはできません。
/**すべてのコンポーネント製品の Quick Tracking を初期化します
@ param appKey 開発者が Quick Tracking で申請した appkey。
@ param channel チャンネル識別子。nil を「App Store」に設定できます。
*/
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;同時にパフォーマンスエクスペリエンス SDK を使用し、パフォーマンスエクスペリエンス SDK の収集ドメイン名を個別に設定する必要がある場合は、次のインターフェースを呼び出して SDK を初期化します(v1.5.6.PX 以降でサポート)。
/**QTSDK のすべてのコンポーネントを初期化します
@ param appKey 開発者が QuickTracking プラットフォームの公式 Web サイトで申請した appkey。
@ param channel チャンネル識別子。nil を「App Store」に設定できます。
@ param pluginsTrackDomainIndepent パフォーマンスエクスペリエンス SDK のドメイン名を個別に設定するかどうか。
*/
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel shouldPluginsTrackDomainIndepent:(BOOL)pluginsTrackDomainIndepent;アプリが「プライバシーポリシー」のユーザー承認を取得したら、開発者は後続のアプリのコールドスタートで初期化関数が呼び出されるようにする必要があります。
3.2 Appkey の取得
SDK を初期化するときは、Appkey パラメータを指定する必要があります。アプリケーションキーは、Quick Tracking におけるアプリケーションの一意の ID です。アプリケーションを作成するときに生成されます。アプリケーションキーの取得または表示方法の詳細については、「アプリケーション管理」をご参照ください。
4 日ログ出力
iOS では、ログモジュールは独立したプラグインであり、統合後にのみ使用できます。
4.1 ログプラグインの紹介
SDK を手動で導入する場合は、ログプラグインパッケージをプロジェクトにインポートする必要があります
1. SDK 機能コンポーネントを選択してダウンロードし、.zip ファイルを解凍して対応するコンポーネントパッケージ(UMCommonLog.framework、UMCommonLog.bundle など)を取得します。
2. Xcode ファイル ->「プロジェクト」にファイルを追加を選択し、ダウンロードしたコンポーネントパッケージ -> ポップアップパネルで追加を選択します。(注:「必要に応じてアイテムをコピー」をオンにします)


4.2 ログプラグインの初期化
1. 説明と使用方法
コンソールに SDK のログ情報を出力するかどうかを設定します。
UMCommonLog.framework ログストアは、さまざまなビジネスコンポーネントで使用できるように、明示的に初期化する必要があります。
UMCommonLog.bundle はリソースファイルです。SDK を手動で導入する場合は、UMCommonLog.bundle をプロジェクトに追加する必要があります。そうしないと、ログの内容が正しくありません。
2. インターフェース関数
インターフェース:
+(void) setUpUMCommonLogManager;サンプルコード:
#import <UMCommonLog/UMCommonLogManager.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 開発者は、ロギングシステムを動作させるために、この関数を明示的に呼び出す必要があります。
[UMCommonLogManager setUpUMCommonLogManager];
}4.3 ログを開く
QTCommon.framwork ヘッダーファイルの UMConfigure.h API を使用して、ロギングを有効にします。
インターフェース:
/**コンソールに SDK のログ情報を出力するかどうかを指定します。
@ param bFlag デフォルト値 NO(ログ出力なし)。デバッグ参照用にログ情報を出力するには YES に設定します。製品を公開するときは、NO に設定します。
*/
+ (void)setLogEnabled:(BOOL)bFlag;SDK の初期化中に生成されたログを表示する場合は、SDK を初期化する前にロギングを有効にする必要があります。API を呼び出す前にロギングを有効にすることをお勧めします。
例:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 開発者は、ロギングシステムを動作させるために、この関数を明示的に呼び出す必要があります。
[UMCommonLogManager setUpUMCommonLogManager];
[QTConfigure setLogEnabled:YES];// ロギングを有効にするように指定します。
[QTConfigure setCustomDomain:@"あなたの収集サービスのドメイン名" standbyDomain:nil];// ドメイン名を設定します。
[QTConfigure initWithAppkey:@"あなたの appkey" channel:@"App Store"];
/**
* APM ドメイン名を個別に設定する必要がある場合は、次のインターフェースを使用して初期化します
* [QTConfigure initWithAppkey:@"あなたの appkey" channel:@"App Store" shouldPluginsTrackDomainIndepent:YES]; // V1.5.6.PX 以降でサポート
*/
}ログ形式:
たとえば、ユーザーが渡した AppKey が空の場合、ログは次の図のように出力されます。

2018-02-08 20:19:44: 現在の印刷時間を指します。
UMengCommon: コンポーネントベースの SDK(UMCommon.framework)の名前。
<1.4.3>: コンポーネントベースの SDK(UMCommon.framework)のバージョン番号。
(Error)[CIE10001]: ログ FAQ のコードを指します。FAQ ドキュメントから対応するソリューションを見つけることもできます。
指定された AppKey は無効です。アプリの統計に影響を与えないように、公式 Web サイトで AppKey を申請してください。: 開発者がエラーの原因を見つけるのに役立つエラーメッセージを示します。
5. カスタムデータ暗号化
カスタムコーデックインターフェース関数:
SDK はカスタムの暗号化および復号化アルゴリズムを直接実装しません。SDK は、開発者が次の 2 つのメソッドを実装できるプロキシ QTCryptoProviderDelegate を提供します。
@protocol QTCryptoProviderDelegate <NSObject>
- (NSData *)encode:(NSMutableDictionary<NSString *,NSString *> *)header input:(NSData *)input;
- (NSData *)decode:(NSDictionary<NSString *,NSString *> *)header input:(NSData *)input;
@endインターフェースメソッド | パラメーター |
- (NSData *)encode:(NSMutableDictionary<NSString *,NSString *> *)header input:(NSData *)input; | パラメーター: header: 復号化側に渡す必要がある追加情報(使用される暗号化アルゴリズム、暗号化モード、その他の情報など)。 複数の文字列 K-V キーバリューペアとして渡されます。SDK は、辞書内のすべての K-V キーバリューペアを Base64 エンコードし、HTTP ヘッダーフィールド dc-args として受信サーバーに渡します。収集サーバーはこの辞書パラメーターを対応する復号化メソッドにそのまま渡します。 input: 暗号化する生データ。 戻り値: 暗号化されたデータ。 |
- (NSData *)decode:(NSDictionary<NSString *,NSString *> *)header input:(NSData *)input; | パラメーター: header: 暗号化側が渡した追加の暗号化情報。復号化側は、この情報を使用して復号化アルゴリズム、モード、その他の詳細を決定する必要があります。 input: 復号化する生データ。 戻り値: 復号化されたデータ。 |
カスタムコーデックインターフェース登録関数:
[QTConfigure registerCryptoProvider:self];インターフェースメソッド | パラメーター |
+ (void)registerCryptoProvider:(id<QTCryptoProviderDelegate>)delegate; | パラメーター: delegate: デリゲートエージェントメソッドを実装するオブジェクト。 |
サンプルコード:
#import <QTCommon/UMCommon.h>
@interface AppDelegate ()<QTCryptoProviderDelegate>
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[QTConfigure setCustomDomain:@"あなたの収集サービスドメイン名" standbyDomain:nil];
[QTConfigure registerCryptoProvider:self];
[QTConfigure initWithAppkey:@"あなたの appkey" channel:@"あなたのチャンネル"];
....
return YES;
}
- (NSData *)encode:(NSMutableDictionary<NSString *,NSString *> *)header input:(NSData *)input{
// サンプルコード
[header setObject:@"value1" forKey:@"arg1"];
[header setObject:@"value2" forKey:@"arg2"];
return [self customEncode:input key:CryptoKey];
}
- (NSData *)decode:(NSDictionary<NSString *,NSString *> *)header input:(NSData *)input{
// サンプルコード
NSLog(@"decode header:%@",header);
return [self customDecode:input key:CryptoKey];
}
// カスタム暗号化
- (NSData *)customEncode:(NSData *)data key:(NSString *)key
{
// 暗号化をカスタマイズします。
}
// 復号化をカスタマイズします。
- (NSData *)customDecode:(NSData *)data key:(NSString *)key
{
// 復号化の実装をカスタマイズします。
}6 データ取得スイッチ
デフォルトでは、SDK はデータ収集を有効にします。API を有効または無効にして、データ収集のタイミングを制御することもできます。 1.5.2.PX 以降でサポート
6.1 収集機能を有効にする
enableSDK
例:
[QTConfigure enableSDK];6.2 取得機能を無効にする
disableSDK
例:
[QTConfigure disableSDK];注: アプリには、操作プロセスを制御するプライバシーポリシーがあります。したがって、SDK はロゴを有効および無効にするための追加のキャッシュステータスコントロールを提供しません。
システム、つまり、コールドスタート後に SDK 機能を無効にし、すべてのコールドスタートで収集状態を無効にする場合は、サービス開発を積極的に調整する必要があります
DisableSDK API 機能