Showing
88 changed files
with
0 additions
and
893 deletions
No preview for this file type
This file is too large to display.
1 | -/* | ||
2 | - * Licensed to the Apache Software Foundation (ASF) under one | ||
3 | - * or more contributor license agreements. See the NOTICE file | ||
4 | - * distributed with this work for additional information | ||
5 | - * regarding copyright ownership. The ASF licenses this file | ||
6 | - * to you under the Apache License, Version 2.0 (the | ||
7 | - * "License"); you may not use this file except in compliance | ||
8 | - * with the License. You may obtain a copy of the License at | ||
9 | - * | ||
10 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
11 | - * | ||
12 | - * Unless required by applicable law or agreed to in writing, | ||
13 | - * software distributed under the License is distributed on an | ||
14 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
15 | - * KIND, either express or implied. See the License for the | ||
16 | - * specific language governing permissions and limitations | ||
17 | - * under the License. | ||
18 | - */ | ||
19 | - | ||
20 | -#import <Foundation/Foundation.h> | ||
21 | - | ||
22 | -static NSString *const HTTPDNS_IOS_SDK_VERSION = @"1.17.3"; | ||
23 | - | ||
24 | -#import <Foundation/Foundation.h> | ||
25 | -#import "HttpdnsLoggerDelegate.h" | ||
26 | -#import "HttpdnsServiceProvider.h" | ||
27 | -#import "HttpdnsDegradationDelegate.h" |
1 | -/* | ||
2 | - * Licensed to the Apache Software Foundation (ASF) under one | ||
3 | - * or more contributor license agreements. See the NOTICE file | ||
4 | - * distributed with this work for additional information | ||
5 | - * regarding copyright ownership. The ASF licenses this file | ||
6 | - * to you under the Apache License, Version 2.0 (the | ||
7 | - * "License"); you may not use this file except in compliance | ||
8 | - * with the License. You may obtain a copy of the License at | ||
9 | - * | ||
10 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
11 | - * | ||
12 | - * Unless required by applicable law or agreed to in writing, | ||
13 | - * software distributed under the License is distributed on an | ||
14 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
15 | - * KIND, either express or implied. See the License for the | ||
16 | - * specific language governing permissions and limitations | ||
17 | - * under the License. | ||
18 | - */ | ||
19 | - | ||
20 | -#ifndef HttpdnsDegradationDelegate_h | ||
21 | -#define HttpdnsDegradationDelegate_h | ||
22 | - | ||
23 | -@protocol HttpDNSDegradationDelegate <NSObject> | ||
24 | - | ||
25 | -- (BOOL)shouldDegradeHTTPDNS:(NSString *)hostName; | ||
26 | - | ||
27 | -@end | ||
28 | - | ||
29 | -#endif /* HttpdnsDegradationDelegate_h */ |
1 | -// | ||
2 | -// HttpdnsLoggerProtocol.h | ||
3 | -// AlicloudHttpDNS | ||
4 | -// | ||
5 | -// Created by junmo on 2018/12/19. | ||
6 | -// Copyright © 2018年 alibaba-inc.com. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef HttpdnsLoggerProtocol_h | ||
10 | -#define HttpdnsLoggerProtocol_h | ||
11 | - | ||
12 | -#import <Foundation/Foundation.h> | ||
13 | - | ||
14 | -@protocol HttpdnsLoggerProtocol <NSObject> | ||
15 | - | ||
16 | -- (void)log:(NSString *)logStr; | ||
17 | - | ||
18 | -@end | ||
19 | - | ||
20 | -#endif /* HttpdnsLoggerProtocol_h */ |
1 | -/* | ||
2 | - * Licensed to the Apache Software Foundation (ASF) under one | ||
3 | - * or more contributor license agreements. See the NOTICE file | ||
4 | - * distributed with this work for additional information | ||
5 | - * regarding copyright ownership. The ASF licenses this file | ||
6 | - * to you under the Apache License, Version 2.0 (the | ||
7 | - * "License"); you may not use this file except in compliance | ||
8 | - * with the License. You may obtain a copy of the License at | ||
9 | - * | ||
10 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
11 | - * | ||
12 | - * Unless required by applicable law or agreed to in writing, | ||
13 | - * software distributed under the License is distributed on an | ||
14 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
15 | - * KIND, either express or implied. See the License for the | ||
16 | - * specific language governing permissions and limitations | ||
17 | - * under the License. | ||
18 | - */ | ||
19 | - | ||
20 | -#import <Foundation/Foundation.h> | ||
21 | -#import "HttpdnsDegradationDelegate.h" | ||
22 | -#import "HttpdnsLoggerDelegate.h" | ||
23 | - | ||
24 | -#define ALICLOUD_HTTPDNS_DEPRECATED(explain) __attribute__((deprecated(explain))) | ||
25 | - | ||
26 | -@interface HttpDnsService: NSObject | ||
27 | - | ||
28 | -@property (nonatomic, assign, readonly) int accountID; | ||
29 | -@property (nonatomic, copy, readonly) NSString *secretKey; | ||
30 | -@property (nonatomic, weak, setter=setDelegateForDegradationFilter:) id<HttpDNSDegradationDelegate> delegate; | ||
31 | - | ||
32 | -@property (nonatomic, assign) NSTimeInterval timeoutInterval; | ||
33 | - | ||
34 | -- (instancetype)autoInit; | ||
35 | - | ||
36 | -- (instancetype)initWithAccountID:(int)accountID; | ||
37 | - | ||
38 | -/*! | ||
39 | - * @brief 启用鉴权功能的初始化接口 | ||
40 | - * @details 初始化、开启鉴权功能,并设置 HTTPDNS 服务 Account ID,鉴权功能对应的 secretKey。 | ||
41 | - * 您可以从控制台获取您的 Account ID 、secretKey 信息。 | ||
42 | - * 此方法会初始化为单例。 | ||
43 | - * @param accountID 您的 HTTPDNS Account ID | ||
44 | - * @param secretKey 鉴权对应的 secretKey | ||
45 | - */ | ||
46 | -- (instancetype)initWithAccountID:(int)accountID secretKey:(NSString *)secretKey; | ||
47 | - | ||
48 | -/*! | ||
49 | - * @brief 校正 App 签名时间 | ||
50 | - * @param authCurrentTime 用于校正的时间戳,正整数。 | ||
51 | - * @details 不进行该操作,将以设备时间为准,为`(NSUInteger)[[NSDate date] timeIntervalSince1970]`。进行该操作后,如果有偏差,每次网络请求都会对设备时间进行矫正。 | ||
52 | - * @attention 校正操作在 APP 的一个生命周期内生效,APP 重启后需要重新设置才能重新生效。可以重复设置。 | ||
53 | - */ | ||
54 | -- (void)setAuthCurrentTime:(NSUInteger)authCurrentTime; | ||
55 | - | ||
56 | -+ (instancetype)sharedInstance; | ||
57 | - | ||
58 | -- (void)setCachedIPEnabled:(BOOL)enable; | ||
59 | - | ||
60 | -- (void)setPreResolveHosts:(NSArray *)hosts; | ||
61 | - | ||
62 | -- (NSString *)getIpByHostAsync:(NSString *)host; | ||
63 | - | ||
64 | -- (NSArray *)getIpsByHostAsync:(NSString *)host; | ||
65 | - | ||
66 | -- (NSString *)getIpByHostAsyncInURLFormat:(NSString *)host; | ||
67 | - | ||
68 | -- (void)setHTTPSRequestEnabled:(BOOL)enable; | ||
69 | - | ||
70 | -- (void)setExpiredIPEnabled:(BOOL)enable; | ||
71 | - | ||
72 | -- (void)setLogEnabled:(BOOL)enable; | ||
73 | - | ||
74 | -- (void)setPreResolveAfterNetworkChanged:(BOOL)enable; | ||
75 | - | ||
76 | -- (void)setIPRankingDatasource:(NSDictionary<NSString *, NSNumber *> *)IPRankingDatasource; | ||
77 | - | ||
78 | -- (void)setLogHandler:(id<HttpdnsLoggerProtocol>)logHandler; | ||
79 | - | ||
80 | -- (NSString *)getSessionId; | ||
81 | - | ||
82 | -- (void)enableIPv6:(BOOL)enable; | ||
83 | -- (NSString *)getIPv6ByHostAsync:(NSString *)host; | ||
84 | - | ||
85 | -@end | ||
86 | - | ||
87 | -@interface HttpDnsService (HttpdnsDeprecated) | ||
88 | - | ||
89 | -- (void)setAccountID:(int)accountID ALICLOUD_HTTPDNS_DEPRECATED("Deprecated in v1.5.2. Use -[HttpDnsService initWithAccountID:] instead."); | ||
90 | - | ||
91 | -@end |
No preview for this file type
1 | -// | ||
2 | -// ABSBootingProtection.h | ||
3 | -// AntilockBrakeSystem | ||
4 | -// | ||
5 | -// Created by 地风(ElonChan) on 16/5/16. | ||
6 | -// Copyright © 2016年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import <Foundation/Foundation.h> | ||
10 | - | ||
11 | -typedef void (^ABSBoolCompletionHandler)(BOOL succeeded, NSError *error); | ||
12 | -typedef void (^ABSRepairBlock)(ABSBoolCompletionHandler completionHandler); | ||
13 | -typedef void (^ABSReportBlock)(NSUInteger crashCounts); | ||
14 | - | ||
15 | -typedef NS_ENUM(NSInteger, ABSBootingProtectionStatus) { | ||
16 | - ABSBootingProtectionStatusNormal, /**< APP 启动正常 */ | ||
17 | - ABSBootingProtectionStatusNormalChecking, /**< 正在检测是否会在特定时间内是否会 Crash,注意:检测状态下“连续启动崩溃计数”个数小于或等于上限值 */ | ||
18 | - ABSBootingProtectionStatusNeedFix, /**< APP 出现连续启动 Crash,需要采取修复措施 */ | ||
19 | - ABSBootingProtectionStatusFixing, /**< APP 出现连续启动 Crash,正在修复中... */ | ||
20 | -}; | ||
21 | - | ||
22 | -/** | ||
23 | - * 启动连续 crash 保护。 | ||
24 | - * 启动后 `_crashOnLaunchTimeIntervalThreshold` 秒内 crash,反复超过 `_continuousCrashOnLaunchNeedToReport` 次则上报日志,超过 `_continuousCrashOnLaunchNeedToFix` 则启动修复操作。 | ||
25 | - */ | ||
26 | -@interface ABSBootingProtection : NSObject | ||
27 | - | ||
28 | -/** | ||
29 | - * 启动连续 crash 保护方法。 | ||
30 | - * 前置条件:在 App 启动时注册 crash 处理函数,在 crash 时调用[ABSBootingProtection addCrashCountIfNeeded]。 | ||
31 | - * 启动后一定时间内(`crashOnLaunchTimeIntervalThreshold`秒内)crash,反复超过一定次数(`continuousCrashOnLaunchNeedToReport`次)则上报日志,超过一定次数(`continuousCrashOnLaunchNeedToFix`次)则启动修复程序;在一定时间内(`crashOnLaunchTimeIntervalThreshold`秒) 秒后若没有 crash 将“连续启动崩溃计数”计数置零。 | ||
32 | - `reportBlock` 上报逻辑, | ||
33 | - `repairtBlock` 修复逻辑,完成后执行 `[self setCrashCount:0]` | ||
34 | - | ||
35 | - */ | ||
36 | -- (void)launchContinuousCrashProtect; | ||
37 | - | ||
38 | -/*! | ||
39 | - * 当前启动Crash的状态 | ||
40 | - */ | ||
41 | -@property (nonatomic, assign, readonly) ABSBootingProtectionStatus bootingProtectionStatus; | ||
42 | - | ||
43 | -/*! | ||
44 | - * 达到需要执行上报操作的“连续启动崩溃计数”个数。 | ||
45 | - */ | ||
46 | -@property (nonatomic, assign, readonly) NSUInteger continuousCrashOnLaunchNeedToReport; | ||
47 | - | ||
48 | -/*! | ||
49 | - * 达到需要执行修复操作的“连续启动崩溃计数”个数。 | ||
50 | - */ | ||
51 | -@property (nonatomic, assign, readonly) NSUInteger continuousCrashOnLaunchNeedToFix; | ||
52 | - | ||
53 | -/*! | ||
54 | - * APP 启动后经过多少秒,可以将“连续启动崩溃计数”清零 | ||
55 | - */ | ||
56 | -@property (nonatomic, assign, readonly) NSTimeInterval crashOnLaunchTimeIntervalThreshold; | ||
57 | - | ||
58 | -/*! | ||
59 | - * 借助 context 可以让多个模块注册事件,并且事件 block 能独立执行,互不干扰。 | ||
60 | - */ | ||
61 | -@property (nonatomic, copy, readonly) NSString *context; | ||
62 | - | ||
63 | -/*! | ||
64 | - * @details 启动后kCrashOnLaunchTimeIntervalThreshold秒内crash,反复超过continuousCrashOnLaunchNeedToReport次则上报日志,超过continuousCrashOnLaunchNeedToFix则启动修复程序;当所有操作完成后,执行 completion。在 crashOnLaunchTimeIntervalThreshold 秒后若没有 crash 将 kContinuousCrashOnLaunchCounterKey 计数置零。 | ||
65 | - * @param context 借助 context 可以让多个模块注册事件,并且事件 block 能独立执行,互不干扰。 | ||
66 | - */ | ||
67 | -- (instancetype)initWithContinuousCrashOnLaunchNeedToReport:(NSUInteger)continuousCrashOnLaunchNeedToReport | ||
68 | - continuousCrashOnLaunchNeedToFix:(NSUInteger)continuousCrashOnLaunchNeedToFix | ||
69 | - crashOnLaunchTimeIntervalThreshold:(NSTimeInterval)crashOnLaunchTimeIntervalThreshold | ||
70 | - context:(NSString *)context; | ||
71 | -/*! | ||
72 | - * 当前“连续启动崩溃“的状态 | ||
73 | - */ | ||
74 | -+ (ABSBootingProtectionStatus)bootingProtectionStatusWithContext:(NSString *)context continuousCrashOnLaunchNeedToFix:(NSUInteger)continuousCrashOnLaunchNeedToFix; | ||
75 | - | ||
76 | -/*! | ||
77 | - * 设置上报逻辑,参数 crashCounts 为启动连续 crash 次数 | ||
78 | - */ | ||
79 | -- (void)setReportBlock:(ABSReportBlock)reportBlock; | ||
80 | - | ||
81 | -/*! | ||
82 | - * 设置修复逻辑 | ||
83 | - */ | ||
84 | -- (void)setRepairBlock:(ABSRepairBlock)repairtBlock; | ||
85 | - | ||
86 | -@end |
1 | -// | ||
2 | -// ABSUncaughtExceptionHandler.h | ||
3 | -// AntilockBrakeSystem | ||
4 | -// | ||
5 | -// Created by 地风(ElonChan) on 16/5/16. | ||
6 | -// Copyright © 2016年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import <Foundation/Foundation.h> | ||
10 | -typedef void (^ABSUncaughtExceptionCallback)(NSException *exception); | ||
11 | - | ||
12 | -@interface ABSUncaughtExceptionHandler : NSObject | ||
13 | - | ||
14 | -+ (void)registerExceptionHandlerWithCallback:(ABSUncaughtExceptionCallback)callback; | ||
15 | - | ||
16 | -@end |
1 | -// | ||
2 | -// ABSUtil.h | ||
3 | -// AntilockBrakeSystem | ||
4 | -// | ||
5 | -// Created by 地风(ElonChan) on 16/5/16. | ||
6 | -// Copyright © 2016年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import <Foundation/Foundation.h> | ||
10 | - | ||
11 | -@interface ABSUtil : NSObject | ||
12 | - | ||
13 | -// 设置日志逻辑 | ||
14 | -+ (void)setLogger:(void (^)(NSString *))logger; | ||
15 | - | ||
16 | -+ (void)Logger:(NSString *)log; | ||
17 | - | ||
18 | -+ (BOOL)isValidString:(id)notValidString; | ||
19 | - | ||
20 | -+ (BOOL)isWhiteListClass:(Class)class; | ||
21 | - | ||
22 | -+ (void)deleteCacheWithfilePathsToRemove:(NSArray *)filePathsToRemove; | ||
23 | - | ||
24 | -@end |
1 | -// | ||
2 | -// AlicloudHTTPDNSMini.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by ryan on 3/6/2016. | ||
6 | -// Copyright © 2016 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef AlicloudHTTPDNSMini_h | ||
10 | -#define AlicloudHTTPDNSMini_h | ||
11 | - | ||
12 | -#define HTTPDNSMINI_RESOLVED_NOTIFY @"HTTPDNSMiniResolvedNotify" | ||
13 | - | ||
14 | -@interface AlicloudHTTPDNSMini : NSObject | ||
15 | - | ||
16 | -+ (AlicloudHTTPDNSMini *)sharedInstance; | ||
17 | -- (NSArray *)getIpsByHostAsync:(NSString *)host; | ||
18 | -- (void)setPreResolveHosts:(NSArray *)hosts; | ||
19 | - | ||
20 | -@end | ||
21 | - | ||
22 | -#endif /* AlicloudHTTPDNSMini_h */ |
1 | -/* | ||
2 | - * Copyright (c) 2000-2015 Apple Inc. All rights reserved. | ||
3 | - * | ||
4 | - * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | ||
5 | - * | ||
6 | - * This file contains Original Code and/or Modifications of Original Code | ||
7 | - * as defined in and that are subject to the Apple Public Source License | ||
8 | - * Version 2.0 (the 'License'). You may not use this file except in | ||
9 | - * compliance with the License. The rights granted to you under the License | ||
10 | - * may not be used to create, or enable the creation or redistribution of, | ||
11 | - * unlawful or unlicensed copies of an Apple operating system, or to | ||
12 | - * circumvent, violate, or enable the circumvention or violation of, any | ||
13 | - * terms of an Apple operating system software license agreement. | ||
14 | - * | ||
15 | - * Please obtain a copy of the License at | ||
16 | - * http://www.opensource.apple.com/apsl/ and read it before using this file. | ||
17 | - * | ||
18 | - * The Original Code and all software distributed under the License are | ||
19 | - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | ||
20 | - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | ||
21 | - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | ||
22 | - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | ||
23 | - * Please see the License for the specific language governing rights and | ||
24 | - * limitations under the License. | ||
25 | - * | ||
26 | - * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | ||
27 | - */ | ||
28 | -/* | ||
29 | - * Copyright (c) 1980, 1986, 1993 | ||
30 | - * The Regents of the University of California. All rights reserved. | ||
31 | - * | ||
32 | - * Redistribution and use in source and binary forms, with or without | ||
33 | - * modification, are permitted provided that the following conditions | ||
34 | - * are met: | ||
35 | - * 1. Redistributions of source code must retain the above copyright | ||
36 | - * notice, this list of conditions and the following disclaimer. | ||
37 | - * 2. Redistributions in binary form must reproduce the above copyright | ||
38 | - * notice, this list of conditions and the following disclaimer in the | ||
39 | - * documentation and/or other materials provided with the distribution. | ||
40 | - * 3. All advertising materials mentioning features or use of this software | ||
41 | - * must display the following acknowledgement: | ||
42 | - * This product includes software developed by the University of | ||
43 | - * California, Berkeley and its contributors. | ||
44 | - * 4. Neither the name of the University nor the names of its contributors | ||
45 | - * may be used to endorse or promote products derived from this software | ||
46 | - * without specific prior written permission. | ||
47 | - * | ||
48 | - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
49 | - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
50 | - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
51 | - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
52 | - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
53 | - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
54 | - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
55 | - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
56 | - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
57 | - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
58 | - * SUCH DAMAGE. | ||
59 | - * | ||
60 | - * @(#)route.h 8.3 (Berkeley) 4/19/94 | ||
61 | - * $FreeBSD: src/sys/net/route.h,v 1.36.2.1 2000/08/16 06:14:23 jayanth Exp $ | ||
62 | - */ | ||
63 | - | ||
64 | - | ||
65 | -#ifndef AlicloudIPv6Adapter_h | ||
66 | -#define AlicloudIPv6Adapter_h | ||
67 | -#import <Foundation/Foundation.h> | ||
68 | - | ||
69 | -@interface AlicloudIPv6Adapter : NSObject | ||
70 | - | ||
71 | -+ (instancetype)getInstance; | ||
72 | - | ||
73 | -/** | ||
74 | - * 判断当前是否为IPv6-Only网络 | ||
75 | - */ | ||
76 | -- (BOOL)isIPv6OnlyNetwork; | ||
77 | - | ||
78 | -/** | ||
79 | - * 手动刷新IPv6-Only网络的判定 | ||
80 | - */ | ||
81 | -- (BOOL)reResolveIPv6OnlyStatus; | ||
82 | - | ||
83 | -/** | ||
84 | - IPv4 > IPv6地址转换\n | ||
85 | - - 输入IPv4地址无效,返回原地址 | ||
86 | - - IPv6-Only网络,返回转换后的IPv6地址 | ||
87 | - - 非IPv6-Only网络,返回原地址 | ||
88 | - | ||
89 | - @param addr IPv4地址 | ||
90 | - @return 转换后的v6地址 或 原地址 | ||
91 | - */ | ||
92 | -- (NSString *)handleIpv4Address:(NSString *)addr; | ||
93 | - | ||
94 | -/** | ||
95 | - * 判断是否为IPv4地址 | ||
96 | - */ | ||
97 | -- (BOOL)isIPv4Address:(NSString *)addr; | ||
98 | - | ||
99 | -/** | ||
100 | - * 判断是否为IPv6地址 | ||
101 | - */ | ||
102 | -- (BOOL)isIPv6Address:(NSString *)addr; | ||
103 | - | ||
104 | -@end | ||
105 | - | ||
106 | -#endif /* AlicloudIPv6Adapter_h */ |
1 | -// | ||
2 | -// AlicloudReachabilityManager.h | ||
3 | -// | ||
4 | -// Created by 亿刀 on 14-1-9. | ||
5 | -// Edited by junmo on 15-5-16 | ||
6 | -// Copyright (c) 2014年 Twitter. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import <Foundation/Foundation.h> | ||
10 | -#import <CoreTelephony/CTTelephonyNetworkInfo.h> | ||
11 | - | ||
12 | -#define ALICLOUD_NETWOEK_STATUS_NOTIFY @"AlicloudNetworkStatusChangeNotify" | ||
13 | - | ||
14 | -typedef enum { | ||
15 | - AlicloudNotReachable = 0, | ||
16 | - AlicloudReachableViaWiFi, | ||
17 | - AlicloudReachableVia2G, | ||
18 | - AlicloudReachableVia3G, | ||
19 | - AlicloudReachableVia4G | ||
20 | -} AlicloudNetworkStatus; | ||
21 | - | ||
22 | -@interface AlicloudReachabilityManager : NSObject | ||
23 | - | ||
24 | -/** | ||
25 | - * 获取Reachability单例对象 | ||
26 | - */ | ||
27 | -+ (AlicloudReachabilityManager *)shareInstance; | ||
28 | - | ||
29 | -/** | ||
30 | - * 获取Reachability单例对象,为保证全局维护一个netInfo实例,可从外部传入netInfo对象的引用 | ||
31 | - * warn: netInfo多次实例化,有一定几率crash | ||
32 | - * | ||
33 | - */ | ||
34 | -+ (AlicloudReachabilityManager *)shareInstanceWithNetInfo:(CTTelephonyNetworkInfo *)netInfo; | ||
35 | - | ||
36 | -/** | ||
37 | - * 返回当前网络状态(同步调用,可能会阻塞调用线程) | ||
38 | - */ | ||
39 | -- (AlicloudNetworkStatus)currentNetworkStatus; | ||
40 | - | ||
41 | -/** | ||
42 | - * 返回之前网络状态 | ||
43 | - */ | ||
44 | -- (AlicloudNetworkStatus)preNetworkStatus; | ||
45 | - | ||
46 | -/** | ||
47 | - * 检测网络是否连通(同步调用,阻塞调用线程) | ||
48 | - */ | ||
49 | -- (BOOL)checkInternetConnection; | ||
50 | - | ||
51 | -/** | ||
52 | - * 检测Wifi网络是否联通 | ||
53 | - */ | ||
54 | -- (BOOL)isReachableViaWifi; | ||
55 | - | ||
56 | -/** | ||
57 | - * 检测蜂窝网络是否联通 | ||
58 | - */ | ||
59 | -- (BOOL)isReachableViaWWAN; | ||
60 | - | ||
61 | -@end |
1 | -// | ||
2 | -// AlicloudReport.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by ryan on 3/6/2016. | ||
6 | -// Copyright © 2016 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef AlicloudReport_h | ||
10 | -#define AlicloudReport_h | ||
11 | - | ||
12 | -extern const NSString *EXT_INFO_KEY_VERSION; | ||
13 | -extern const NSString *EXT_INFO_KEY_PACKAGE; | ||
14 | - | ||
15 | -// SDK标识 | ||
16 | -typedef NS_ENUM(NSInteger, AMSService) { | ||
17 | - AMSMAN = 0, | ||
18 | - AMSHTTPDNS, | ||
19 | - AMSMPUSH, | ||
20 | - AMSMAC, | ||
21 | - AMSAPI, | ||
22 | - AMSHOTFIX, | ||
23 | - AMSFEEDBACK, | ||
24 | - AMSIM | ||
25 | -}; | ||
26 | - | ||
27 | -// 上报状态 | ||
28 | -typedef NS_ENUM(NSInteger, AMSReportStatus) { | ||
29 | - AMS_UNREPORTED_STATUS, | ||
30 | - AMS_REPORTED_STATUS | ||
31 | -}; | ||
32 | - | ||
33 | -@interface AlicloudReport : NSObject | ||
34 | - | ||
35 | -/** | ||
36 | - * 异步上报活跃设备统计 | ||
37 | - * | ||
38 | - @param tag SDK标识 | ||
39 | - */ | ||
40 | -+ (void)statAsync:(AMSService)tag; | ||
41 | - | ||
42 | -/** | ||
43 | - * 异步上报活跃设备统计并携带附加信息 | ||
44 | - * | ||
45 | - @param tag SDK标识 | ||
46 | - @param extInfo 附加上报信息 { EXT_INFO_KEY_VERSION :"x.x.x", EXT_INFO_KEY_PACKAGE: "xxx"} | ||
47 | - */ | ||
48 | -+ (void)statAsync:(AMSService)tag extInfo:(NSDictionary *)extInfo; | ||
49 | - | ||
50 | -/** | ||
51 | - * 获取指定SDK标识上报状态 | ||
52 | - * | ||
53 | - @param tag SDK标识 | ||
54 | - @return 返回上报状态 | ||
55 | - */ | ||
56 | -+ (AMSReportStatus)getReportStatus:(AMSService)tag; | ||
57 | - | ||
58 | -/** | ||
59 | - * 获取上报状态(兼容老版本接口) | ||
60 | - * | ||
61 | - @param tag SDK标识 | ||
62 | - @return YES:已经上报 NO:没有上报 | ||
63 | - */ | ||
64 | -+ (BOOL)isDeviceReported:(AMSService)tag; | ||
65 | - | ||
66 | -@end | ||
67 | - | ||
68 | -#endif /* AlicloudReport_h */ |
1 | -// | ||
2 | -// AlicloudTracker.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 2017/6/30. | ||
6 | -// Copyright © 2017年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef AlicloudTracker_h | ||
10 | -#define AlicloudTracker_h | ||
11 | - | ||
12 | -@interface AlicloudTracker : NSObject | ||
13 | - | ||
14 | -@property (nonatomic, copy) NSString *sdkId; | ||
15 | -@property (nonatomic, copy) NSString *sdkVersion; | ||
16 | - | ||
17 | -/** | ||
18 | - 设置Tracker的通用打点属性,每次上报都携带该参数 | ||
19 | - | ||
20 | - @param key 通用属性Key | ||
21 | - @param value 通用属性Value | ||
22 | - */ | ||
23 | -- (void)setGlobalProperty:(NSString *)key value:(NSString *)value; | ||
24 | - | ||
25 | -/** | ||
26 | - 删除Tracker通用打点属性 | ||
27 | - | ||
28 | - @param key 通用属性Key | ||
29 | - */ | ||
30 | -- (void)removeGlobalProperty:(NSString *)key; | ||
31 | - | ||
32 | -/** | ||
33 | - 自定义打点上报 | ||
34 | - | ||
35 | - @param eventName 事件名 | ||
36 | - @param duration 时长 | ||
37 | - @param properties 额外参数 | ||
38 | - */ | ||
39 | -- (void)sendCustomHit:(NSString *)eventName | ||
40 | - duration:(long long)duration | ||
41 | - properties:(NSDictionary *)properties; | ||
42 | - | ||
43 | -@end | ||
44 | -#endif /* AlicloudTracker_h */ |
1 | -// | ||
2 | -// AlicloudTrackerManager.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 2017/7/4. | ||
6 | -// Copyright © 2017年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef AlicloudTrackerManager_h | ||
10 | -#define AlicloudTrackerManager_h | ||
11 | - | ||
12 | -#import "AlicloudTracker.h" | ||
13 | - | ||
14 | -@interface AlicloudTrackerManager : NSObject | ||
15 | - | ||
16 | -/** | ||
17 | - 获取上报通道管理器对象,并初始化UT | ||
18 | - | ||
19 | - @return 管理器对象 | ||
20 | - */ | ||
21 | -+ (instancetype)getInstance; | ||
22 | - | ||
23 | -/** | ||
24 | - 根据SDK标识和版本号获取上报通道 | ||
25 | - | ||
26 | - @param sdkId SDK标识 | ||
27 | - @param version SDK版本号 | ||
28 | - @return 上报通道对象 | ||
29 | - */ | ||
30 | -- (AlicloudTracker *)getTrackerBySdkId:(NSString *)sdkId version:(NSString *)version; | ||
31 | - | ||
32 | -@end | ||
33 | - | ||
34 | -#endif /* AlicloudTrackerManager_h */ |
1 | -// | ||
2 | -// AlicloudUtils.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by lingkun on 16/5/16. | ||
6 | -// Copyright © 2016年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#import <UIKit/UIKit.h> | ||
10 | - | ||
11 | -#define ALICLOUDUTILS_VERSION @"1.3.6" | ||
12 | - | ||
13 | -// In this header, you should import all the public headers of your framework using statements like #import <AlicloudUtils/PublicHeader.h> | ||
14 | - | ||
15 | -#import <AlicloudUtils/AlicloudReachabilityManager.h> | ||
16 | -#import <AlicloudUtils/EMASSecurityModeManager.h> | ||
17 | -#import <AlicloudUtils/EMASSecurityModeCommon.h> | ||
18 | -#import <AlicloudUtils/AlicloudTrackerManager.h> | ||
19 | -#import <AlicloudUtils/AlicloudIPv6Adapter.h> | ||
20 | -#import <AlicloudUtils/AlicloudHTTPDNSMini.h> | ||
21 | -#import <AlicloudUtils/AntilockBrakeSystem.h> | ||
22 | -#import <AlicloudUtils/EMASBeaconService.h> | ||
23 | -#import <AlicloudUtils/AlicloudTracker.h> | ||
24 | -#import <AlicloudUtils/AlicloudReport.h> | ||
25 | -#import <AlicloudUtils/EMASOptions.h> | ||
26 | -#import <AlicloudUtils/EMASTools.h> | ||
27 | -#import <AlicloudUtils/UtilLog.h> |
1 | -// | ||
2 | -// EMASBeaconService.h | ||
3 | -// AlicloudBeacon | ||
4 | -// | ||
5 | -// Created by junmo on 2017/7/6. | ||
6 | -// Copyright © 2017年 junmo. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef EMASBeaconService_h | ||
10 | -#define EMASBeaconService_h | ||
11 | - | ||
12 | -@interface EMASBeaconConfiguration : NSObject | ||
13 | - | ||
14 | -- (instancetype)initWithData:(NSData *)data; | ||
15 | -- (id)getConfigureItemByKey:(NSString *)key; | ||
16 | - | ||
17 | -@end | ||
18 | - | ||
19 | -typedef void (^AlicloudBeaconCallbackHandler)(BOOL res, NSError *error); | ||
20 | - | ||
21 | -@interface EMASBeaconService : NSObject | ||
22 | - | ||
23 | -- (instancetype)initWithAppKey:(NSString *)appKey | ||
24 | - appSecret:(NSString *)appSecret | ||
25 | - SDKVersion:(NSString *)SDKVersion | ||
26 | - SDKID:(NSString *)SDKID; | ||
27 | - | ||
28 | -- (instancetype)initWithAppKey:(NSString *)appKey | ||
29 | - appSecret:(NSString *)appSecret | ||
30 | - SDKVersion:(NSString *)SDKVersion | ||
31 | - SDKID:(NSString *)SDKID | ||
32 | - extension:(NSDictionary *)extension; | ||
33 | - | ||
34 | -- (void)enableLog:(BOOL)enabled; | ||
35 | -- (BOOL)isLogEnabled; | ||
36 | - | ||
37 | -//- (void)getBeaconConfigByKey:(NSString *)key | ||
38 | -// completionHandler:(void(^)(EMASBeaconConfiguration *configuration, NSError *error))completionHandler; | ||
39 | - | ||
40 | -- (void)getBeaconConfigStringByKey:(NSString *)key | ||
41 | - completionHandler:(void(^)(NSString *result, NSError *error))completionHandler; | ||
42 | - | ||
43 | -@end | ||
44 | - | ||
45 | -#endif /* EMASBeaconService_h */ |
1 | -// | ||
2 | -// EMASOptions.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 2018/3/16. | ||
6 | -// Copyright © 2018年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef EMASOptions_h | ||
10 | -#define EMASOptions_h | ||
11 | - | ||
12 | -@interface EMASOptionSDKServiceItem : NSObject | ||
13 | - | ||
14 | -@property (nonatomic, copy) NSString *sdkId; | ||
15 | -@property (nonatomic, copy) NSString *version; | ||
16 | -@property (nonatomic, assign) NSNumber *status; | ||
17 | - | ||
18 | -@end | ||
19 | - | ||
20 | -@interface EMASOptions : NSObject | ||
21 | - | ||
22 | -@property (nonatomic, copy, readonly) NSString *emasAppKey; | ||
23 | -@property (nonatomic, copy, readonly) NSString *emasAppSecret; | ||
24 | -@property (nonatomic, copy, readonly) NSString *emasBundleId; | ||
25 | -@property (nonatomic, copy, readonly) NSString *hotfixIdSecret; | ||
26 | -@property (nonatomic, copy, readonly) NSString *hotfixRsaSecret; | ||
27 | -@property (nonatomic, copy, readonly) NSString *httpdnsAccountId; | ||
28 | -@property (nonatomic, copy, readonly) NSString *httpdnsSecretKey; | ||
29 | - | ||
30 | -+ (EMASOptions *)defaultOptions; | ||
31 | -- (NSString *)optionByConfigKey:(NSString *)key; | ||
32 | -- (EMASOptionSDKServiceItem *)sdkServiceItemForSdkId:(NSString *)sdkId; | ||
33 | - | ||
34 | -@end | ||
35 | - | ||
36 | -#endif /* EMASOptions_h */ |
1 | -// | ||
2 | -// EMASSecurityModeCommon.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 2018/3/11. | ||
6 | -// Copyright © 2018年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef EMASSecurityModeCommon_h | ||
10 | -#define EMASSecurityModeCommon_h | ||
11 | - | ||
12 | -typedef void (^SDKCheckSuccessHandler)(void); | ||
13 | -typedef void (^SDKCheckCrashHandler)(NSUInteger crashCount); | ||
14 | - | ||
15 | -#endif /* EMASSecurityModeCommon_h */ |
1 | -// | ||
2 | -// EMASSecurityModeManager.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 2018/3/10. | ||
6 | -// Copyright © 2018年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef EMASSecurityModeManager_h | ||
10 | -#define EMASSecurityModeManager_h | ||
11 | - | ||
12 | -#import "EMASSecurityModeCommon.h" | ||
13 | - | ||
14 | -@interface EMASSecurityModeManager : NSObject | ||
15 | - | ||
16 | -+ (instancetype)sharedInstance; | ||
17 | - | ||
18 | -- (void)registerSDKComponentAndStartCheck:(NSString *)sdkId | ||
19 | - sdkVersion:(NSString *)sdkVersion | ||
20 | - appKey:(NSString *)appKey | ||
21 | - appSecret:(NSString *)appSecret | ||
22 | - sdkCrashThreshold:(NSUInteger)crashTimesThreshold | ||
23 | - onSuccess:(SDKCheckSuccessHandler)successHandler | ||
24 | - onCrash:(SDKCheckCrashHandler)crashHandler; | ||
25 | - | ||
26 | -@end | ||
27 | - | ||
28 | -#endif /* EMASSecurityModeManager_h */ |
1 | -// | ||
2 | -// EMASTools.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 2018/3/14. | ||
6 | -// Copyright © 2018年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef EMASTools_h | ||
10 | -#define EMASTools_h | ||
11 | - | ||
12 | -#define EMAS_SYNC_EXECUTE_BY_KEY(key, executor)\ | ||
13 | -[EMASTools syncExecuteBlockByKey:key block:executor];\ | ||
14 | - | ||
15 | -#define EMAS_SYNC_EXECUTE_BY_QUEUE(queue, executor)\ | ||
16 | -[EMASTools syncExecuteBlockByQueue:queue block:executor];\ | ||
17 | - | ||
18 | -@interface EMASTools : NSObject | ||
19 | - | ||
20 | -+ (BOOL)isValidString:(id)obj; | ||
21 | -+ (BOOL)isValidDictionary:(id)obj; | ||
22 | -+ (BOOL)isValidArray:(id)obj; | ||
23 | - | ||
24 | -+ (NSString *)md5:(NSString *)str; | ||
25 | -+ (NSString *)sha1:(NSString *)str; | ||
26 | -+ (NSString *)hmacSha1:(NSString *)str key:(NSString *)key; | ||
27 | -+ (NSString *)base64EncodedWithString:(NSString *)str; | ||
28 | -+ (NSString *)base64DecodedWithString:(NSString *)base64Str; | ||
29 | -+ (NSData *)aes128CBCEncrypt:(NSData *)data key:(NSData *)key iv:(char *)iv; | ||
30 | -+ (NSString *)URLEncodedString:(NSString *)str; | ||
31 | - | ||
32 | -+ (NSString *)convertObjectToJsonString:(id)obj; | ||
33 | -+ (id)convertJsonStringToObject:(NSString *)jsonStr; | ||
34 | -+ (id)convertJsonDataToObject:(NSData *)jsonData; | ||
35 | - | ||
36 | -+ (NSString *)convertDateToGMT0String:(NSDate *)date; | ||
37 | -+ (NSString *)convertDateToGMT8String:(NSDate *)date; | ||
38 | - | ||
39 | -+ (void)swizzleClassMethod:(Class)cls originSEL:(SEL)originSEL swizzleSEL:(SEL)swizzleSEL; | ||
40 | -+ (void)swizzleInstanceMethod:(Class)cls originSEL:(SEL)originSEL swizzleSEL:(SEL)swizzleSEL; | ||
41 | - | ||
42 | -+ (BOOL)isIPv4Address:(NSString *)addr; | ||
43 | -+ (BOOL)isIPv6Address:(NSString *)addr; | ||
44 | - | ||
45 | -+ (dispatch_queue_t)createQueueIfNotExists:(NSString *)key; | ||
46 | -+ (void)syncExecuteBlockByKey:(NSString *)key block:(void(^)(void))block; | ||
47 | -+ (void)syncExecuteBlockByQueue:(dispatch_queue_t)queue block:(void(^)(void))block; | ||
48 | - | ||
49 | -+ (NSString *)bundleIdForApp; | ||
50 | -+ (NSString *)deviceBrand; | ||
51 | -+ (NSString *)deviceModel; | ||
52 | - | ||
53 | -+ (void)threadWaitForSec:(double)sec; | ||
54 | - | ||
55 | -@end | ||
56 | - | ||
57 | -#endif /* EMASTools_h */ |
1 | -// | ||
2 | -// UtilLog.h | ||
3 | -// AlicloudUtils | ||
4 | -// | ||
5 | -// Created by junmo on 16/11/24. | ||
6 | -// Copyright © 2016年 Ali. All rights reserved. | ||
7 | -// | ||
8 | - | ||
9 | -#ifndef UtilLog_h | ||
10 | -#define UtilLog_h | ||
11 | - | ||
12 | -@interface UtilLog : NSObject | ||
13 | - | ||
14 | -+ (void)enableLog; | ||
15 | - | ||
16 | -+ (BOOL)isLogEnabled; | ||
17 | - | ||
18 | -#define UtilLogD(tag, frmt, ...)\ | ||
19 | -if ([UtilLog isLogEnabled]) {\ | ||
20 | -NSLog(@"[%@]-[D]: %@", tag, [NSString stringWithFormat:(frmt), ##__VA_ARGS__]);\ | ||
21 | -} | ||
22 | - | ||
23 | -#define UtilLogI(tag, frmt, ...)\ | ||
24 | -if ([UtilLog isLogEnabled]) {\ | ||
25 | -NSLog(@"[%@]-[I]: %@", tag, [NSString stringWithFormat:(frmt), ##__VA_ARGS__]);\ | ||
26 | -} | ||
27 | - | ||
28 | -#define UtilLogE(tag, frmt, ...)\ | ||
29 | -if ([UtilLog isLogEnabled]) {\ | ||
30 | -NSLog(@"[%@]-[E]: %@", tag, [NSString stringWithFormat:(frmt), ##__VA_ARGS__]);\ | ||
31 | -} | ||
32 | -@end | ||
33 | - | ||
34 | -#endif /* UtilLog_h */ |
This file is too large to display.
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
-
Please register or login to post a comment