Commit 19fb7fbf by 刘卓鑫

友盟第三方SDK导入

parent 4f142d2e
//
++ /dev/null
//
// TXADHeader.h
// ColorfulSchool
//
// Created by liuZX on 2019/1/4.
// Copyright © 2019年 Colorful Any Door. All rights reserved.
//
#ifndef TXADHeader_h
#define TXADHeader_h
#define kTXAdAPPID @"1108089964"
#define kTXAdNativePLACEMENTID @"8030751158735005" //原生广告id
#define kTXAdLauchPLACEMENTID @"9090758636743260" //开屏广告id
#define kTXAdBannerPLACEMENTID @"1090852550236628" //banner广告id
#endif /* TXADHeader_h */
//
++ /dev/null
//
// ZXTXAdTool.h
// ColorfulSchool
//
// Created by liuZX on 2019/1/4.
// Copyright © 2019年 Colorful Any Door. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <GDTMobSDK/GDTSDKDefines.h>
#import <GDTMobSDK/GDTSDKConfig.h>
#import <GDTMobSDK/GDTNativeAd.h>
#import <GDTMobSDK/GDTSplashAd.h>
#import <GDTMobSDK/GDTMobBannerView.h>
#import <GDTMobSDK/GDTMobInterstitial.h>
#import <GDTMobSDK/GDTNativeExpressAd.h>
#import <GDTMobSDK/GDTNativeExpressAdView.h>
NS_ASSUME_NONNULL_BEGIN
@interface ZXTXAdTool : NSObject
//单例化
kSINGLETON_FOR_HEADER(ZXTXAdTool)
/*开屏广告**/
-(void) createLauchAdByPlacmentId:(NSString *) placenmentId;
/**原生广告 */
- (void) createNativieAdByView:(UIView *) view
topView:(UIView *) topView
viewController:(UIViewController *) viewController
isFirstPage:(BOOL) isFirstPage
isHasBottomMargin:(BOOL) isHasBottomMargin;
/**banner广告*/
-(void) createBannerAdByPlacmentId:(NSString *) placenmentId currentViewController:(UIViewController *) viewController
superView:(UIView *) superView;
@property (nonatomic, copy) dispatch_block_t closeAction;
@end
NS_ASSUME_NONNULL_END
//
++ /dev/null
//
// ZXTXAdTool.m
// ColorfulSchool
//
// Created by liuZX on 2019/1/4.
// Copyright © 2019年 Colorful Any Door. All rights reserved.
//
#import "ZXTXAdTool.h"
#import <GDTSDKDefines.h>
@interface ZXTXAdTool()<GDTSplashAdDelegate , GDTNativeExpressAdDelegete, GDTMobBannerViewDelegate>
//开屏广告
@property (strong, nonatomic) GDTSplashAd *splash;
//原生广告
@property (nonatomic, strong) GDTNativeExpressAd *nativeAd;
//原生广告内容
@property (nonatomic, strong) GDTNativeAdData *currentAdData;
//banner广告
@property (nonatomic, strong) GDTMobBannerView *bannerView;
@property (nonatomic, weak) UIView *adView;
@property (nonatomic, weak) UIView *topView;
@property (nonatomic, weak) UIViewController *fromVc;
@property (nonatomic, assign) BOOL isFristPage;//是否是首页
@property (nonatomic, assign) BOOL isHasBottomMargin;//是否有底部间距
@property (nonatomic, strong) dispatch_source_t gcdTimer;
@property (nonatomic, strong) UIView *window;
@end
@implementation ZXTXAdTool
kSINGLETON_FOR_CLASS(ZXTXAdTool)
#pragma mark - ========== 开屏广告 ==========
-(void) createLauchAdByPlacmentId:(NSString *) placenmentId {
GDTSplashAd *splash = [[GDTSplashAd alloc] initWithAppId:kTXAdAPPID placementId:placenmentId];
splash.delegate = self;
splash.fetchDelay = 3;
[splash loadAdAndShowInWindow:kAppWindow];
// UIImageView *v1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 53 * k6Scale)];
// v1.image = [UIImage imageNamed:@"default_down"];
// [splash loadAdAndShowInWindow:kAppWindow withBottomView:v1];
self.splash = splash;
}
- (void)splashAdApplicationWillEnterBackground:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
-(void)splashAdSuccessPresentScreen:(GDTSplashAd *)splashAd
{
if ([kUserDefaults valueForKey:kAPP_LauchADCloseTimeinterval] && ([[kUserDefaults valueForKey:kAPP_LauchADCloseTimeinterval] integerValue] != 0)) {
NSInteger times = [[kUserDefaults valueForKey:kAPP_LauchADCloseTimeinterval] integerValue] / 1000;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(times * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
UIViewController *vc = [splashAd valueForKey:@"splashViewController"];
[vc dismissViewControllerAnimated:NO completion:nil];
});
}
NSLog(@"%s",__FUNCTION__);
if (CacheUserId == nil) {
return;
}
@try {
//曝光
id x = [splashAd valueForKey:@"adModel"];
NSString *imageUrl = [x valueForKey:@"imgUrl"];
[ZXTool requestDataHideLoadingToastWithType:kXMHTTPMethodPOST url:[NSString stringWithFormat:@"%@/app/adsenseCollectData/adsenseCollectData4Add", [kUserDefaults valueForKey:@"Ad"]] para:@{@"adsenseName":@"开屏广告",@"advertType":@"曝光",@"advertTitle":@"开屏广告", @"advertImg":imageUrl, @"customerId":[kUserDefaults valueForKey:@"userId"], @"advertId":kTXAdLauchPLACEMENTID,@"platformCode":@"TXAD_iOS"} completed:^(CommonModel *common, NSString *error) {
}];
} @catch (NSException *exception) {
} @finally {
}
}
-(void)splashAdFailToPresent:(GDTSplashAd *)splashAd withError:(NSError *)error
{
NSLog(@"%s%@",__FUNCTION__,error);
self.splash = nil;
}
- (void)splashAdWillClosed:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
-(void)splashAdClosed:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
self.splash = nil;
}
- (void)splashAdWillPresentFullScreenModal:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
- (void)splashAdDidPresentFullScreenModal:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
- (void)splashAdExposured:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
- (void)splashAdClicked:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
if (CacheUserId == nil) {
return;
}
@try {
//点击
id x = [splashAd valueForKey:@"adModel"];
NSString *imageUrl = [x valueForKey:@"imgUrl"];
[ZXTool requestDataHideLoadingToastWithType:kXMHTTPMethodPOST url:[NSString stringWithFormat:@"%@/app/adsenseCollectData/adsenseCollectData4Add", [kUserDefaults valueForKey:@"Ad"]] para:@{@"adsenseName":@"开屏广告",@"advertType":@"点击",@"advertTitle":@"开屏广告", @"advertImg":imageUrl, @"customerId":[kUserDefaults valueForKey:@"userId"], @"advertId":kTXAdLauchPLACEMENTID,@"platformCode":@"TXAD_iOS"} completed:^(CommonModel *common, NSString *error) {
}];
} @catch (NSException *exception) {
} @finally {
}
}
- (void)splashAdWillDismissFullScreenModal:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
- (void)splashAdDidDismissFullScreenModal:(GDTSplashAd *)splashAd
{
NSLog(@"%s",__FUNCTION__);
}
#pragma mark - ========== 原生广告 ==========
- (void) createNativieAdByView:(UIView *) view
topView:(UIView *) topView
viewController:(UIViewController *) viewController
isFirstPage:(BOOL) isFirstPage
isHasBottomMargin:(BOOL) isHasBottomMargin {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if (self.gcdTimer) {
return;
}
@try {
self.nativeAd = [[GDTNativeExpressAd alloc] initWithAppId:kTXAdAPPID placementId:kTXAdNativePLACEMENTID adSize:CGSizeMake(kScreenWidth, kScreenWidth * 0.56)];
self.nativeAd.delegate = self;
self.adView = view;
self.topView = topView;
self.isHasBottomMargin = isHasBottomMargin;
self.isFristPage = isFirstPage;
self.fromVc = viewController;
[self.nativeAd loadAd:1];
} @catch (NSException *exception) {
} @finally {
}
}
}
/**
* 拉取原生模板广告成功
*/
- (void)nativeExpressAdSuccessToLoad:(GDTNativeExpressAd *)nativeExpressAd views:(NSArray<__kindof GDTNativeExpressAdView *> *)views {
@try {
GDTNativeExpressAdView *expressView = (GDTNativeExpressAdView *)views.lastObject;
expressView.controller = self.fromVc;
[expressView render];
[self.adView addSubview:expressView];
if (self.isFristPage) {
[expressView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.adView.mas_left).offset(5 * k6Scale);
make.right.equalTo(self.adView.mas_right).offset(-5 * k6Scale);
make.height.mas_equalTo(kScreenWidth * 0.56);
make.bottom.equalTo([ZXPayManager sharedZXPayManager].notPayOrderView.mas_top);
}];
} else {
if (self.isHasBottomMargin) {
CGFloat margin = 49;
if (iPhoneX) {
margin = 83;
}
[expressView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.adView.mas_left).offset(5 * k6Scale);
make.right.equalTo(self.adView.mas_right).offset(-5 * k6Scale);
make.height.mas_equalTo(kScreenWidth * 0.56);
make.bottom.equalTo(self.adView.mas_bottom).offset(-margin);
}];
} else {
if (self.topView) {
[expressView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.adView.mas_left).offset(5 * k6Scale);
make.right.equalTo(self.adView.mas_right).offset(-5 * k6Scale);
make.height.mas_equalTo(kScreenWidth * 0.56);
make.top.equalTo(self.topView.mas_bottom).offset(5 * k6Scale);
}];
} else {
[expressView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.adView).offset(15 * k6Scale);
make.right.equalTo(self.adView).offset(-15 * k6Scale);
make.height.mas_equalTo((kScreenWidth - 20) * 0.56);
make.bottom.equalTo(self.adView);
}];
}
}
}
if (self.isFristPage == NO && self.isHasBottomMargin == NO && self.topView == nil) {
[self createRemoveAdView:expressView];
} else {
[self createCountingDowViewByAdView:expressView];
}
} @catch (NSException *exception) {
} @finally {
}
}
#pragma mark - ========== 创建删除view ==========
- (void) createRemoveAdView:(UIView *) expressView{
UIImageView *closeBg = [[UIImageView alloc] init];
[expressView addSubview:closeBg];
closeBg.userInteractionEnabled = YES;
closeBg.image = [UIImage imageNamed:@"wwww"];
[closeBg mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(expressView.mas_right).offset(-5 * k6Scale);
make.top.equalTo(expressView.mas_top).offset(5 * k6Scale);
}];
UILabel *closeLabel = [[UILabel alloc] init];
closeLabel.textColor = [UIColor colorWithHexString:@"#ffffff"];
[closeBg addSubview:closeLabel];
closeLabel.font = kFontSize(12 * k6Scale);
[closeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.centerY.equalTo(closeBg);
}];
closeLabel.text = @"X 关闭";
UITapGestureRecognizer *closeCountingDown = [[UITapGestureRecognizer alloc] init];
[closeBg addGestureRecognizer:closeCountingDown];
@weakify(self);
[[closeCountingDown rac_gestureSignal] subscribeNext:^(id x) {
@strongify(self);
//移除广告
[self removeCoverAd:expressView];
if (self.closeAction) {
self.closeAction();
}
}];
}
#pragma mark - ========== 创建倒计时view ==========
- (void) createCountingDowViewByAdView:(UIView *) expressView {
UIImageView *closeBg = [[UIImageView alloc] init];
[expressView addSubview:closeBg];
closeBg.userInteractionEnabled = YES;
closeBg.image = [UIImage imageNamed:@"wwww"];
[closeBg mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(expressView.mas_right).offset(-10 * k6Scale);
make.top.equalTo(expressView.mas_top).offset(10 * k6Scale);
}];
UILabel *closeLabel = [[UILabel alloc] init];
closeLabel.textColor = [UIColor colorWithHexString:@"#ffffff"];
[closeBg addSubview:closeLabel];
closeLabel.font = kFontSize(12 * k6Scale);
[closeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.centerY.equalTo(closeBg);
}];
__block int cou = 3;
closeLabel.text = [NSString stringWithFormat:@"%ld 跳过", (long)cou];
UITapGestureRecognizer *closeCountingDown = [[UITapGestureRecognizer alloc] init];
[closeBg addGestureRecognizer:closeCountingDown];
self.gcdTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
dispatch_source_set_timer(self.gcdTimer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0.0 * NSEC_PER_SEC);
dispatch_source_set_event_handler(self.gcdTimer, ^{
dispatch_async(dispatch_get_main_queue(), ^{
closeLabel.text = [NSString stringWithFormat:@"%d 跳过", (int)cou];
if(cou == 0) {
// 终止定时器
dispatch_cancel(self.gcdTimer);
self.gcdTimer = nil;
//移除广告
[self removeCoverAd:expressView];
}
cou --;
});
});
// 启动任务,GCD计时器创建后需要手动启动
dispatch_resume(self.gcdTimer);
@weakify(self);
[[closeCountingDown rac_gestureSignal] subscribeNext:^(id x) {
@strongify(self);
// 终止定时器
if (self.gcdTimer) {
dispatch_cancel(self.gcdTimer);
self.gcdTimer = nil;
}
//移除广告
[self removeCoverAd:expressView];
}];
}
- (void) removeCoverAd:(UIView *) expressView {
expressView.hidden = YES;
self.nativeAd.delegate = nil;
[expressView removeFromSuperview];
}
/**
* 拉取原生模板广告失败
*/
- (void)nativeExpressAdFailToLoad:(GDTNativeExpressAd *)nativeExpressAd error:(NSError *)error {
}
/**
* 原生模板广告渲染成功, 此时的 nativeExpressAdView.size.height 根据 size.width 完成了动态更新。
*/
- (void)nativeExpressAdViewRenderSuccess:(GDTNativeExpressAdView *)nativeExpressAdView {
@try {
//曝光
id x = [nativeExpressAdView valueForKey:@"adModel"];
NSString *title = [x valueForKey:@"title"];
NSString *imageUrl = [x valueForKey:@"imgUrl"];
[ZXTool requestDataHideLoadingToastWithType:kXMHTTPMethodPOST url:[NSString stringWithFormat:@"%@/app/adsenseCollectData/adsenseCollectData4Add", [kUserDefaults valueForKey:@"Ad"]] para:@{@"adsenseName":title.length>30?[title substringToIndex:29]:title,@"advertType":@"曝光",@"advertTitle":title.length>30?[title substringToIndex:29]:title, @"advertImg":imageUrl, @"customerId":[kUserDefaults valueForKey:@"userId"], @"advertId":kTXAdNativePLACEMENTID,@"platformCode":@"TXAD_iOS"} completed:^(CommonModel *common, NSString *error) {
}];
} @catch (NSException *exception) {
} @finally {
}
}
/**
* 点击原生模板广告以后即将弹出全屏广告页
*/
- (void)nativeExpressAdViewWillPresentScreen:(GDTNativeExpressAdView *)nativeExpressAdView {
@try {
//点击
id x = [nativeExpressAdView valueForKey:@"adModel"];
NSString *title = [x valueForKey:@"title"];
NSString *imageUrl = [x valueForKey:@"imgUrl"];
[ZXTool requestDataHideLoadingToastWithType:kXMHTTPMethodPOST url:[NSString stringWithFormat:@"%@/app/adsenseCollectData/adsenseCollectData4Add", [kUserDefaults valueForKey:@"Ad"]] para:@{@"adsenseName":title.length>30?[title substringToIndex:29]:title,@"advertType":@"点击",@"advertTitle":title.length>30?[title substringToIndex:29]:title, @"advertImg":imageUrl, @"customerId":[kUserDefaults valueForKey:@"userId"], @"advertId":kTXAdNativePLACEMENTID,@"platformCode":@"TXAD_iOS"} completed:^(CommonModel *common, NSString *error) {
}];
} @catch (NSException *exception) {
} @finally {
}
}
/**
* 原生模板广告被关闭
*/
- (void)nativeExpressAdViewClosed:(GDTNativeExpressAdView *)nativeExpressAdView {
@try {
if (self.topView) {
//当前是自助服务
nativeExpressAdView.hidden = YES;
[nativeExpressAdView removeFromSuperview];
} else {
}
} @catch (NSException *exception) {
} @finally {
}
}
#pragma mark - ========== banner广告部分 ==========
-(void) createBannerAdByPlacmentId:(NSString *) placenmentId currentViewController:(UIViewController *) viewController
superView:(UIView *) superView {
CGRect rect = {CGPointZero, GDTMOB_AD_SUGGEST_SIZE_320x50};
self.bannerView = [[GDTMobBannerView alloc] initWithFrame:rect appId:kTXAdAPPID placementId:placenmentId];
self.bannerView.currentViewController = viewController;
self.bannerView.interval = 40;
self.bannerView.delegate = self;
self.bannerView.showCloseBtn = YES;
[superView addSubview:self.bannerView];
[superView bringSubviewToFront:self.bannerView];
[self.bannerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(superView);
make.height.mas_equalTo(50);
}];
[self loadBannerView];
}
- (void)removeBannerAd {
[self.bannerView removeFromSuperview];
self.bannerView = nil;
}
- (void) loadBannerView {
[self.bannerView loadAdAndShow];
}
#pragma mark - GDTMobBannerViewDelegate
// 请求广告条数据成功后调用
//
// 详解:当接收服务器返回的广告数据成功后调用该函数
- (void)bannerViewDidReceived
{
NSLog(@"banner Received");
}
// 请求广告条数据失败后调用
//
// 详解:当接收服务器返回的广告数据失败后调用该函数
- (void)bannerViewFailToReceived:(NSError *)error
{
NSLog(@"banner failed to Received : %@",error);
}
// 广告栏被点击后调用
//
// 详解:当接收到广告栏被点击事件后调用该函数
- (void)bannerViewClicked
{
NSLog(@"banner clicked");
}
// 应用进入后台时调用
//
// 详解:当点击下载或者地图类型广告时,会调用系统程序打开,
// 应用将被自动切换到后台
- (void)bannerViewWillLeaveApplication
{
NSLog(@"banner leave application");
}
-(void)bannerViewDidDismissFullScreenModal
{
NSLog(@"%s",__FUNCTION__);
}
-(void)bannerViewWillDismissFullScreenModal
{
NSLog(@"%s",__FUNCTION__);
}
-(void)bannerViewWillPresentFullScreenModal
{
NSLog(@"%s",__FUNCTION__);
}
-(void)bannerViewDidPresentFullScreenModal
{
NSLog(@"%s",__FUNCTION__);
}
@end
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "mineNavBg@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1100"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FD2E8643412994484A50DA7D3BFB1EFC"
BuildableName = "UMCAnalytics"
BlueprintName = "UMCAnalytics"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1100"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "6F6B630FA5213AB083E7CEF1F986FE44"
BuildableName = "UMCCommon"
BlueprintName = "UMCCommon"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1100"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "6075E73CE9761233A64B697DA4780D60"
BuildableName = "UMCCommonLog"
BlueprintName = "UMCCommonLog"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCAnalytics
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCAnalytics" "${PODS_ROOT}/UMCCommon"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCAnalytics
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCCommon
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCCommon"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCCommon
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCCommonLog
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCCommonLog/UMCommonLog"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCCommonLog
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
Versions/Current/Headers
\ No newline at end of file
Versions/Current/UMAnalytics
\ No newline at end of file
//
// MobClick.h
// Analytics
//
// Copyright (C) 2010-2017 Umeng.com . All rights reserved.
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
typedef void(^CallbackBlock)();
/**
统计的场景类别,默认为普通统计;若使用游戏统计API,则需选择游戏场景类别,如E_UM_NORMAL。
*/
typedef NS_ENUM (NSUInteger, eScenarioType)
{
E_UM_NORMAL = 0, // default value
};
@class CLLocation;
@interface MobClick : NSObject <UIAlertViewDelegate>
#pragma mark basics
///---------------------------------------------------------------------------------------
/// @name 设置
///---------------------------------------------------------------------------------------
/** 设置 统计场景类型,默认为普通应用统计:E_UM_NORMAL
@param
@return void.
*/
+ (void)setScenarioType:(eScenarioType)eSType;
/** 开启CrashReport收集, 默认YES(开启状态).
@param value 设置为NO,可关闭友盟CrashReport收集功能.
@return void.
*/
+ (void)setCrashReportEnabled:(BOOL)value;
#pragma mark event logs
///---------------------------------------------------------------------------------------
/// @name 页面计时
///---------------------------------------------------------------------------------------
/** 手动页面时长统计, 记录某个页面展示的时长.
@param pageName 统计的页面名称.
@param seconds 单位为秒,int型.
@return void.
*/
+ (void)logPageView:(NSString *)pageName seconds:(int)seconds;
/** 自动页面时长统计, 开始记录某个页面展示时长.
使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
@param pageName 统计的页面名称.
@return void.
*/
+ (void)beginLogPageView:(NSString *)pageName;
/** 自动页面时长统计, 结束记录某个页面展示时长.
使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView:
@param pageName 统计的页面名称.
@return void.
*/
+ (void)endLogPageView:(NSString *)pageName;
///---------------------------------------------------------------------------------------
/// @name 事件统计
///---------------------------------------------------------------------------------------
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
@param eventId 网站上注册的事件Id.
@param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
@param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。
@return void.
*/
+ (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
*/
+ (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
*/
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来
@param eventId 网站上注册的事件Id.
@param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
@param primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey
@param millisecond 自己计时需要的话需要传毫秒进来
@return void.
@warning 每个event的attributes不能超过10个
eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符)
id, ts, du是保留字段,不能作为eventId及key的名称
*/
+ (void)beginEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)endEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)beginEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)endEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)event:(NSString *)eventId durations:(int)millisecond;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond;
#pragma mark - user methods
/** active user sign-in.
使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数
@param puid : user's ID
@param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
@return void.
*/
+ (void)profileSignInWithPUID:(NSString *)puid;
+ (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider;
/** active user sign-off.
停止sign-in PUID的统计
@return void.
*/
+ (void)profileSignOff;
///---------------------------------------------------------------------------------------
/// @name 地理位置设置
/// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h>
///---------------------------------------------------------------------------------------
/** 设置经纬度信息
@param latitude 纬度.
@param longitude 经度.
@return void
*/
+ (void)setLatitude:(double)latitude longitude:(double)longitude;
/** 设置经纬度信息
@param location CLLocation 经纬度信息
@return void
*/
+ (void)setLocation:(CLLocation *)location;
///---------------------------------------------------------------------------------------
/// @name Utility函数
///---------------------------------------------------------------------------------------
/** 判断设备是否越狱,依据是否存在apt和Cydia.app
*/
+ (BOOL)isJailbroken;
/** 判断App是否被破解
*/
+ (BOOL)isPirated;
/** 设置 app secret
@param secret string
@return void.
*/
+ (void)setSecret:(NSString *)secret;
+ (void)setCrashCBBlock:(CallbackBlock)cbBlock;
/** DeepLink事件
@param link 唤起应用的link
@return void.
*/
+ (void)onDeepLinkReceived:(NSURL *)link;
/**
* 设置预置事件属性 键值对 会覆盖同名的key
*/
+(void) registerPreProperties:(NSDictionary *)property;
/**
*
* 删除指定预置事件属性
@param key
*/
+(void) unregisterPreProperty:(NSString *)propertyName;
/**
* 获取预置事件所有属性;如果不存在,则返回空。
*/
+(NSDictionary *)getPreProperties;
/**
*清空所有预置事件属性。
*/
+(void)clearPreProperties;
/**
* 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效
*/
+(void)setFirstLaunchEvent:(NSArray *)eventList;
/** 设置是否自动采集页面, 默认NO(不自动采集).
@param value 设置为YES, umeng SDK 会将自动采集页面信息
*/
+ (void)setAutoPageEnabled:(BOOL)value;
@end
Versions/Current/Headers
\ No newline at end of file
Versions/Current/UMCommon
\ No newline at end of file
//
// UMCommon.h
// UMCommon
//
// Created by San Zhang on 11/2/16.
// Copyright © 2016 UMeng. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for UMCommon.
FOUNDATION_EXPORT double UMCommonVersionNumber;
//! Project version string for UMCommon.
FOUNDATION_EXPORT const unsigned char UMCommonVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h>
#import <UMCommon/UMConfigure.h>
//
// UMConfigure.h
// UMCommon
//
// Created by San Zhang on 9/6/16.
// Copyright © 2016 UMeng. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMConfigure : NSObject
/** 初始化友盟所有组件产品
@param appKey 开发者在友盟官网申请的appkey.
@param channel 渠道标识,可设置nil表示"App Store".
*/
+ (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel;
/** 设置是否在console输出sdk的log信息.
@param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO.
*/
+ (void)setLogEnabled:(BOOL)bFlag;
/** 设置是否对日志信息进行加密, 默认NO(不加密).
@param value 设置为YES, umeng SDK 会将日志信息做加密处理
*/
+ (void)setEncryptEnabled:(BOOL)value;
+ (NSString *)umidString;
/**
集成测试需要device_id
*/
+ (NSString*)deviceIDForIntegration;
@end
/*
UMCommonLog.strings
testUMCommonLog
Created by 张军华 on 2017/12/11.
Copyright © 2017年 张军华. All rights reserved.
*/
//init 20000 - 20250
analytics_init_error1 = "[AIE10012]Latitude或者longitude设置错误 https://developer.umeng.com/docs/66632/detail/66999?um_channel=sdk";
analytics_init_error2 = "[AIE10013]puid 为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error3 = "[AIE10013]puid 大于64字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error4 = "[AIE10013]provider 大于32字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error5 = "[AIE10005]请设置Dplus 场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk";
analytics_init_error6 = "数据库连接失败";
analytics_init_error7 = "数据库已经打开";
analytics_init_error8 = "修改表失败,TABLE %@ with columnName(%@)";
analytics_init_error9 = "数据库运行失败,sql: %@, error: %s,errorCode:%d";
analytics_init_error10 = "%@ 表创建失败";
analytics_init_error11 = "%@ 表删除失败";
analytics_init_error12 = "sql执行失败 %s";
analytics_init_error13 = "%@ 表写入失败";
analytics_init_error14 = "%@ 表修改失败";
analytics_init_error15 = "[AIE10011]DeepLink url 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk";
analytics_init_error16 = "[AIE10011]DeepLink eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk";
analytics_init_error17 = "[AIE10006]%@是SDK保留字段,不能作为eventId使用 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error18 = "[AIE1006]attributes中value 不能为 NSNull https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error19 = "[AIE10001]appkey 不能为空 https://developer.umeng.com/docs/66632/detail/66982?um_channel=sdk";
analytics_init_error20 = "[AIE10005]MobClickGameAnalytics 是游戏API,请先设置游戏场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk";
analytics_init_error21 = "[AIE10014]MobClickGameAnalytics orderId 不能大于 1024字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error22 = "[AIE10014]MobClickGameAnalytics currencyType 不能大于 3字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error23 = "[AIE10005]DplusMobClick 是Dplus API,请先设置Dplus场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk";
analytics_init_error24 = "[AIE1008]Dplus key:%@ 是预制字段,不能使用 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error25 = "[AIE10008]Dplus property value只能使用NSString,NSNumber,NSArray类型 NSArray只能是(NSString,NSNumber)类型且不能为空 https://developer.umeng.com/docs/66993/detail/id?um_channel=sdk";
analytics_init_error26 = "[AIE10008]Dplus property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error27 = "[AIE10008]Dplus property的value数组只能是NSString类型或NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
//analytics_init_error27 = "[AIE10027]Dplus array内容只能是NSString 或者 NSNumber类型";
//analytics_init_error28 = "[AIE10028]Dplus 事件的key和value 必须是string类型,key不能大于%@字节,value不能大于%@字节";
//analytics_init_error29 = "[AIE10029]Dplus property的value只能是NSString或者NSNumber类型且不能为空";
analytics_init_error30 = "[AIE10010]Dplus eventList必须是NSArray类型 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_error31 = "[AIE10010]Dplus eventList已存入5个,无法再添加 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_error32 = "[AIE10008]Dplus property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error33 = "[AIE10008]Dplus propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error34 = "[AIE10006]关键字id, ts, du, dplus_st, %@是SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error35 = "[AIE10006]事件的key和value 必须是string类型,key不能大于%ld字节,value不能大于%ld字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error36 = "[AIE10008]Dplus eventName为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error37 = "[AIE10006]关键字id, ts, du, dplus_st是友盟SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error38 = "make envelope failed code:%d";
analytics_init_error39 = "获取内容失败";
analytics_init_error40 = "[AIE10006]eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error41 = "[AIE10011]DeepLink 请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk";
analytics_init_error42 = "[AIE10010]Dplus eventList参数错误 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_error43 = "[AIE10009]Dplus 请检查预置事件参数 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error44 = "[AIE10009]Dplus 预置事件的key和value 必须是string类型,key不能大于%d字节,value不能大于%d字节 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error45 = "[AIE10009]Dplus 预置事件property的value只能是NSString或者NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error46 = "[AIE10009]Dplus 预支事件property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error47 = "[AIE10009]Dplus 预置事件property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error48 = "[AIE10009]Dplus 预置事件property为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error49 = "[AIE10009]Dplus 请检查预置事件property中的key和value是否正确 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error50 = "[AIE10009]Dplus 预置事件propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error51 = "[AIE10007]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk";
analytics_init_error52 = "[AIE10007]pageName不能为空 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk";
analytics_init_error53 = "[AIE10008]Dplus property为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error54 = "[AIE10006]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error55 = "[AIE10014]MobClickGameAnalytics level不能为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error56 = "[AIE10014]MobClickGameAnalytics 请检查currencyAmount和virtualAmount是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error57 = "[AIE10014]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error58 = "[AIE1008]超级属性设置失败 key:%@ 只能是%@、%@、%@、%@、%@字段,其他不能使用 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error59 = "[AIE10006]自定义属性中事件的key %@ 必须是NSString类型,key不能大于%d字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error60 = "[AIE10006]自定义属性中事件的key value 不能为空 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error61 = "[AIE10006]自定义属性中事件的value %@ 只能是NSString,NSNumber,NSArray类型,value不能大于%d字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error62 = "[AIE10006]自定义属性中事件的value 中的数组只能是NSString或NSNumber类型 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error63 = "[AIE10006]自定义属性中事件value中array的值不能大于%d字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error64 = "[AIE10006]自定义属性key:%@ 的value中的数组不能大于 %d 条 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error65 = "[AIE10006]自定义属性不能大于 %d 条 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error66 = "[AIE1008]设置失败 key:%@ 不能大于%d字节 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error67 = "[AIE1008]设置失败 value:%@ 不能大于%d字节 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error68 = "预置事件条数大于 %d ";
analytics_init_error69 = "propertyName字节大于 %d ";
analytics_init_error70 = "eventId:%@ 时长必须大于0小于 %d 毫秒 ";
analytics_init_error71 = "eventId不能为空 ";
analytics_init_error72 = "label %@ 不能大于 %d字节 ";
analytics_init_error73 = "label 必须是NSString类型 ";
analytics_init_error74 = "link 必须是NSUrl类型 ";
analytics_init_error75 = "link 不能为空 ";
analytics_init_error76 = "property的key只能是NSString类型且不能为空";
analytics_init_warn1 = "provider 为空";
analytics_init_warn3 = "错误信息表内容不是jsonString";
analytics_init_warn5 = "请检查property中的key和value值";
analytics_init_warn6 = "app已经启动";
analytics_init_warn7 = "attributes中value 不能为空";
analytics_init_warn8 = "setUserLevel 方法已下线,请使用setUserLevelId方法";
analytics_init_warn9 = "setUserID 方法已下线,请使用其他相关User的方法";
analytics_init_warn10 = "[AIE10010]Dplus eventList为空 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_warn11 = "Dplus value:%@ 超出限制字节,已被截取到%ld字节";
analytics_init_warn12 = "Dplus array内容只能是NSString类型";
analytics_init_warn13 = "Dplus property为空";
analytics_init_warn14 = "Dplus 请检查property中的key和value是否正确";
analytics_init_warn15 = "Dplus propertyName在Property中不存在";
analytics_init_warn16 = "Dplus propertyName在PreProperty中不存在";
analytics_init_warn17 = "Dplus propertyName在SuperProperty中不存在";
analytics_init_warn18 = "event label (%@) 不能大于%d字节";
analytics_init_warn19 = "event事件在8小时内最多发送%d";
analytics_init_warn20 = "track事件在8小时内最多发送%d";
analytics_init_warn21 = "sessionId为空";
analytics_init_warn22 = "不确定event 类型";
analytics_init_warn23 = "[AIE10010]Dplus %@ 过长,截取%ld字节 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_warn24 = "key:%@ 超出限制字节,已被截取到%ld字节";
analytics_init_warn25 = "value:%@ 超出限制字节,已被截取到%ld字节";
analytics_init_warn26 = "预置事件条数大于 %ld ,已被截取只取前 %ld 条";
analytics_init_warn27 = "此方法不生效,如果使用请将setAutoPageEnabled方法设置为NO";
analytics_init_warn28 = "setAutoPageEnabled已调用过,此方法只能调用一次,建议在初始化之前使用";
analytics_init_warn29 = "建议不要在初始化之前使用事件,在初始化之前调用的事件有可能会丢失";
analytics_init_info1 = "超级属性注册成功";
analytics_init_info2 = "缓存数据存储完成";
analytics_init_info3 = "session 开始:%@";
analytics_init_info4 = "session 结束:%@";
analytics_init_info5 = "Dplus registerPreProperty成功";
analytics_init_info6 = "Dplus unregisterSuperProperty成功";
analytics_init_info7 = "Dplus unregisterPreProperty成功";
analytics_init_info8 = "Dplus getSuperProperty成功";
analytics_init_info9 = "dladdr(%p, ...) failed";
analytics_init_info10 = "Invalid Mach-O header magic value: %x";
analytics_init_info11 = "LC_SEGMENT 0x%08x";
analytics_init_info12 = "数据过大,进行拆包";
analytics_init_info13 = "数据过大,进行Dplus拆包";
analytics_init_info14 = "数据过大,进行analytics拆包";
analytics_init_info15 = "已将是否自动获取页面设置为%@";
analytics_init_debug1 = "UMAnalytics sdk版本号:%@,app 版本号:%@";
analytics_init_debug2 = "UMAnalytics发送配置:sdk_version:%@, device_id:%@, model:%@, os_version:%@, app_version:%@";
analytics_init_debug3 = "UMAnalytics统计发送内容:active_user:%@, activate_msg:%@, sessions:%@, ekv:%@";
analytics_init_debug4 = "UMAnalytics游戏统计发送内容:gkv:%@";
analytics_init_debug5 = "UMAnalytics Dplus发送内容:Dplus:%@";
analytics_init_debug6 = "UMAnalytics error:%@";
analytics_init_debug7 = "UMAnalytics event:%@";
analytics_init_debug8 = "UMAnalytics session:%@";
analytics_init_debug9 = "UMAnalytics ekv:%@";
analytics_init_debug10 = "UMAnalytics gkv:%@";
analytics_init_debug11 = "UMAnalytics app被杀死";
analytics_init_debug12 = "UMAnalytics pageDuration:%@";
analytics_init_debug13 = "UMAnalytics pageBegin=%@, beginTime:%@";
analytics_init_debug14 = "UMAnalytics pageEnd=%@, duration:%lld";
analytics_init_debug15 = "UMAnalytics eventBegin eventId=%@, label=%@";
analytics_init_debug16 = "UMAnalytics ekvBegin ekvEvent.id=%@, ekvEvent.key=%@";
analytics_init_verbose1 = "UMAnalytics 发送日志:%@";
analytics_init_verbose2 = "UIApplicationWillTerminateNotification arrived";
analytics_init_verbose3 = "app inactivate enter";
analytics_init_verbose4 = "viewDidAppear is: %@";
analytics_init_verbose5 = "viewDidDisappear is: %@";
/*
UMCommonLog.strings
testUMCommonLog
Created by 张军华 on 2017/12/11.
Copyright © 2017年 张军华. All rights reserved.
*/
////////////////////////////////////////////////
//init begin
//init 20000 - 20250
common_init_error1 = "[CIE10001]用户传入的appKey不合法,请到官网申请appkey,以免影响自己App的统计数据。网址如下:https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
common_init_warn1 = "当前传入的appkey和用户以前设置过的appkey不一样。";
common_init_warn2 = "当前传入的channel渠道为空。";
common_init_warn3 = "检测用户正在使用UI无埋点功能,检测到UMABTest.framework和UMAutoEventBinding.framework同时并存,在需要release发布需要删除UMABTest.framework。";
common_init_info1 = "正在使用国内Common组件化SDK版本。";
common_init_info2 = "正在使用国际化Common组件化SDK版本。";
common_init_debug1 = "UMCommon版本号:%@。";
common_init_verbose1 = "";
//init end
////////////////////////////////////////////////
////////////////////////////////////////////////
//integration_test begin
common_integrationtest_error1 = "experiment params invalid。";
common_integrationtest_error2 = "unknow experiment group key。";
common_integrationtest_error3 = "unknow experiment test key。";
common_integrationtest_error4 = "experiment params invalid。";
//client_test end
////////////////////////////////////////////////
////////////////////////////////////////////////
//deviceToken begin
common_deviceToken_error1 = "error,tokenStringWithData, token inValid! [%ld]。";
//deviceToken end
////////////////////////////////////////////////
////////////////////////////////////////////////
//Envelope begin
common_envelope_error1 = "信封json创建失败";
common_envelope_error2 = "信封raw size:(%d)超过最大限制,创建失败";
common_envelope_error3 = "信封压缩数据失败";
common_envelope_error4 = "信封打包失败";
common_envelope_error5 = "信封创建失败";
common_envelope_error6 = "信封size:(%d)超过最大限制,创建失败";
common_envelope_error7 = "发送信封(%@)失败";
common_envelope_error8 = "网络请求失败(Response Applog) {\"fail\": \"error\"}";
common_envelope_error9 = "网络请求失败(Response Applog) {\"fail\": \"statusCode\":%d}";
common_envelope_error10 = "网络请求失败(Error Applog) %@";
common_envelope_warn1 = "信封数量超过最大限制%d,并且删除此文件名为:%@";
common_envelope_info1 = "准备发送信封";
common_envelope_info2 = "信封名字的前缀:(%@)";
common_envelope_debug1 = "当前正在发送网络请求,还不能打包信封(network running=YES)。";
common_envelope_debug2 = "当前网络状态不可用。";
common_envelope_debug3 = "当前本地有信封存在,还不能打包新的信封。";
common_envelope_debug4 = "生成信封(%@)成功";
common_envelope_debug5 = "准备发送信封(%@)...";
common_envelope_debug6 = "发送信封(%@)成功";
common_envelope_debug7 = "网络请求成功(Response Applog) {\"success\": \"ok\"}";
common_envelope_debug8 = "将要打包的有状态数据:%@";
common_envelope_debug9 = "信封SerialNum:%d";
common_envelope_verbose1 = "";
//Envelope end
////////////////////////////////////////////////
////////////////////////////////////////////////
//SLEnvelope begin
common_slenvelope_error1 = "无状态信封json创建失败";
common_slenvelope_error2 = "无状态信封raw size:(%d)超过最大限制,创建失败";
common_slenvelope_error3 = "无状态信封压缩数据失败";
common_slenvelope_error4 = "无状态信封打包失败";
common_slenvelope_error5 = "无状态信封创建失败";
common_slenvelope_error6 = "无状态信封size:(%d)超过最大限制,创建失败";
common_slenvelope_error7 = "发送无状态信封(%@)失败";
common_slenvelope_error8 = "无状态信封(%@)不存在";
common_slenvelope_error9 = "网络请求失败(SLResponse Applog) {\"fail\": \"statusCode\":%d}";
common_slenvelope_warn1 = "";
common_slenvelope_info1 = "";
common_slenvelope_debug1 = "生成无状态信封(%@)成功";
common_slenvelope_debug2 = "准备发送无状态信封(%@)...";
common_slenvelope_debug3 = "发送无状态信封(%@)成功";
common_slenvelope_debug4 = "网络请求成功(SLResponse Applog) {\"success\": \"ok\"}";
common_slenvelope_debug5 = "将要打包的无状态数据:%@";
common_slenvelope_verbose1 = "";
//SLEnvelope end
////////////////////////////////////////////////
/*
UMPushLog.strings
UMessage
Created by shile on 2017/12/11.
Copyright © 2017年 shile. All rights reserved.
*/
//tag&alias
push_tagandalias_debug1 = "%@ 方法调用参数是: [%@]";
push_tagandalias_debug2 = "%@ 方法调用成功, 返回的内容是:[%@], remainNumber [%ld]!";
push_tagandalias_debug3 = "%@ 方法调用成功,name [%@] type [%@]!";
push_tagandalias_warning1 = "%@ 长度为0";
push_tagandalias_warning2 = "%@ 长度超过了限制[%ld],长度是[%ld]";
push_tagandalias_warning3 = "%@ 类型不为NSString或者为nil。";
push_tagandalias_error1 = "[PTAE10001] %@ 方法调用错误 ,token 为nil!,请查看:https://developer.umeng.com/docs/66632/detail/66964?um_channel=sdk";
push_tagandalias_error2 = " %@ 方法调用错误 ,服务器异常或禁止请求,请检查是否调用错误!";
push_tagandalias_error3 = "%@ 方法调用错误 ,error 是 %@,responseObject 内容是 %@!";
push_tagandalias_error4 = "%@ 方法调用错误 ,请求过快,请检查是否调用正确!";
push_tagandalias_error6 = "%@ 失败,name [%@] type [%@]![%@]";
//应用内消息
push_innermessage_warning1 = "已经有相同的label存在,label为%@:";
push_innermessage_debug1 = "失败!error code:%d,sql:%@, result,SQL);";
push_innermessage_error1 = "应用内消息统计回传失败,responseObject[%@],error[%@]";
push_innermessage_error2 = "获取UPush应用内 开屏 消息失败,请检查是否在后台创建消息,如不需要开屏功能,请移除相关代码!";
push_innermessage_error3 = "获取UPush应用内 开屏 消息失败 [%@]!";
push_innermessage_error4 = "获取UPush应用内 插屏 消息失败 [%@]!";
push_innermessage_error5 = "label 格式错误,label只能为字符串,且不能为nil,或空串!";
push_innermessage_error6 = "每个app只允许创建10个CardMessage!";
//UMessage
push_umessage_info1 = "UMPush版本号:%@";
push_umessage_debug1 = "payload 内容是: [%@]";
push_umessage_debug2 = "launchOptions 为 nil 或 class [%@] 不是 NSDictionary";
push_umessage_debug3 = "消息到达!内容是:[%@]";
push_umessage_debug4 = "这条消息已经上传到服务器了!msgid是:%@";
push_umessage_debug5 = "UMPushMessage 内容是:[%@]";
push_umessage_debug6 = "消息中不包含Alert, 内容是:[%@]";
push_umessage_debug7 = "今天已经回传过 register 请求了";
push_umessage_debug8 = "今天已经回传过 launch 请求了";
push_umessage_debug9 = "responseDic 返回格式错误,内容是:[%@]";
push_umessage_debug10 = "responseDic内容是:[%@]";
push_umessage_debug11 = "clickPolicy 详情:[%d]";
push_umessage_debug12 = "消息不属于友盟!";
push_umessage_debug13 = "register devicetoken [%@]!";
push_umessage_debug14 = "register AppKey [%@]!";
push_umessage_error1 = "userInfo 不包含msgid,或者消息不来自UPush!";
push_umessage_error3 = "UMPushMessage init异常:[%@]";
push_umessage_error4 = "application:didFailToRegisterForRemoteNotificationsWithError: [%@]";
push_umessage_error5 = "token错误! [%ld]";
push_umessage_error6 = "tagClass错误! tagClass是 [%@]";
push_umessage_error7 = "错误! 每一最多只能发送[%ld]个tag,当前数量是[%ld]!";
push_umessage_error8 = "WeightedTagClass错误! tagClass是 [%@]";
// -------------- FAQ log
//core模块的平台相关
"core_platform_error_2" = "[SCE10001]创建平台失败:%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_platform_warn_1" = "[SCE10001]平台检查失败:%@,请检查是否实现 @selector(socialPlatformType),参考UMSocialPlatformConfig.h头文件说明。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_share_error_7" = "[SCE10007]出现报错2014,请使用 HTTPS 图片 URL。 https://developer.umeng.com/docs/66632/detail/67029?um_channel=sdk";
"core_info_1" = "[SCI10005]初始化平台参数中redirectURL参数的作用。 https://developer.umeng.com/docs/66632/detail/67027?um_channel=sdk";
"core_info_2" = "[SCI10006]分享/授权登录后如果无法返回应用(微信、QQ、微博等平台)。 https://developer.umeng.com/docs/66632/detail/67028?um_channel=sdk";
//core handle 协议相关
"core_auth_error_1" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_auth_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
//core模块获得用户资料相关
"core_getuserinfo_error_1" = "[SCE10001]未发现平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
//core模块分享相关
"core_share_error_1" = "[SCE10008]传入平台('%@')的UMSocialMessageObject类型参数messageObject的数据类型无效,请检查\n1.messageObject是否空。\n2.messageObject.text和messageObject.shareObject是否同时为空。 https://developer.umeng.com/docs/66632/detail/67030?um_channel=sdk";
"core_share_error_2" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_share_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_share_error_5" = "[SCE10001]未实现<UMSocialPlatformProvider>协议方法@selector(umSocial_ShareWithObject:withViewController:withCompletionHandler:):%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
// 分享面板
"ui_info_1" = "[SUII10002]当前操作相关提示:分享面板无法弹出。 https://developer.umeng.com/docs/66632/detail/67033?um_channel=sdk";
"ui_info_2" = "[SUII10003]分享面板图标不显示图片。 https://developer.umeng.com/docs/66632/detail/67034?um_channel=sdk";
"core_share_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk";
"core_auth_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk";
"core_getuserinfo_error_3" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk";
//wechat
"wechat_auth_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"wechat_share_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"wechat_share_error_2" = "[SCE10003]分享前,请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk";
"wechat_share_error_3" = "[SWE10001]当前的sdk不支持微信的OpenAPI,请更新最新的微信SDK。 https://developer.umeng.com/docs/66632/detail/67036?um_channel=sdk";
"wechat_share_error_4" = "[SWE10002]微信分享不支持的分享类型,微信的分享类型为:文本,图片,网络链接,音乐链接,视频链接,Gif表情,文件。 https://developer.umeng.com/docs/66632/detail/67037?um_channel=sdk";
"wechat_share_error_5" = "[SWE10003]下载UMShareImageObject的shareImage失败,请检查图片参数是否正确。(本地图片,请检查是否赋值,网络图片请检查是否为https,防止下载失败)。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareWebPage_warn_1" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareWebPage_warn_2" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareImage_warn_1" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareImage_warn_2" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
// wechat info
"wechat_info_1" = "[SWI10004]分享面板中不显示微信。 https://developer.umeng.com/docs/66632/detail/67039?um_channel=sdk";
"wechat_info_2" = "[SWI10005]如何获取微信code。 https://developer.umeng.com/docs/66632/detail/67040?um_channel=sdk";
"wechat_info_3" = "[SWI10007]微信分享报错提示,请请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67042?um_channel=sdk";
"wechat_info_4" = "[SWI10008]微信授权登录提示该链接无法访问。 https://developer.umeng.com/docs/66632/detail/67043?um_channel=sdk";
"wechat_info_5" = "[SWI10009]微信分享报错'由于invalid_app无法分享到微信。 https://developer.umeng.com/docs/66632/detail/67044?um_channel=sdk";
//qq
"qq_auth_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"qq_auth_error_2" = "[SQE10001]授权失败,点击qq授权没有跳转,请查看是否设置了appid,查看初始化函数:[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:??? appSecret:nil redirectURL:???];。 https://developer.umeng.com/docs/66632/detail/67045?um_channel=sdk";
"qq_getuserinfo_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"qq_getuserinfo_info_1" = "[SCE10004]可设置获得用户信息时是否清除缓存,通过UMSocialGlobal的isClearCacheWhenGetUserInfo变量来改变,默认是每次都清除用户的授权缓存。 https://developer.umeng.com/docs/66632/detail/67026?um_channel=sdk";
"qq_share_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"qq_share_error_2" = "[SCE10003]请检查是否安装了QQ。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk";
"qq_share_error_3" = "[SQE10002]请检查当前的SDK是否支持API调用,如果不能请升级SDK或者QQ的版本。 https://developer.umeng.com/docs/66632/detail/67046?um_channel=sdk";
"qq_share_error_4" = "[SQE10003]QQ分享不支持的分享类型,QQ的分享类型为:文本,图片,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67047?um_channel=sdk";
"qq_shareWebPage_warn_1" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk";
"qq_shareWebPage_warn_2" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk";
//info
"qq_info_1" = "[SQI10005]QQ和TIM平台混淆问题。 https://developer.umeng.com/docs/66632/detail/67049?um_channel=sdk";
"qq_info_2" = "[SQI10006]QQ登录时显示的应用名如何设置。 https://developer.umeng.com/docs/66632/detail/67050?um_channel=sdk";
"qq_info_3" = "[SQI10007]QQ登录提示错误110406。 https://developer.umeng.com/docs/66632/detail/67051?um_channel=sdk";
"qq_info_4" = "[SQI10008]QQ报错 100008 client request's app is not existed。 https://developer.umeng.com/docs/66632/detail/67053?um_channel=sdk";
//sina
"sina_auth_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"sina_getuserinfo_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"sina_share_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"sina_share_error_2" = "[SSE10001]新浪分享不支持的分享类型,新浪的分享类型为:文本,图片,图文,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67329?um_channel=sdk";
"sina_shareWebPage_error_1"="[SSE10002]新浪分享webpage类型(需要强制加入缩略图)错误,具体原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67054?um_channel=sdk";
"sina_shareText_Info_1" = "[SSI10003]新浪文本分享最大的字是140个,如果超过就不能分享成功,sdk默认开启截断功能,如果需要停止截断需要在调用分享前加入代码[UMSocialGlobal shareInstance].isTruncateShareText=NO。 https://developer.umeng.com/docs/66632/detail/67055?um_channel=sdk";
//info
"sina_info_1" = "[SSI10004]微博分享 网页(WebPage)类型,链接在微博只显示为'网页链接'的文字。 https://developer.umeng.com/docs/66632/detail/67056?um_channel=sdk";
"sina_info_2" = "[SSI10005]微博登录报错'sso package or sign error'。 https://developer.umeng.com/docs/66632/detail/67058?um_channel=sdk";
"sina_info_3" = "[SSI10006]微博授权实现关注官方微博功能。 https://developer.umeng.com/docs/66632/detail/67059?um_channel=sdk";
"sina_info_4" = "[SSI10007]微博报错 redirect url mismatch。 https://developer.umeng.com/docs/66632/detail/67060?um_channel=sdk";
// 钉钉支付宝
// info
"ding_error_1" = "[SDE10001]支付宝/钉钉返回鉴权失败。 https://developer.umeng.com/docs/66632/detail/67062?um_channel=sdk";
//facebook
"facebook_share_error_1" = "[SFE10001]facebook分享不支持的分享类型,facebook的分享类型为:文本,图片,网络链接,音乐链接,视频链接。(新版的facebook采用的是对话框的形式分享的,如果设置文本的话需要有publish_actions权限调用OpenAPI)。 https://developer.umeng.com/docs/66632/detail/67064?um_channel=sdk";
//error
"facebook_info_2" = "[SFI10002]FAQ: Facebook/Twitter分享点击分享后没有进入分享编辑页。 https://developer.umeng.com/docs/66632/detail/67065?um_channel=sdk";
"facebook_info_3" = "[SFE10003]FAQ: Facebook分享失败,提示missing publish_actions permissions。 https://developer.umeng.com/docs/66632/detail/67066?um_channel=sdk";
//twitter
"twitter_auth_error_1" = "[SCE10002]请检查是否设置了 Twitter 的 URLScheme。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
//info
"twitter_info_1" = "[STI10001]Twitter如何获取TokenSecret。 https://developer.umeng.com/docs/66632/detail/67068?um_channel=sdk";
"twitter_info_2" = "[STE10002]FAQ: Twitter 分享报错401。 https://developer.umeng.com/docs/66632/detail/67069?um_channel=sdk";
// --------- sdk 内 log
"core_version" = "UMShare版本号:%@。";
// 实现handler协议提示
"core_platform_warn_2" = "第三方或自定义平台异常:%@ > 未实现相应方法:@selector(umSocial_setAppKey:withAppSecret:withRedirectURL:)";
"core_auth_error_2" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_AuthorizeWithUserInfo:withViewController:withCompletionHandler:):%@";
"core_auth_error_3" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_cancelAuthWithCompletionHandler:):%@";
"core_auth_error_5" = "未实现<UMSocialPlatformProvider>协议方法@selector(umSocial_AuthorizeWithUserInfo:withCompletionHandler:):%@";
"core_getuserinfo_error_2" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_RequestForUserProfileWithViewController:completion:):%@";
"core_share_error_3" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_ShareWithObject:withCompletionHandler:):%@";
/*
UMCommonLog.strings
testUMCommonLog
Created by 张军华 on 2017/12/11.
Copyright © 2017年 张军华. All rights reserved.
*/
//init 20000 - 20250
analytics_init_error1 = "[AIE10012]Latitude或者longitude设置错误 https://developer.umeng.com/docs/66632/detail/66999?um_channel=sdk";
analytics_init_error2 = "[AIE10013]puid 为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error3 = "[AIE10013]puid 大于64字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error4 = "[AIE10013]provider 大于32字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error5 = "[AIE10005]请设置Dplus 场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk";
analytics_init_error6 = "数据库连接失败";
analytics_init_error7 = "数据库已经打开";
analytics_init_error8 = "修改表失败,TABLE %@ with columnName(%@)";
analytics_init_error9 = "数据库运行失败,sql: %@, error: %s,errorCode:%d";
analytics_init_error10 = "%@ 表创建失败";
analytics_init_error11 = "%@ 表删除失败";
analytics_init_error12 = "sql执行失败 %s";
analytics_init_error13 = "%@ 表写入失败";
analytics_init_error14 = "%@ 表修改失败";
analytics_init_error15 = "[AIE10011]DeepLink url 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk";
analytics_init_error16 = "[AIE10011]DeepLink eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk";
analytics_init_error17 = "[AIE10006]%@是SDK保留字段,不能作为eventId使用 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error18 = "[AIE1006]attributes中value 不能为 NSNull https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error19 = "[AIE10001]appkey 不能为空 https://developer.umeng.com/docs/66632/detail/66982?um_channel=sdk";
analytics_init_error20 = "[AIE10005]MobClickGameAnalytics 是游戏API,请先设置游戏场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk";
analytics_init_error21 = "[AIE10014]MobClickGameAnalytics orderId 不能大于 1024字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error22 = "[AIE10014]MobClickGameAnalytics currencyType 不能大于 3字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error23 = "[AIE10005]DplusMobClick 是Dplus API,请先设置Dplus场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk";
analytics_init_error24 = "[AIE1008]Dplus key:%@ 是预制字段,不能使用 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
analytics_init_error25 = "[AIE10008]Dplus property value只能使用NSString,NSNumber,NSArray类型 NSArray只能是(NSString,NSNumber)类型且不能为空 https://developer.umeng.com/docs/66993/detail/id?um_channel=sdk";
analytics_init_error26 = "[AIE10008]Dplus property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error27 = "[AIE10008]Dplus property的value数组只能是NSString类型或NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
//analytics_init_error27 = "[AIE10027]Dplus array内容只能是NSString 或者 NSNumber类型";
//analytics_init_error28 = "[AIE10028]Dplus 事件的key和value 必须是string类型,key不能大于%@字节,value不能大于%@字节";
//analytics_init_error29 = "[AIE10029]Dplus property的value只能是NSString或者NSNumber类型且不能为空";
analytics_init_error30 = "[AIE10010]Dplus eventList必须是NSArray类型 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_error31 = "[AIE10010]Dplus eventList已存入5个,无法再添加 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_error32 = "[AIE10008]Dplus property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error33 = "[AIE10008]Dplus propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error34 = "[AIE10006]关键字id, ts, du, dplus_st, %@是SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error35 = "[AIE10006]事件的key和value 必须是string类型,key不能大于%ld字节,value不能大于%ld字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk";
analytics_init_error36 = "[AIE10008]Dplus eventName为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error37 = "[AIE10006]关键字id, ts, du, dplus_st是友盟SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error38 = "make envelope failed code:%d";
analytics_init_error39 = "获取内容失败";
analytics_init_error40 = "[AIE10006]eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error41 = "[AIE10011]DeepLink 请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk";
analytics_init_error42 = "[AIE10010]Dplus eventList参数错误 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_error43 = "[AIE10009]Dplus 请检查预置事件参数 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error44 = "[AIE10009]Dplus 预置事件的key和value 必须是string类型,key不能大于%d字节,value不能大于%d字节 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error45 = "[AIE10009]Dplus 预置事件property的value只能是NSString或者NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error46 = "[AIE10009]Dplus 预支事件property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error47 = "[AIE10009]Dplus 预置事件property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error48 = "[AIE10009]Dplus 预置事件property为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error49 = "[AIE10009]Dplus 请检查预置事件property中的key和value是否正确 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error50 = "[AIE10009]Dplus 预置事件propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk";
analytics_init_error51 = "[AIE10007]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk";
analytics_init_error52 = "[AIE10007]pageName不能为空 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk";
analytics_init_error53 = "[AIE10008]Dplus property为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk";
analytics_init_error54 = "[AIE10006]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk";
analytics_init_error55 = "[AIE10014]MobClickGameAnalytics level不能为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk";
analytics_init_error56 = "[AIE10014]MobClickGameAnalytics 请检查currencyAmount和virtualAmount是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_error57 = "[AIE10014]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk";
analytics_init_warn1 = "provider 为空";
analytics_init_warn3 = "错误信息表内容不是jsonString";
analytics_init_warn5 = "请检查property中的key和value值";
analytics_init_warn6 = "app已经启动";
analytics_init_warn7 = "attributes中value 不能为空";
analytics_init_warn8 = "setUserLevel 方法已下线,请使用setUserLevelId方法";
analytics_init_warn9 = "setUserID 方法已下线,请使用其他相关User的方法";
analytics_init_warn10 = "[AIE10010]Dplus eventList为空 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_warn11 = "Dplus value:%@ 超出限制字节,已被截取到%ld字节";
analytics_init_warn12 = "Dplus array内容只能是NSString类型";
analytics_init_warn13 = "Dplus property为空";
analytics_init_warn14 = "Dplus 请检查property中的key和value是否正确";
analytics_init_warn15 = "Dplus propertyName在Property中不存在";
analytics_init_warn16 = "Dplus propertyName在PreProperty中不存在";
analytics_init_warn17 = "Dplus propertyName在SuperProperty中不存在";
analytics_init_warn18 = "event label (%@) 不能大于%d字节";
analytics_init_warn19 = "event事件在8小时内最多发送%d";
analytics_init_warn20 = "track事件在8小时内最多发送%d";
analytics_init_warn21 = "sessionId为空";
analytics_init_warn22 = "不确定event 类型";
analytics_init_warn23 = "[AIE10010]Dplus %@ 过长,截取%ld字节 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk";
analytics_init_info1 = "超级属性注册成功";
analytics_init_info2 = "缓存数据存储完成";
analytics_init_info3 = "session 开始:%@";
analytics_init_info4 = "session 结束:%@";
analytics_init_info5 = "Dplus registerPreProperty成功";
analytics_init_info6 = "Dplus unregisterSuperProperty成功";
analytics_init_info7 = "Dplus unregisterPreProperty成功";
analytics_init_info8 = "Dplus getSuperProperty成功";
analytics_init_info9 = "dladdr(%p, ...) failed";
analytics_init_info10 = "Invalid Mach-O header magic value: %x";
analytics_init_info11 = "LC_SEGMENT 0x%08x";
analytics_init_info12 = "数据过大,进行拆包";
analytics_init_info13 = "数据过大,进行Dplus拆包";
analytics_init_info14 = "数据过大,进行analytics拆包";
analytics_init_debug1 = "UMAnalytics sdk版本号:%@,app 版本号:%@";
analytics_init_debug2 = "UMAnalytics发送配置:sdk_version:%@, device_id:%@, model:%@, os_version:%@, app_version:%@";
analytics_init_debug3 = "UMAnalytics统计发送内容:active_user:%@, activate_msg:%@, sessions:%@, ekv:%@";
analytics_init_debug4 = "UMAnalytics游戏统计发送内容:gkv:%@";
analytics_init_debug5 = "UMAnalytics Dplus发送内容:Dplus:%@";
analytics_init_debug6 = "UMAnalytics error:%@";
analytics_init_debug7 = "UMAnalytics event:%@";
analytics_init_debug8 = "UMAnalytics session:%@";
analytics_init_debug9 = "UMAnalytics ekv:%@";
analytics_init_debug10 = "UMAnalytics gkv:%@";
analytics_init_debug11 = "UMAnalytics app被杀死";
analytics_init_debug12 = "UMAnalytics pageDuration:%@";
analytics_init_debug13 = "UMAnalytics pageBegin=%@, beginTime:%@";
analytics_init_debug14 = "UMAnalytics pageEnd=%@, duration:%lld";
analytics_init_debug15 = "UMAnalytics eventBegin eventId=%@, label=%@";
analytics_init_debug16 = "UMAnalytics ekvBegin ekvEvent.id=%@, ekvEvent.key=%@";
analytics_init_verbose1 = "UMAnalytics 发送日志:%@";
analytics_init_verbose2 = "UIApplicationWillTerminateNotification arrived";
analytics_init_verbose3 = "app inactivate enter";
analytics_init_verbose4 = "viewDidAppear is: %@";
analytics_init_verbose5 = "viewDidDisappear is: %@";
/*
UMCommonLog.strings
testUMCommonLog
Created by 张军华 on 2017/12/11.
Copyright © 2017年 张军华. All rights reserved.
*/
////////////////////////////////////////////////
//init begin
//init 20000 - 20250
common_init_error1 = "[CIE10001]用户传入的appKey不合法,请到官网申请appkey,以免影响自己App的统计数据。网址如下:https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk";
common_init_warn1 = "当前传入的appkey和用户以前设置过的appkey不一样。";
common_init_warn2 = "当前传入的channel渠道为空。";
common_init_warn3 = "检测用户正在使用UI无埋点功能,检测到UMABTest.framework和UMAutoEventBinding.framework同时并存,在需要release发布需要删除UMABTest.framework。";
common_init_info1 = "正在使用国内Common组件化SDK版本。";
common_init_info2 = "正在使用国际化Common组件化SDK版本。";
common_init_debug1 = "UMCommon版本号:%@。";
common_init_verbose1 = "";
//init end
////////////////////////////////////////////////
////////////////////////////////////////////////
//integration_test begin
common_integrationtest_error1 = "experiment params invalid。";
common_integrationtest_error2 = "unknow experiment group key。";
common_integrationtest_error3 = "unknow experiment test key。";
common_integrationtest_error4 = "experiment params invalid。";
//client_test end
////////////////////////////////////////////////
////////////////////////////////////////////////
//deviceToken begin
common_deviceToken_error1 = "error,tokenStringWithData, token inValid! [%ld]。";
//deviceToken end
////////////////////////////////////////////////
////////////////////////////////////////////////
//Envelope begin
common_envelope_error1 = "信封json创建失败";
common_envelope_error2 = "信封raw size:(%d)超过最大限制,创建失败";
common_envelope_error3 = "信封压缩数据失败";
common_envelope_error4 = "信封打包失败";
common_envelope_error5 = "信封创建失败";
common_envelope_error6 = "信封size:(%d)超过最大限制,创建失败";
common_envelope_error7 = "发送信封(%@)失败";
common_envelope_error8 = "网络请求失败(Response Applog) {\"fail\": \"error\"}";
common_envelope_error9 = "网络请求失败(Response Applog) {\"fail\": \"statusCode\":%d}";
common_envelope_error10 = "网络请求失败(Error Applog) %@";
common_envelope_warn1 = "信封数量超过最大限制%d,并且删除此文件名为:%@";
common_envelope_info1 = "准备发送信封";
common_envelope_info2 = "信封名字的前缀:(%@)";
common_envelope_debug1 = "当前正在发送网络请求,还不能打包信封(network running=YES)。";
common_envelope_debug2 = "当前网络状态不可用。";
common_envelope_debug3 = "当前本地有信封存在,还不能打包新的信封。";
common_envelope_debug4 = "生成信封(%@)成功";
common_envelope_debug5 = "准备发送信封(%@)...";
common_envelope_debug6 = "发送信封(%@)成功";
common_envelope_debug7 = "网络请求成功(Response Applog) {\"success\": \"ok\"}";
common_envelope_debug8 = "将要打包的有状态数据:%@";
common_envelope_debug9 = "信封SerialNum:%d";
common_envelope_verbose1 = "";
//Envelope end
////////////////////////////////////////////////
////////////////////////////////////////////////
//SLEnvelope begin
common_slenvelope_error1 = "无状态信封json创建失败";
common_slenvelope_error2 = "无状态信封raw size:(%d)超过最大限制,创建失败";
common_slenvelope_error3 = "无状态信封压缩数据失败";
common_slenvelope_error4 = "无状态信封打包失败";
common_slenvelope_error5 = "无状态信封创建失败";
common_slenvelope_error6 = "无状态信封size:(%d)超过最大限制,创建失败";
common_slenvelope_error7 = "发送无状态信封(%@)失败";
common_slenvelope_error8 = "无状态信封(%@)不存在";
common_slenvelope_error9 = "网络请求失败(SLResponse Applog) {\"fail\": \"statusCode\":%d}";
common_slenvelope_warn1 = "";
common_slenvelope_info1 = "";
common_slenvelope_debug1 = "生成无状态信封(%@)成功";
common_slenvelope_debug2 = "准备发送无状态信封(%@)...";
common_slenvelope_debug3 = "发送无状态信封(%@)成功";
common_slenvelope_debug4 = "网络请求成功(SLResponse Applog) {\"success\": \"ok\"}";
common_slenvelope_debug5 = "将要打包的无状态数据:%@";
common_slenvelope_verbose1 = "";
//SLEnvelope end
////////////////////////////////////////////////
/*
UMPushLog.strings
UMessage
Created by shile on 2017/12/11.
Copyright © 2017年 shile. All rights reserved.
*/
//tag&alias
push_tagandalias_debug1 = "%@ 方法调用参数是: [%@]";
push_tagandalias_debug2 = "%@ 方法调用成功, 返回的内容是:[%@], remainNumber [%ld]!";
push_tagandalias_debug3 = "%@ 方法调用成功,name [%@] type [%@]!";
push_tagandalias_warning1 = "%@ 长度为0";
push_tagandalias_warning2 = "%@ 长度超过了限制[%ld],长度是[%ld]";
push_tagandalias_warning3 = "%@ 类型不为NSString或者为nil。";
push_tagandalias_error1 = "[PTAE10001] %@ 方法调用错误 ,token 为nil!,请查看:https://developer.umeng.com/docs/66632/detail/66964?um_channel=sdk";
push_tagandalias_error2 = " %@ 方法调用错误 ,服务器异常或禁止请求,请检查是否调用错误!";
push_tagandalias_error3 = "%@ 方法调用错误 ,error 是 %@,responseObject 内容是 %@!";
push_tagandalias_error4 = "%@ 方法调用错误 ,请求过快,请检查是否调用正确!";
push_tagandalias_error6 = "%@ 失败,name [%@] type [%@]![%@]";
//应用内消息
push_innermessage_warning1 = "已经有相同的label存在,label为%@:";
push_innermessage_debug1 = "失败!error code:%d,sql:%@, result,SQL);";
push_innermessage_error1 = "应用内消息统计回传失败,responseObject[%@],error[%@]";
push_innermessage_error2 = "获取UPush应用内 开屏 消息失败,请检查是否在后台创建消息,如不需要开屏功能,请移除相关代码!";
push_innermessage_error3 = "获取UPush应用内 开屏 消息失败 [%@]!";
push_innermessage_error4 = "获取UPush应用内 插屏 消息失败 [%@]!";
push_innermessage_error5 = "label 格式错误,label只能为字符串,且不能为nil,或空串!";
push_innermessage_error6 = "每个app只允许创建10个CardMessage!";
//UMessage
push_umessage_info1 = "UMPush版本号:%@";
push_umessage_debug1 = "payload 内容是: [%@]";
push_umessage_debug2 = "launchOptions 为 nil 或 class [%@] 不是 NSDictionary";
push_umessage_debug3 = "消息到达!内容是:[%@]";
push_umessage_debug4 = "这条消息已经上传到服务器了!msgid是:%@";
push_umessage_debug5 = "UMPushMessage 内容是:[%@]";
push_umessage_debug6 = "消息中不包含Alert, 内容是:[%@]";
push_umessage_debug7 = "今天已经回传过 register 请求了";
push_umessage_debug8 = "今天已经回传过 launch 请求了";
push_umessage_debug9 = "responseDic 返回格式错误,内容是:[%@]";
push_umessage_debug10 = "responseDic内容是:[%@]";
push_umessage_debug11 = "clickPolicy 详情:[%d]";
push_umessage_debug12 = "消息不属于友盟!";
push_umessage_debug13 = "register devicetoken [%@]!";
push_umessage_debug14 = "register AppKey [%@]!";
push_umessage_error1 = "userInfo 不包含msgid,或者消息不来自UPush!";
push_umessage_error3 = "UMPushMessage init异常:[%@]";
push_umessage_error4 = "application:didFailToRegisterForRemoteNotificationsWithError: [%@]";
push_umessage_error5 = "token错误! [%ld]";
push_umessage_error6 = "tagClass错误! tagClass是 [%@]";
push_umessage_error7 = "错误! 每一最多只能发送[%ld]个tag,当前数量是[%ld]!";
push_umessage_error8 = "WeightedTagClass错误! tagClass是 [%@]";
// -------------- FAQ log
//core模块的平台相关
"core_platform_error_2" = "[SCE10001]创建平台失败:%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_platform_warn_1" = "[SCE10001]平台检查失败:%@,请检查是否实现 @selector(socialPlatformType),参考UMSocialPlatformConfig.h头文件说明。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_share_error_7" = "[SCE10007]出现报错2014,请使用 HTTPS 图片 URL。 https://developer.umeng.com/docs/66632/detail/67029?um_channel=sdk";
"core_info_1" = "[SCI10005]初始化平台参数中redirectURL参数的作用。 https://developer.umeng.com/docs/66632/detail/67027?um_channel=sdk";
"core_info_2" = "[SCI10006]分享/授权登录后如果无法返回应用(微信、QQ、微博等平台)。 https://developer.umeng.com/docs/66632/detail/67028?um_channel=sdk";
//core handle 协议相关
"core_auth_error_1" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_auth_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
//core模块获得用户资料相关
"core_getuserinfo_error_1" = "[SCE10001]未发现平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
//core模块分享相关
"core_share_error_1" = "[SCE10008]传入平台('%@')的UMSocialMessageObject类型参数messageObject的数据类型无效,请检查\n1.messageObject是否空。\n2.messageObject.text和messageObject.shareObject是否同时为空。 https://developer.umeng.com/docs/66632/detail/67030?um_channel=sdk";
"core_share_error_2" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_share_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现<UMSocialPlatformProvider>协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
"core_share_error_5" = "[SCE10001]未实现<UMSocialPlatformProvider>协议方法@selector(umSocial_ShareWithObject:withViewController:withCompletionHandler:):%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk";
// 分享面板
"ui_info_1" = "[SUII10002]当前操作相关提示:分享面板无法弹出。 https://developer.umeng.com/docs/66632/detail/67033?um_channel=sdk";
"ui_info_2" = "[SUII10003]分享面板图标不显示图片。 https://developer.umeng.com/docs/66632/detail/67034?um_channel=sdk";
"core_share_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk";
"core_auth_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk";
"core_getuserinfo_error_3" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk";
//wechat
"wechat_auth_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"wechat_share_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"wechat_share_error_2" = "[SCE10003]分享前,请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk";
"wechat_share_error_3" = "[SWE10001]当前的sdk不支持微信的OpenAPI,请更新最新的微信SDK。 https://developer.umeng.com/docs/66632/detail/67036?um_channel=sdk";
"wechat_share_error_4" = "[SWE10002]微信分享不支持的分享类型,微信的分享类型为:文本,图片,网络链接,音乐链接,视频链接,Gif表情,文件。 https://developer.umeng.com/docs/66632/detail/67037?um_channel=sdk";
"wechat_share_error_5" = "[SWE10003]下载UMShareImageObject的shareImage失败,请检查图片参数是否正确。(本地图片,请检查是否赋值,网络图片请检查是否为https,防止下载失败)。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareWebPage_warn_1" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareWebPage_warn_2" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareImage_warn_1" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
"wechat_shareImage_warn_2" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk";
// wechat info
"wechat_info_1" = "[SWI10004]分享面板中不显示微信。 https://developer.umeng.com/docs/66632/detail/67039?um_channel=sdk";
"wechat_info_2" = "[SWI10005]如何获取微信code。 https://developer.umeng.com/docs/66632/detail/67040?um_channel=sdk";
"wechat_info_3" = "[SWI10007]微信分享报错提示,请请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67042?um_channel=sdk";
"wechat_info_4" = "[SWI10008]微信授权登录提示该链接无法访问。 https://developer.umeng.com/docs/66632/detail/67043?um_channel=sdk";
"wechat_info_5" = "[SWI10009]微信分享报错'由于invalid_app无法分享到微信。 https://developer.umeng.com/docs/66632/detail/67044?um_channel=sdk";
//qq
"qq_auth_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"qq_auth_error_2" = "[SQE10001]授权失败,点击qq授权没有跳转,请查看是否设置了appid,查看初始化函数:[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:??? appSecret:nil redirectURL:???];。 https://developer.umeng.com/docs/66632/detail/67045?um_channel=sdk";
"qq_getuserinfo_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"qq_getuserinfo_info_1" = "[SCE10004]可设置获得用户信息时是否清除缓存,通过UMSocialGlobal的isClearCacheWhenGetUserInfo变量来改变,默认是每次都清除用户的授权缓存。 https://developer.umeng.com/docs/66632/detail/67026?um_channel=sdk";
"qq_share_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"qq_share_error_2" = "[SCE10003]请检查是否安装了QQ。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk";
"qq_share_error_3" = "[SQE10002]请检查当前的SDK是否支持API调用,如果不能请升级SDK或者QQ的版本。 https://developer.umeng.com/docs/66632/detail/67046?um_channel=sdk";
"qq_share_error_4" = "[SQE10003]QQ分享不支持的分享类型,QQ的分享类型为:文本,图片,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67047?um_channel=sdk";
"qq_shareWebPage_warn_1" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk";
"qq_shareWebPage_warn_2" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk";
//info
"qq_info_1" = "[SQI10005]QQ和TIM平台混淆问题。 https://developer.umeng.com/docs/66632/detail/67049?um_channel=sdk";
"qq_info_2" = "[SQI10006]QQ登录时显示的应用名如何设置。 https://developer.umeng.com/docs/66632/detail/67050?um_channel=sdk";
"qq_info_3" = "[SQI10007]QQ登录提示错误110406。 https://developer.umeng.com/docs/66632/detail/67051?um_channel=sdk";
"qq_info_4" = "[SQI10008]QQ报错 100008 client request's app is not existed。 https://developer.umeng.com/docs/66632/detail/67053?um_channel=sdk";
//sina
"sina_auth_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"sina_getuserinfo_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"sina_share_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
"sina_share_error_2" = "[SSE10001]新浪分享不支持的分享类型,新浪的分享类型为:文本,图片,图文,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67329?um_channel=sdk";
"sina_shareWebPage_error_1"="[SSE10002]新浪分享webpage类型(需要强制加入缩略图)错误,具体原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67054?um_channel=sdk";
"sina_shareText_Info_1" = "[SSI10003]新浪文本分享最大的字是140个,如果超过就不能分享成功,sdk默认开启截断功能,如果需要停止截断需要在调用分享前加入代码[UMSocialGlobal shareInstance].isTruncateShareText=NO。 https://developer.umeng.com/docs/66632/detail/67055?um_channel=sdk";
//info
"sina_info_1" = "[SSI10004]微博分享 网页(WebPage)类型,链接在微博只显示为'网页链接'的文字。 https://developer.umeng.com/docs/66632/detail/67056?um_channel=sdk";
"sina_info_2" = "[SSI10005]微博登录报错'sso package or sign error'。 https://developer.umeng.com/docs/66632/detail/67058?um_channel=sdk";
"sina_info_3" = "[SSI10006]微博授权实现关注官方微博功能。 https://developer.umeng.com/docs/66632/detail/67059?um_channel=sdk";
"sina_info_4" = "[SSI10007]微博报错 redirect url mismatch。 https://developer.umeng.com/docs/66632/detail/67060?um_channel=sdk";
// 钉钉支付宝
// info
"ding_error_1" = "[SDE10001]支付宝/钉钉返回鉴权失败。 https://developer.umeng.com/docs/66632/detail/67062?um_channel=sdk";
//facebook
"facebook_share_error_1" = "[SFE10001]facebook分享不支持的分享类型,facebook的分享类型为:文本,图片,网络链接,音乐链接,视频链接。(新版的facebook采用的是对话框的形式分享的,如果设置文本的话需要有publish_actions权限调用OpenAPI)。 https://developer.umeng.com/docs/66632/detail/67064?um_channel=sdk";
//error
"facebook_info_2" = "[SFI10002]FAQ: Facebook/Twitter分享点击分享后没有进入分享编辑页。 https://developer.umeng.com/docs/66632/detail/67065?um_channel=sdk";
"facebook_info_3" = "[SFE10003]FAQ: Facebook分享失败,提示missing publish_actions permissions。 https://developer.umeng.com/docs/66632/detail/67066?um_channel=sdk";
//twitter
"twitter_auth_error_1" = "[SCE10002]请检查是否设置了 Twitter 的 URLScheme。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk";
//info
"twitter_info_1" = "[STI10001]Twitter如何获取TokenSecret。 https://developer.umeng.com/docs/66632/detail/67068?um_channel=sdk";
"twitter_info_2" = "[STE10002]FAQ: Twitter 分享报错401。 https://developer.umeng.com/docs/66632/detail/67069?um_channel=sdk";
// --------- sdk 内 log
"core_version" = "UMShare版本号:%@。";
// 实现handler协议提示
"core_platform_warn_2" = "第三方或自定义平台异常:%@ > 未实现相应方法:@selector(umSocial_setAppKey:withAppSecret:withRedirectURL:)";
"core_auth_error_2" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_AuthorizeWithUserInfo:withViewController:withCompletionHandler:):%@";
"core_auth_error_3" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_cancelAuthWithCompletionHandler:):%@";
"core_auth_error_5" = "未实现<UMSocialPlatformProvider>协议方法@selector(umSocial_AuthorizeWithUserInfo:withCompletionHandler:):%@";
"core_getuserinfo_error_2" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_RequestForUserProfileWithViewController:completion:):%@";
"core_share_error_3" = "未实现第三方或自定义<UMSocialPlatformProvider>协议方法@selector(umSocial_ShareWithObject:withCompletionHandler:):%@";
//
// UMCommonLogHeaders.h
// UMCommonLog
//
// Created by 张军华 on 2017/12/4.
// Copyright © 2017年 张军华. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UMCommonLog/UMCommonLogManager.h>
//
// UMCommonLogManager.h
// testUMCommonLog
//
// Created by 张军华 on 2017/11/28.
// Copyright © 2017年 张军华. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMCommonLogManager : NSObject
+(void) setUpUMCommonLogManager;
@end
framework module UMCommonLog {
umbrella header "UMCommonLog.h"
export *
module * { export * }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment