Browse Source

Merge branch 'master' of https://git.yishihui.com/iOS/BFFramework

# Conflicts:
#	BFFramework.podspec
#	BFFramework/Classes/BFFramework_custom_umbrella.h
合并代码
jsonwang 3 years ago
parent
commit
84da92f9e4
54 changed files with 2271 additions and 1330 deletions
  1. 8 2
      BFFramework.podspec
  2. 3 1
      BFFramework/Classes/BFFramework_custom_umbrella.h
  3. 30 16
      BFFramework/Classes/Categorys/UIImage+Ext.swift
  4. 14 4
      BFFramework/Classes/Stuckpoint/View/PQStuckPointLoadingView.swift
  5. 8 0
      BFFramework/Classes/Utils/PQBFConfig.swift
  6. 25 17
      BFFramework/Classes/Utils/PQPHAssetVideoParaseUtil.swift
  7. 99 24
      BFFramework/Classes/Utils/PQThirdPlatformUtil.swift
  8. 18 1
      Example/Podfile.lock
  9. 12 0
      Example/Pods/Local Podspecs/BFFramework.podspec.json
  10. 18 1
      Example/Pods/Manifest.lock
  11. 1356 1258
      Example/Pods/Pods.xcodeproj/project.pbxproj
  12. 1 1
      Example/Pods/Target Support Files/BFFramework/BFFramework.debug.xcconfig
  13. 1 1
      Example/Pods/Target Support Files/BFFramework/BFFramework.release.xcconfig
  14. 20 0
      Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example-acknowledgements.markdown
  15. 44 0
      Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example-acknowledgements.plist
  16. 3 2
      Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example.debug.xcconfig
  17. 3 2
      Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example.release.xcconfig
  18. 14 0
      Example/Pods/Target Support Files/UMAPM/UMAPM.debug.xcconfig
  19. 14 0
      Example/Pods/Target Support Files/UMAPM/UMAPM.release.xcconfig
  20. 13 0
      Example/Pods/Target Support Files/UMCSecurityPlugins/UMCSecurityPlugins.debug.xcconfig
  21. 13 0
      Example/Pods/Target Support Files/UMCSecurityPlugins/UMCSecurityPlugins.release.xcconfig
  22. 13 0
      Example/Pods/Target Support Files/UMCommon/UMCommon.debug.xcconfig
  23. 13 0
      Example/Pods/Target Support Files/UMCommon/UMCommon.release.xcconfig
  24. 12 0
      Example/Pods/Target Support Files/UMDevice/UMDevice.debug.xcconfig
  25. 12 0
      Example/Pods/Target Support Files/UMDevice/UMDevice.release.xcconfig
  26. 25 0
      Example/Pods/UMAPM/UMAPM_1.2.1/UMAPM.framework/Headers/UMCrashConfigure.h
  27. BIN
      Example/Pods/UMAPM/UMAPM_1.2.1/UMAPM.framework/Info.plist
  28. BIN
      Example/Pods/UMAPM/UMAPM_1.2.1/UMAPM.framework/UMAPM
  29. 0 0
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/1.0.6_7e4af54c27fe03856bc628f6c86e7c3020180117
  30. 15 0
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Headers/EnvExport.h
  31. 21 0
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Headers/ISecurityEnvInitListener.h
  32. 27 0
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Headers/SecurityEnvSDK.h
  33. 12 0
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Info.plist
  34. 6 0
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Modules/module.modulemap
  35. BIN
      Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/SecurityEnvSDK
  36. 0 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/1.1.0_284361e9aad9bf95a33916c655ecefb720180108
  37. 1 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Headers
  38. 1 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Resources
  39. 1 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID
  40. 23 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/Headers/AidProtocol.h
  41. 56 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/Headers/UTDevice.h
  42. BIN
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/Resources/Info.plist
  43. BIN
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/UTDID
  44. 1 0
      Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/Current
  45. 1 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/7.2.9_0525a1b5fe_20210518142839
  46. 1 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Headers
  47. 1 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/UMCommon
  48. 221 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/Headers/MobClick.h
  49. 19 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/Headers/UMCommon.h
  50. 45 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/Headers/UMConfigure.h
  51. BIN
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/UMCommon
  52. 1 0
      Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/Current
  53. 26 0
      Example/Pods/UMDevice/UMDevice_1.2.0/UMDevice.framework/Headers/umzid.h
  54. BIN
      Example/Pods/UMDevice/UMDevice_1.2.0/UMDevice.framework/UMDevice

+ 8 - 2
BFFramework.podspec

@@ -61,11 +61,17 @@ TODO: Add long description of the pod here.
     s.dependency 'MJRefresh','3.5.0' # 刷新组件
     s.dependency 'FDFullscreenPopGesture' ,'1.1'
     s.dependency 'LMJHorizontalScrollText' ,'2.0.2'
-
     s.dependency 'Bugly','2.5.71' # 奔溃分析组件
-
+ 
     s.dependency 'TXLiteAVSDK_Player','8.4.9944' # 腾讯播放器组件
 
     s.dependency "NXFramework-Swift"
     s.dependency 'KingfisherWebP','0.4.2' # 加载WebP格式图片库 使用https://github.com/webmproject/libwebp.git地址可以不翻
+  
+    s.dependency 'UMCommon','7.2.9'
+    s.dependency 'UMDevice','1.2.0'
+    s.dependency 'UMCSecurityPlugins','1.0.6'
+    s.dependency 'UMAPM','1.2.1'
+ 
+ 
 end

+ 3 - 1
BFFramework/Classes/BFFramework_custom_umbrella.h

@@ -17,7 +17,9 @@
 #import "LMJHorizontalScrollText/LMJHorizontalScrollText.h"
 #import "FBShimmeringView.h"
 #import "UIControl+NXCategory.h"
-
 #import <TXLiteAVSDK_Player/TXLiteAVSDK.h>
+ 
+#import <UMCommon/UMCommon.h>
+#import <UMCommon/MobClick.h>
 
 #endif /* AliyunOSSiOS_Bridging_Header */

+ 30 - 16
BFFramework/Classes/Categorys/UIImage+Ext.swift

@@ -8,17 +8,14 @@
 
 import Foundation
 
-extension UIImage {
-    
-    //从BFframwork bundle 中取图片
-    public func BF_Image(named:String) -> UIImage {
-  
-        let image:UIImage = UIImage.init(named: named, in:  Bundle.init().BF_mainbundle(), compatibleWith: nil) ?? UIImage.init()
+public extension UIImage {
+    // 从BFframwork bundle 中取图片
+    func BF_Image(named: String) -> UIImage {
+        let image: UIImage = UIImage(named: named, in: Bundle().BF_mainbundle(), compatibleWith: nil) ?? UIImage()
         return image
-        
     }
- 
-    public func cropImage(ratio: CGFloat) -> UIImage {
+
+    func cropImage(ratio: CGFloat) -> UIImage {
         // 计算最终尺寸
         let newSize: CGSize = CGSize(width: size.width, height: size.width * ratio)
         // 图片绘制区域
@@ -36,7 +33,7 @@ extension UIImage {
         return scaledImage!
     }
 
-    public func cropImage(newSize: CGSize) -> UIImage {
+    func cropImage(newSize: CGSize) -> UIImage {
         //// 图片绘制区域
         var rect = CGRect.zero
         rect.size.width = newSize.width
@@ -50,7 +47,7 @@ extension UIImage {
         return scaledImage!
     }
 
-    public func imageWithImage(scaledToSize newSize: CGSize) -> UIImage {
+    func imageWithImage(scaledToSize newSize: CGSize) -> UIImage {
         UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
         draw(in: CGRect(origin: CGPoint.zero, size: newSize))
         let newImage = UIGraphicsGetImageFromCurrentImageContext() ?? self
@@ -61,7 +58,7 @@ extension UIImage {
     /// 旋转角度
     /// - Parameter image: <#image description#>
     /// - Returns: <#description#>
-    public func rotateImage(rotate: Int, originWidth: CGFloat, originHeight: CGFloat) -> UIImage {
+    func rotateImage(rotate: Int, originWidth: CGFloat, originHeight: CGFloat) -> UIImage {
         let rotate: CGFloat = CGFloat(3 * Double.pi / 2)
         let rect = CGRect(x: 0, y: 0, width: originWidth, height: originHeight)
         let translateX: CGFloat = -rect.size.height
@@ -85,7 +82,7 @@ extension UIImage {
     ///   - tintColor: <#tintColor description#>
     ///   - convert:是否倒置
     /// - Returns: <#description#>
-    public class  func triangleImage(size: CGSize, tintColor: UIColor, direction: moveDirection = .moveDirectionDown) -> UIImage {
+    class func triangleImage(size: CGSize, tintColor: UIColor, direction: moveDirection = .moveDirectionDown) -> UIImage {
         var startPoint: CGPoint = CGPoint.zero
         var middlePoint: CGPoint = CGPoint.zero
         var endPoint: CGPoint = CGPoint.zero
@@ -123,7 +120,7 @@ extension UIImage {
 
     /// 按照最短边缩放  add by ak
     /// - Parameter maxLength: 边长最大值
-    public func nx_scaleWithMaxLength(maxLength: CGFloat) -> UIImage {
+    func nx_scaleWithMaxLength(maxLength: CGFloat) -> UIImage {
         if size.width > maxLength || size.height > maxLength {
             var maxWidth: CGFloat = maxLength
             var maxHeight: CGFloat = maxLength
@@ -149,7 +146,7 @@ extension UIImage {
 
     /// 缩放到指定大小 add by ak
     /// - Parameter size: 新的大小
-    public func nx_scaleToSize(size: CGSize) -> UIImage {
+    func nx_scaleToSize(size: CGSize) -> UIImage {
         var width: CGFloat = CGFloat(cgImage!.width)
         var height: CGFloat = CGFloat(cgImage!.height)
 
@@ -193,7 +190,7 @@ extension UIImage {
     }
 
     // 将图片裁剪成指定比例(多余部分自动删除)let image3 = image.crop(ratio: 1) /将图片转成 1:1 比例(正方形)
-    public func nxcrop(ratio: CGFloat) -> UIImage {
+    func nxcrop(ratio: CGFloat) -> UIImage {
         // 计算最终尺寸
         var newSize: CGSize!
         if size.width / size.height > ratio {
@@ -217,4 +214,21 @@ extension UIImage {
 
         return scaledImage!
     }
+    
+    /// 改变图片主题颜色
+    /// - Parameters:
+    ///   - color: <#color description#>
+    ///   - blendMode: <#blendMode description#>
+    /// - Returns: <#description#>
+    func tintImage(color: UIColor, blendMode: CGBlendMode) -> UIImage? {
+        let rect = CGRect(origin: CGPoint.zero, size: size)
+        UIGraphicsBeginImageContextWithOptions(size, false, scale)
+        color.setFill()
+        UIRectFill(rect)
+        draw(in: rect, blendMode: blendMode, alpha: 1.0)
+        let tintedImage = UIGraphicsGetImageFromCurrentImageContext()
+        UIGraphicsEndImageContext()
+        return tintedImage
+    }
 }
+

+ 14 - 4
BFFramework/Classes/Stuckpoint/View/PQStuckPointLoadingView.swift

@@ -13,10 +13,20 @@ class PQStuckPointLoadingView: UIView {
 
     var cancelHandle : ((_ sender: UIButton) -> Void)?
     /// 同步进度显示
-    lazy var loadingView: AnimatedImageView = {
-        let loadingView = AnimatedImageView()
-        loadingView.kf.setImage(with: URL(fileURLWithPath: Bundle.init().BF_mainbundle().path(forResource: "stuckPoint_edit_loading", ofType: ".gif")!))
-        loadingView.startAnimating()
+    lazy var loadingView: UIImageView = {
+        let loadingView = UIImageView()
+        loadingView.tintColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
+        let data = try? Data.init(contentsOf: URL(fileURLWithPath: Bundle.init().BF_mainbundle().path(forResource: "stuckPoint_edit_loading", ofType: ".gif")!))
+        if data != nil{
+            PQPHAssetVideoParaseUtil.parasGIFImage(data:data!,isRenderingColor: UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)) { data, images, duration in
+                loadingView.displayGIF(data: nil, images: images, repeatCount: .max, duration: duration ?? 2)
+            }
+        }
+        
+//        loadingView.kf.setImage(with: URL(fileURLWithPath: Bundle.init().BF_mainbundle().path(forResource: "stuckPoint_edit_loading", ofType: ".gif")!), completionHandler:  { image, error, type, url in
+//            loadingView.image = image?.withRenderingMode(.alwaysTemplate)
+//        })
+//        loadingView.startAnimating()
         return loadingView
     }()
 

+ 8 - 0
BFFramework/Classes/Utils/PQBFConfig.swift

@@ -9,7 +9,15 @@ import UIKit
 
 public class PQBFConfig: NSObject {
     public static let shared = PQBFConfig()
+    // 主题色
     public var styleColor: styleColor = .green
+    // 渠道
+    public let channelID: String = "AppStore"
+    // 友盟账号 快乐星球:60b9fa644d0228352bbc8937 闪音:60b9f95b4d0228352bbc87e0
+    public var umAppkey: String = "60b9f95b4d0228352bbc87e0"
+    // bugly账号 快乐星球:b7411e0d-f214-433c-9343-366b9ca99a53
+    // 闪音:6c481442-aeb4-49ec-a2ae-21359bfef44a
+    public var buglyAppkey: String = "6c481442-aeb4-49ec-a2ae-21359bfef44a"
 
     override private init() {
         super.init()

+ 25 - 17
BFFramework/Classes/Utils/PQPHAssetVideoParaseUtil.swift

@@ -47,9 +47,9 @@ class PQPHAssetVideoParaseUtil: NSObject {
     ///   - asset: <#asset description#>
     ///   - resultHandler: <#resultHandler description#>
     /// - Returns: <#description#>
-    class func parasToAVPlayerItem(phAsset: PHAsset,isHighQuality : Bool = false, resultHandler: @escaping (AVPlayerItem?, Float64, [AnyHashable: Any]?) -> Void) {
+    class func parasToAVPlayerItem(phAsset: PHAsset, isHighQuality: Bool = false, resultHandler: @escaping (AVPlayerItem?, Float64, [AnyHashable: Any]?) -> Void) {
         PHImageManager().requestPlayerItem(forVideo: phAsset, options: videoRequestOptions) { playerItem, info in
-            if isHighQuality && (playerItem?.asset as? AVURLAsset)?.url.absoluteString.components(separatedBy: "/").last?.contains(".medium.") ?? false{
+            if isHighQuality, (playerItem?.asset as? AVURLAsset)?.url.absoluteString.components(separatedBy: "/").last?.contains(".medium.") ?? false {
                 let tempVideoOptions = PHVideoRequestOptions()
                 tempVideoOptions.version = .original
                 // 下载iCloud视频
@@ -58,12 +58,12 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 tempVideoOptions.progressHandler = { progress, error, pointer, info in
                     BFLog(message: "导出playerItem-progress = \(progress),error = \(String(describing: error)),pointer = \(pointer),info = \(String(describing: info))")
                 }
-                PHImageManager().requestPlayerItem(forVideo: phAsset, options: tempVideoOptions) { (playerItem, info) in
+                PHImageManager().requestPlayerItem(forVideo: phAsset, options: tempVideoOptions) { playerItem, info in
                     let size = try! (playerItem?.asset as? AVURLAsset)?.url.resourceValues(forKeys: [.fileSizeKey])
                     BFLog(message: "size = \(String(describing: size))")
                     resultHandler(playerItem, Float64(size?.fileSize ?? 0), info)
                 }
-            }else{
+            } else {
                 let size = try! (playerItem?.asset as? AVURLAsset)?.url.resourceValues(forKeys: [.fileSizeKey])
                 BFLog(message: "size = \(String(describing: size))")
                 resultHandler(playerItem, Float64(size?.fileSize ?? 0), info)
@@ -76,9 +76,9 @@ class PQPHAssetVideoParaseUtil: NSObject {
     ///   - asset: <#asset description#>
     ///   - resultHandler: <#resultHandler description#>
     /// - Returns: <#description#>
-    class func parasToAVAsset(phAsset: PHAsset,isHighQuality : Bool = true, resultHandler: @escaping (AVAsset?, Int, AVAudioMix?, [AnyHashable: Any]?) -> Void) {
+    class func parasToAVAsset(phAsset: PHAsset, isHighQuality: Bool = true, resultHandler: @escaping (AVAsset?, Int, AVAudioMix?, [AnyHashable: Any]?) -> Void) {
         PHImageManager.default().requestAVAsset(forVideo: phAsset, options: videoRequestOptions) { avAsset, audioMix, info in
-            if isHighQuality && (avAsset as? AVURLAsset)?.url.absoluteString.components(separatedBy: "/").last?.contains(".medium.") ?? false{
+            if isHighQuality, (avAsset as? AVURLAsset)?.url.absoluteString.components(separatedBy: "/").last?.contains(".medium.") ?? false {
                 let tempVideoOptions = PHVideoRequestOptions()
                 tempVideoOptions.version = .original
                 // 下载iCloud视频
@@ -92,7 +92,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                     BFLog(message: "size = \(String(describing: size))")
                     resultHandler(tempAvAsset, size?.fileSize ?? 0, tempAudioMix, tempInfo)
                 }
-            }else{
+            } else {
                 let size = try! (avAsset as? AVURLAsset)?.url.resourceValues(forKeys: [.fileSizeKey])
                 resultHandler(avAsset, size?.fileSize ?? 0, audioMix, info)
                 BFLog(message: "size = \(String(describing: size))")
@@ -106,7 +106,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
     ///   - isAdjustRotationAngle: 是否调整旋转角度
     ///   - resultHandler: <#resultHandler description#>
     /// - Returns: <#description#>
-    class func exportPHAssetToMP4(phAsset: PHAsset, isAdjustRotationAngle: Bool = true, isCancelCurrentExport: Bool = false,deliveryMode: PHVideoRequestOptionsDeliveryMode? = .automatic, resultHandler: @escaping (_ phAsset: PHAsset, _ aVAsset: AVAsset?, _ filePath: String?, _ errorMsg: String?) -> Void) {
+    class func exportPHAssetToMP4(phAsset: PHAsset, isAdjustRotationAngle: Bool = true, isCancelCurrentExport: Bool = false, deliveryMode: PHVideoRequestOptionsDeliveryMode? = .automatic, resultHandler: @escaping (_ phAsset: PHAsset, _ aVAsset: AVAsset?, _ filePath: String?, _ errorMsg: String?) -> Void) {
         BFLog(message: "导出相册视频-开始导出:phAsset = \(phAsset)")
         if isCancelCurrentExport {
             currentExportSession?.cancelExport()
@@ -116,7 +116,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 // 创建目录
                 createDirectory(path: photoLibraryDirectory)
                 let fileName = (avAsset as! AVURLAsset).url.absoluteString
-                let filePath = photoLibraryDirectory + (fileName.kf.md5).kf.md5 + ".mp4"
+                let filePath = photoLibraryDirectory + fileName.kf.md5.kf.md5 + ".mp4"
                 let data = try? Data(contentsOf: NSURL.fileURL(withPath: filePath))
                 if FileManager.default.fileExists(atPath: filePath) && (data?.count ?? 0) > fileSize / 40 {
                     BFLog(message: "导出相册视频-已经导出完成:\(filePath)")
@@ -148,7 +148,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
                         BFLog(message: "导出相册视频-progress = \(progress),error = \(String(describing: error)),pointer = \(pointer),info = \(String(describing: info))")
                     }
                     requestOptions.deliveryMode = deliveryMode ?? .automatic
-                    PHImageManager.default().requestExportSession(forVideo: phAsset, options: requestOptions, exportPreset: (deliveryMode == .automatic || deliveryMode == .mediumQualityFormat) ? AVAssetExportPresetMediumQuality :(deliveryMode == .highQualityFormat ? AVAssetExportPresetHighestQuality : AVAssetExportPresetLowQuality) , resultHandler: { avAssetExportSession, _ in
+                    PHImageManager.default().requestExportSession(forVideo: phAsset, options: requestOptions, exportPreset: (deliveryMode == .automatic || deliveryMode == .mediumQualityFormat) ? AVAssetExportPresetMediumQuality : (deliveryMode == .highQualityFormat ? AVAssetExportPresetHighestQuality : AVAssetExportPresetLowQuality), resultHandler: { avAssetExportSession, _ in
                         BFLog(message: "导出相册视频-请求到导出 avAssetExportSession = \(String(describing: avAssetExportSession))")
                         currentExportSession = avAssetExportSession
                         if avAssetExportSession != nil {
@@ -273,13 +273,14 @@ class PQPHAssetVideoParaseUtil: NSObject {
             }
         }
     }
+
     /// PHAsset 转码为.mp4保存本地
     /// - Parameters:
     ///   - phAsset: <#phAsset description#>
     ///   - isAdjustRotationAngle: 是否调整旋转角度
     ///   - resultHandler: <#resultHandler description#>
     /// - Returns: <#description#>
-    class func writePHAssetDataToMP4(phAsset: PHAsset, isAdjustRotationAngle: Bool = true, isCancelCurrentExport: Bool = false,deliveryMode: PHVideoRequestOptionsDeliveryMode? = .automatic, resultHandler: @escaping (_ phAsset: PHAsset, _ aVAsset: AVAsset?, _ filePath: String?, _ errorMsg: String?) -> Void) {
+    class func writePHAssetDataToMP4(phAsset: PHAsset, isAdjustRotationAngle _: Bool = true, isCancelCurrentExport: Bool = false, deliveryMode _: PHVideoRequestOptionsDeliveryMode? = .automatic, resultHandler: @escaping (_ phAsset: PHAsset, _ aVAsset: AVAsset?, _ filePath: String?, _ errorMsg: String?) -> Void) {
         BFLog(message: "导出相册视频-开始导出:phAsset = \(phAsset)")
         if isCancelCurrentExport {
             currentExportSession?.cancelExport()
@@ -312,11 +313,11 @@ class PQPHAssetVideoParaseUtil: NSObject {
                         }
                     }
                     do {
-                        try FileManager.default.copyItem(at: (avAsset as! AVURLAsset).url, to: URL.init(fileURLWithPath: filePath))
+                        try FileManager.default.copyItem(at: (avAsset as! AVURLAsset).url, to: URL(fileURLWithPath: filePath))
                     } catch {
                         BFLog(message: "导出相册视频-error == \(error)")
                     }
-                    
+
 //                    NSError *error;
 //                            AVURLAsset *avurlasset = (AVURLAsset*)asset;
 //                            NSURL *fileURL = [NSURL fileURLWithPath:savePath];
@@ -345,7 +346,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
 //                        BFLog(message: "导出相册视频-progress = \(progress),error = \(String(describing: error)),pointer = \(pointer),info = \(String(describing: info))")
 //                    }
 //                    requestOptions.deliveryMode = deliveryMode ?? .automatic
-                    
+
 //                    PHImageManager.default().requestExportSession(forVideo: phAsset, options: requestOptions, exportPreset: (deliveryMode == .automatic || deliveryMode == .mediumQualityFormat) ? AVAssetExportPreset1920x1080 :(deliveryMode == .highQualityFormat ? AVAssetExportPresetHighestQuality : AVAssetExportPresetLowQuality) , resultHandler: { avAssetExportSession, _ in
 //                        BFLog(message: "导出相册视频-请求到导出 avAssetExportSession = \(avAssetExportSession)")
 //                        currentExportSession = avAssetExportSession
@@ -472,6 +473,7 @@ class PQPHAssetVideoParaseUtil: NSObject {
             }
         }
     }
+
     /// 导出相册视频
     /// - Parameters:
     ///   - aVAsset: <#aVAsset description#>
@@ -709,9 +711,10 @@ class PQPHAssetVideoParaseUtil: NSObject {
     /// 获取gif帧跟时长
     /// - Parameters:
     ///   - data: <#data description#>
+    ///   - isRenderingTemplate
     ///   - resultHandler: <#resultHandler description#>
     /// - Returns: <#description#>
-    class func parasGIFImage(data: Data, resultHandler: @escaping (_ data: Data, _ images: [UIImage]?, _ duration: Double?) -> Void) {
+    class func parasGIFImage(data: Data, isRenderingColor: UIColor? = nil, resultHandler: @escaping (_ data: Data, _ images: [UIImage]?, _ duration: Double?) -> Void) {
         let info: [String: Any] = [
             kCGImageSourceShouldCache as String: true,
             kCGImageSourceTypeIdentifierHint as String: kUTTypeGIF,
@@ -761,8 +764,13 @@ class PQPHAssetVideoParaseUtil: NSObject {
                 // 计算总时间
                 gifDuration += gifFrameDuration
                 // 2.图片
-                let frameImage = UIImage(cgImage: imageRef, scale: 1.0, orientation: .up)
-                images.append(frameImage)
+                var frameImage: UIImage? = UIImage(cgImage: imageRef, scale: 1.0, orientation: .up)
+                if isRenderingColor != nil {
+                    frameImage = frameImage?.tintImage(color: isRenderingColor!, blendMode: .destinationIn)
+                }
+                if frameImage != nil {
+                    images.append(frameImage!)
+                }
             }
         }
         resultHandler(data, images, gifDuration)

+ 99 - 24
BFFramework/Classes/Utils/PQThirdPlatformUtil.swift

@@ -6,21 +6,25 @@
 //  Copyright © 2020 BytesFlow. All rights reserved.
 //
 
+import Bugly
 import Kingfisher
 import UIKit
 import UserNotifications
 import WechatOpenSDK
-import Bugly
-
 
 // MARK: - 第三方相关工具类
 
 /// 第三方相关工具类
-class PQThirdPlatformUtil: NSObject {
+public class PQThirdPlatformUtil: NSObject {
     static let shared = PQThirdPlatformUtil()
     // 注册第三方
     func register() {
-
+        // 注册微信
+        PQSingletoWXApiUtil.shared.registerApp()
+        // 注册bugly
+        PQSingleBuglyUtil.shared.register()
+        // 注册友盟
+        PQUMApiUtil.register()
     }
 
     override private init() {
@@ -37,35 +41,43 @@ class PQThirdPlatformUtil: NSObject {
 }
 
 // MARK: - bugly相关工具类
+
 public class PQSingleBuglyUtil: NSObject {
     static let shared = PQSingleBuglyUtil()
     // 注册
-    func register(appID:String) {
- 
+    func register() {
         // 注册bugly
         let buglyConfig = BuglyConfig()
         buglyConfig.reportLogLevel = .warn
-        buglyConfig.version = versionName + "-\(PQENVUtil.shared.envMode)"
-        BFLog(message: "Bugly版本号:\(BuglyConfig.version())")
-        buglyConfig.channel = channelID
-        buglyConfig.deviceIdentifier = BFLoginUserInfo.shared.isLogin() ? BFLoginUserInfo.shared.uid : getMachineCode()
+        #if DEBUG
+            buglyConfig.version = versionName + ".6666"
+            PQLog(message: "Bugly版本号:\(BuglyConfig.version())")
+        #else
+            if PQENVUtil.shared.envMode == .ENVModeOnline {
+                buglyConfig.version = versionName + "." + versionCode
+            } else if PQENVUtil.shared.envMode == .ENVModePre {
+                buglyConfig.version = versionName + ".8888"
+            } else {
+                buglyConfig.version = versionName + ".9999"
+            }
+        #endif
+        buglyConfig.channel = PQBFConfig.shared.channelID
+        buglyConfig.deviceIdentifier = PQLoginUserInfo.shared.isLogin() ? PQLoginUserInfo.shared.uid : getMachineCode()
         buglyConfig.unexpectedTerminatingDetectionEnable = true
         buglyConfig.blockMonitorEnable = true
         buglyConfig.blockMonitorTimeout = 2
-        Bugly.start(withAppId: cBuglyAppkey, config: buglyConfig)
-
- 
+        Bugly.start(withAppId: PQBFConfig.shared.buglyAppkey, config: buglyConfig)
     }
 
     override private init() {
         super.init()
     }
 
-   public override func copy() -> Any {
+    override public func copy() -> Any {
         return self
     }
 
-    public override func mutableCopy() -> Any {
+    override public func mutableCopy() -> Any {
         return self
     }
 }
@@ -74,7 +86,7 @@ public class PQSingleBuglyUtil: NSObject {
 
 /// 微信相关工具类
 
-//初始化微信要使用的参数 e.g.
+// 初始化微信要使用的参数 e.g.
 /*
      let state: String = "com.piaoquan.pqspeed"
      let appid: String = "wxfc2fc07ab379e4bf"
@@ -82,20 +94,21 @@ public class PQSingleBuglyUtil: NSObject {
      let universalLink: String = "https://speed.piaoquantv.com/"
      let scope = "snsapi_userinfo"
  */
-public class WXApiInfo:NSObject {
+public class WXApiInfo: NSObject {
     public var state: String = ""
     public var appid: String = ""
     public var secret: String = ""
     public var universalLink: String = ""
     public var scope = ""
 }
+
 public class PQSingletoWXApiUtil: NSObject {
-    public  static let shared = PQSingletoWXApiUtil()
+    public static let shared = PQSingletoWXApiUtil()
     var openId: String? // openID
     // 回调
     public var wxApiUtilHander: ((_ userData: [String: Any]?, _ errorMsg: String?) -> Void)?
-    var mAppInfo:WXApiInfo = WXApiInfo.init()
-    public func registerApp(appInfo:WXApiInfo) {
+    var mAppInfo: WXApiInfo = WXApiInfo()
+    public func registerApp(appInfo: WXApiInfo) {
         mAppInfo = appInfo
         #if DEBUG
             WXApi.startLog(by: .detail) { msg in
@@ -260,7 +273,7 @@ public class PQSingletoWXApiUtil: NSObject {
 
     /// 是否安装了微信
     /// - Returns: <#description#>
-   public func isInstallWX() -> Bool {
+    public func isInstallWX() -> Bool {
         return UIApplication.shared.canOpenURL(URL(string: "weixin://")!)
     }
 
@@ -268,11 +281,11 @@ public class PQSingletoWXApiUtil: NSObject {
         super.init()
     }
 
-    public override func copy() -> Any {
+    override public func copy() -> Any {
         return self
     }
 
-    public override func mutableCopy() -> Any {
+    override public func mutableCopy() -> Any {
         return self
     }
 }
@@ -343,5 +356,67 @@ extension PQSingletoWXApiUtil: WXApiDelegate {
     }
 }
 
+// MARK: - 友盟相关工具类
+
+/// 友盟相关工具类
+class PQUMApiUtil: NSObject {
+    class func register() {
+        // 注册友盟
+        UMConfigure.setEncryptEnabled(true)
+        // 初始化友盟所有组件产品
+        UMConfigure.initWithAppkey(PQBFConfig.shared.umAppkey, channel: PQBFConfig.shared.channelID)
+        #if DEBUG
+            UMConfigure.setLogEnabled(true)
+        #endif
+        PQLog(message: "友盟版本号:\(UMConfigure.version())")
+    }
+}
 
- 
+// MARK: - 统计分析工具类
+
+/// 统计分析工具类
+class PQAnalyticsUtil: NSObject {
+    /// 页面时长统计
+    /// - Parameters:
+    ///   - pageName: 页面名称
+    ///   - isBegin: 开始/结束
+    /// - Returns: <#description#>
+    class func pageAutoTimeAnalytics(pageName: String?, isBegin: Bool) {
+        if pageName == nil || pageName?.count ?? 0 <= 0 {
+            return
+        }
+        PQLog(message: "页面时长统计:isBegin = \(isBegin),pageName = \(pageName ?? "")")
+        if isBegin {
+            MobClick.beginLogPageView(pageName)
+        } else {
+            MobClick.endLogPageView(pageName)
+        }
+    }
+
+    /// 事件统计
+    /// - Parameters:
+    ///   - eventId: 事件ID
+    ///   - attributes: 事件属性
+    /// - Returns: <#description#>
+    class func eventAnalytics(eventId: String?, attributes: [String: Any]?) {
+        if eventId == nil || eventId?.count ?? 0 <= 0 {
+            return
+        }
+        PQLog(message: "自定义事件统计:eventId = \(eventId ?? ""),attributes = \(attributes ?? [:])")
+        if attributes != nil && attributes?.count ?? 0 > 0 {
+            MobClick.event(eventId!, attributes: attributes!)
+        } else {
+            MobClick.event(eventId!)
+        }
+    }
+
+    /// 账号统计
+    /// - Returns: <#description#>
+    class func accountAnalytics() {
+        if PQLoginUserInfo.shared.accessToken.count > 0 {
+            MobClick.profileSignIn(withPUID: PQLoginUserInfo.shared.accessToken, provider: cPrimarykey)
+        } else {
+            MobClick.profileSignOff()
+        }
+    }
+}

+ 18 - 1
Example/Podfile.lock

@@ -15,6 +15,10 @@ PODS:
     - RealmSwift (= 10.7.2)
     - SnapKit (= 4.2.0)
     - Toast-Swift (= 5.0.1)
+    - UMAPM (= 1.2.1)
+    - UMCommon (= 7.2.9)
+    - UMCSecurityPlugins (= 1.0.6)
+    - UMDevice (= 1.2.0)
     - WechatOpenSDK-Swift (= 1.8.7.1)
   - Bugly (2.5.71)
   - FDFullscreenPopGesture (1.1)
@@ -31,6 +35,11 @@ PODS:
     - Realm (= 10.7.2)
   - SnapKit (4.2.0)
   - Toast-Swift (5.0.1)
+  - UMAPM (1.2.1)
+  - UMCommon (7.2.9):
+    - UMDevice
+  - UMCSecurityPlugins (1.0.6)
+  - UMDevice (1.2.0)
   - WechatOpenSDK-Swift (1.8.7.1)
 
 DEPENDENCIES:
@@ -52,6 +61,10 @@ SPEC REPOS:
     - RealmSwift
     - SnapKit
     - Toast-Swift
+    - UMAPM
+    - UMCommon
+    - UMCSecurityPlugins
+    - UMDevice
     - WechatOpenSDK-Swift
 
 EXTERNAL SOURCES:
@@ -61,7 +74,7 @@ EXTERNAL SOURCES:
 SPEC CHECKSUMS:
   Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18
   AliyunOSSiOS: 8db92936545593b9e5c66d680ef2ac0738946651
-  BFFramework: 14de4aa606d827651724808754463b7f36756e9a
+  BFFramework: 9df8170f07335e29ef49a01ff360326324e0db5d
   Bugly: fd066c75c4a0eca1440f9b6a84bd37d51bfc85ac
   FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
   KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
@@ -74,6 +87,10 @@ SPEC CHECKSUMS:
   RealmSwift: 4f6758c3adbdcc87f7b7777107226532a077f61c
   SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a
   Toast-Swift: 9b6a70f28b3bf0b96c40d46c0c4b9d6639846711
+  UMAPM: 58a98390bbb593b9d008f16a403ecd6c550229fd
+  UMCommon: 28a05184e0766ea2c015ce9c56963356a38f9b1b
+  UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
+  UMDevice: da050ba77e5075b1ec08303065722d25f599e483
   WechatOpenSDK-Swift: 18a8f7b12e745c30acc013f72a9f8a25aad6e216
 
 PODFILE CHECKSUM: fbceb8d678f3260ea2e79f17e99b626365bfef4d

+ 12 - 0
Example/Pods/Local Podspecs/BFFramework.podspec.json

@@ -84,6 +84,18 @@
     ],
     "NXFramework-Swift": [
 
+    ],
+    "UMCommon": [
+      "7.2.9"
+    ],
+    "UMDevice": [
+      "1.2.0"
+    ],
+    "UMCSecurityPlugins": [
+      "1.0.6"
+    ],
+    "UMAPM": [
+      "1.2.1"
     ]
   },
   "swift_version": "5.0"

+ 18 - 1
Example/Pods/Manifest.lock

@@ -15,6 +15,10 @@ PODS:
     - RealmSwift (= 10.7.2)
     - SnapKit (= 4.2.0)
     - Toast-Swift (= 5.0.1)
+    - UMAPM (= 1.2.1)
+    - UMCommon (= 7.2.9)
+    - UMCSecurityPlugins (= 1.0.6)
+    - UMDevice (= 1.2.0)
     - WechatOpenSDK-Swift (= 1.8.7.1)
   - Bugly (2.5.71)
   - FDFullscreenPopGesture (1.1)
@@ -31,6 +35,11 @@ PODS:
     - Realm (= 10.7.2)
   - SnapKit (4.2.0)
   - Toast-Swift (5.0.1)
+  - UMAPM (1.2.1)
+  - UMCommon (7.2.9):
+    - UMDevice
+  - UMCSecurityPlugins (1.0.6)
+  - UMDevice (1.2.0)
   - WechatOpenSDK-Swift (1.8.7.1)
 
 DEPENDENCIES:
@@ -52,6 +61,10 @@ SPEC REPOS:
     - RealmSwift
     - SnapKit
     - Toast-Swift
+    - UMAPM
+    - UMCommon
+    - UMCSecurityPlugins
+    - UMDevice
     - WechatOpenSDK-Swift
 
 EXTERNAL SOURCES:
@@ -61,7 +74,7 @@ EXTERNAL SOURCES:
 SPEC CHECKSUMS:
   Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18
   AliyunOSSiOS: 8db92936545593b9e5c66d680ef2ac0738946651
-  BFFramework: 14de4aa606d827651724808754463b7f36756e9a
+  BFFramework: 9df8170f07335e29ef49a01ff360326324e0db5d
   Bugly: fd066c75c4a0eca1440f9b6a84bd37d51bfc85ac
   FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
   KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
@@ -74,6 +87,10 @@ SPEC CHECKSUMS:
   RealmSwift: 4f6758c3adbdcc87f7b7777107226532a077f61c
   SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a
   Toast-Swift: 9b6a70f28b3bf0b96c40d46c0c4b9d6639846711
+  UMAPM: 58a98390bbb593b9d008f16a403ecd6c550229fd
+  UMCommon: 28a05184e0766ea2c015ce9c56963356a38f9b1b
+  UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
+  UMDevice: da050ba77e5075b1ec08303065722d25f599e483
   WechatOpenSDK-Swift: 18a8f7b12e745c30acc013f72a9f8a25aad6e216
 
 PODFILE CHECKSUM: fbceb8d678f3260ea2e79f17e99b626365bfef4d

File diff suppressed because it is too large
+ 1356 - 1258
Example/Pods/Pods.xcodeproj/project.pbxproj


+ 1 - 1
Example/Pods/Target Support Files/BFFramework/BFFramework.debug.xcconfig

@@ -1,7 +1,7 @@
 CLANG_MODULES_AUTOLINK = YES
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BFFramework
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/UMAPM/UMAPM_1.2.1" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties" "${PODS_ROOT}/UMCommon/UMCommon_7.2.9" "${PODS_ROOT}/UMDevice/UMDevice_1.2.0" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/realm-monorepo/Headers"
 OTHER_LDFLAGS = $(inherited) -all_load

+ 1 - 1
Example/Pods/Target Support Files/BFFramework/BFFramework.release.xcconfig

@@ -1,7 +1,7 @@
 CLANG_MODULES_AUTOLINK = YES
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
 CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BFFramework
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/UMAPM/UMAPM_1.2.1" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties" "${PODS_ROOT}/UMCommon/UMCommon_7.2.9" "${PODS_ROOT}/UMDevice/UMDevice_1.2.0" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/realm-monorepo/Headers"
 OTHER_LDFLAGS = $(inherited) -all_load

+ 20 - 0
Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example-acknowledgements.markdown

@@ -690,6 +690,26 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
+## UMAPM
+
+Copyright 2011 - 2020 umeng.com. All rights reserved.
+
+
+## UMCSecurityPlugins
+
+Copyright 2011 - 2018 umeng.com. All rights reserved.
+
+
+## UMCommon
+
+Copyright 2011 - 2020 umeng.com. All rights reserved.
+
+
+## UMDevice
+
+Copyright 2011 - 2020 umeng.com. All rights reserved.
+
+
 ## WechatOpenSDK-Swift
 
 Copyright (c) 2020 mail.yuekun@gmail.com <mail.yuekun@gmail.com>

+ 44 - 0
Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example-acknowledgements.plist

@@ -791,6 +791,50 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
 		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright 2011 - 2020 umeng.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>UMAPM</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright 2011 - 2018 umeng.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>UMCSecurityPlugins</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright 2011 - 2020 umeng.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>UMCommon</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright 2011 - 2020 umeng.com. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>UMDevice</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
 		<dict>
 			<key>FooterText</key>
 			<string>Copyright (c) 2020 mail.yuekun@gmail.com &lt;mail.yuekun@gmail.com&gt;

+ 3 - 2
Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example.debug.xcconfig

@@ -1,12 +1,13 @@
 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
 CLANG_MODULES_AUTOLINK = YES
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/BFFramework" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
+EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/BFFramework" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/UMAPM/UMAPM_1.2.1" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties" "${PODS_ROOT}/UMCommon/UMCommon_7.2.9" "${PODS_ROOT}/UMDevice/UMDevice_1.2.0" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BFFramework/BFFramework.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText/LMJHorizontalScrollText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift/NXFramework_Swift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper/ObjectMapper.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Realm/Realm.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift/RealmSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/realm-monorepo/Headers"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
 LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/realm-monorepo"
-OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"resolv" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AliyunOSSiOS" -framework "BFFramework" -framework "Bugly" -framework "CFNetwork" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "FDFullscreenPopGesture" -framework "KeychainAccess" -framework "Kingfisher" -framework "LMJHorizontalScrollText" -framework "MJRefresh" -framework "NXFramework_Swift" -framework "ObjectMapper" -framework "OpenGLES" -framework "QuartzCore" -framework "Realm" -framework "RealmSwift" -framework "Security" -framework "SnapKit" -framework "SystemConfiguration" -framework "Toast_Swift" -framework "UIKit" -framework "WebKit" -framework "WechatOpenSDK"
+OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"resolv" -l"sqlite3" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AliyunOSSiOS" -framework "BFFramework" -framework "Bugly" -framework "CFNetwork" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "FDFullscreenPopGesture" -framework "KeychainAccess" -framework "Kingfisher" -framework "LMJHorizontalScrollText" -framework "MJRefresh" -framework "NXFramework_Swift" -framework "ObjectMapper" -framework "OpenGLES" -framework "QuartzCore" -framework "Realm" -framework "RealmSwift" -framework "Security" -framework "SecurityEnvSDK" -framework "SnapKit" -framework "SystemConfiguration" -framework "Toast_Swift" -framework "UIKit" -framework "UMAPM" -framework "UMCommon" -framework "UMDevice" -framework "UTDID" -framework "WebKit" -framework "WechatOpenSDK"
 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS $(inherited) -DGLES
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

+ 3 - 2
Example/Pods/Target Support Files/Pods-BFFramework_Example/Pods-BFFramework_Example.release.xcconfig

@@ -1,12 +1,13 @@
 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
 CLANG_MODULES_AUTOLINK = YES
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/BFFramework" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
+EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS" "${PODS_CONFIGURATION_BUILD_DIR}/BFFramework" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper" "${PODS_CONFIGURATION_BUILD_DIR}/Realm" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/Realm/core" "${PODS_ROOT}/UMAPM/UMAPM_1.2.1" "${PODS_ROOT}/UMCSecurityPlugins/thirdparties" "${PODS_ROOT}/UMCommon/UMCommon_7.2.9" "${PODS_ROOT}/UMDevice/UMDevice_1.2.0" "${PODS_ROOT}/WechatOpenSDK-Swift/Vendor"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/AliyunOSSiOS/AliyunOSSiOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BFFramework/BFFramework.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LMJHorizontalScrollText/LMJHorizontalScrollText.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/NXFramework-Swift/NXFramework_Swift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ObjectMapper/ObjectMapper.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Realm/Realm.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RealmSwift/RealmSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.framework/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/realm-monorepo/Headers"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
 LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/realm-monorepo"
-OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"resolv" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AliyunOSSiOS" -framework "BFFramework" -framework "Bugly" -framework "CFNetwork" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "FDFullscreenPopGesture" -framework "KeychainAccess" -framework "Kingfisher" -framework "LMJHorizontalScrollText" -framework "MJRefresh" -framework "NXFramework_Swift" -framework "ObjectMapper" -framework "OpenGLES" -framework "QuartzCore" -framework "Realm" -framework "RealmSwift" -framework "Security" -framework "SnapKit" -framework "SystemConfiguration" -framework "Toast_Swift" -framework "UIKit" -framework "WebKit" -framework "WechatOpenSDK"
+OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"resolv" -l"sqlite3" -l"z" -framework "AVFoundation" -framework "Alamofire" -framework "AliyunOSSiOS" -framework "BFFramework" -framework "Bugly" -framework "CFNetwork" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "FDFullscreenPopGesture" -framework "KeychainAccess" -framework "Kingfisher" -framework "LMJHorizontalScrollText" -framework "MJRefresh" -framework "NXFramework_Swift" -framework "ObjectMapper" -framework "OpenGLES" -framework "QuartzCore" -framework "Realm" -framework "RealmSwift" -framework "Security" -framework "SecurityEnvSDK" -framework "SnapKit" -framework "SystemConfiguration" -framework "Toast_Swift" -framework "UIKit" -framework "UMAPM" -framework "UMCommon" -framework "UMDevice" -framework "UTDID" -framework "WebKit" -framework "WechatOpenSDK"
 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS $(inherited) -DGLES
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

+ 14 - 0
Example/Pods/Target Support Files/UMAPM/UMAPM.debug.xcconfig

@@ -0,0 +1,14 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMAPM
+EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMAPM/UMAPM_1.2.1"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"c++"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMAPM
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 14 - 0
Example/Pods/Target Support Files/UMAPM/UMAPM.release.xcconfig

@@ -0,0 +1,14 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMAPM
+EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMAPM/UMAPM_1.2.1"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"c++"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMAPM
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 13 - 0
Example/Pods/Target Support Files/UMCSecurityPlugins/UMCSecurityPlugins.debug.xcconfig

@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCSecurityPlugins
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCSecurityPlugins/thirdparties"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"z" -framework "CoreTelephony" -framework "SystemConfiguration"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCSecurityPlugins
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 13 - 0
Example/Pods/Target Support Files/UMCSecurityPlugins/UMCSecurityPlugins.release.xcconfig

@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCSecurityPlugins
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCSecurityPlugins/thirdparties"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"z" -framework "CoreTelephony" -framework "SystemConfiguration"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCSecurityPlugins
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 13 - 0
Example/Pods/Target Support Files/UMCommon/UMCommon.debug.xcconfig

@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCommon
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCommon/UMCommon_7.2.9" "${PODS_ROOT}/UMDevice/UMDevice_1.2.0"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"sqlite3" -l"z" -framework "CoreTelephony" -framework "SystemConfiguration"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCommon
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 13 - 0
Example/Pods/Target Support Files/UMCommon/UMCommon.release.xcconfig

@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMCommon
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMCommon/UMCommon_7.2.9" "${PODS_ROOT}/UMDevice/UMDevice_1.2.0"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"sqlite3" -l"z" -framework "CoreTelephony" -framework "SystemConfiguration"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/UMCommon
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 12 - 0
Example/Pods/Target Support Files/UMDevice/UMDevice.debug.xcconfig

@@ -0,0 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMDevice
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMDevice/UMDevice_1.2.0"
+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}/UMDevice
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 12 - 0
Example/Pods/Target Support Files/UMDevice/UMDevice.release.xcconfig

@@ -0,0 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/UMDevice
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/UMDevice/UMDevice_1.2.0"
+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}/UMDevice
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 25 - 0
Example/Pods/UMAPM/UMAPM_1.2.1/UMAPM.framework/Headers/UMCrashConfigure.h

@@ -0,0 +1,25 @@
+//
+//  UMCrashConfigure.h
+//  UMCrash
+//
+//  Created by wangkai on 2020/9/3.
+//  Copyright © 2020 wangkai. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+typedef NSString *_Nullable(^CallbackBlock)(void);
+
+@interface UMCrashConfigure : NSObject
+//获取sdk版本号
++ (NSString *_Nonnull)getVersion;
+
+//return字符串不能大于256字节,大于部分将被截取
++ (void)setCrashCBBlock:(CallbackBlock _Nullable )cbBlock;
+
+
+
+
+
+
+@end
+

BIN
Example/Pods/UMAPM/UMAPM_1.2.1/UMAPM.framework/Info.plist


BIN
Example/Pods/UMAPM/UMAPM_1.2.1/UMAPM.framework/UMAPM


+ 0 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/1.0.6_7e4af54c27fe03856bc628f6c86e7c3020180117


+ 15 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Headers/EnvExport.h

@@ -0,0 +1,15 @@
+//
+//  EnvExport.h
+//  SecurityEnvTest
+//
+//  Created by asherli on 17/9/1.
+//  Copyright © 2017年 alibaba. All rights reserved.
+//
+
+#ifndef EnvExport_h
+#define EnvExport_h
+
+#define SEC_ERROR_UMID_OK  0
+#define SEC_ERROR_UMID_UNKNOWN_ERR 1
+
+#endif /* EnvExport_h */

+ 21 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Headers/ISecurityEnvInitListener.h

@@ -0,0 +1,21 @@
+//
+//  ISecurityEnvInitListener.h
+//  SecurityEnvSDK
+//
+//  Created by asherli on 17/9/1.
+//  Copyright © 2017年 alibaba. All rights reserved.
+//
+
+#ifndef SECURITYENV_ISECURITY_ENV_INITLISTENER_H
+#define SECURITYENV_ISECURITY_ENV_INITLISTENER_H
+
+#import <Foundation/Foundation.h>
+#include "EnvExport.h"
+
+@interface ISecurityEnvInitListener : NSObject
+
+- (void) onUMIDInitFinished : (const char *) strToken : (int) status;
+
+@end
+
+#endif /* SECURITYENV_ISECURITY_ENV_INITLISTENER_H */

+ 27 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Headers/SecurityEnvSDK.h

@@ -0,0 +1,27 @@
+//
+//  SecurityEnvSDK.h
+//  SecurityGuardMain
+//
+//  Created by asherli on 2017/07/12.
+//  Copyright © 2016年 alibaba. All rights reserved.
+//
+
+#ifndef SECURITYENV_SECURITY_ENV_SDK_H
+#define SECURITYENV_SECURITY_ENV_SDK_H
+
+#import <Foundation/Foundation.h>
+#import "ISecurityEnvInitListener.h"
+
+@interface SecurityEnvSDK : NSObject
+
+- (NSInteger) initSync;
+
+- (void) initASync : (ISecurityEnvInitListener *) listener;
+
+- (NSString*) getToken;
+
+// build by mtl
+
+@end
+
+#endif /* SECURITYENV_SECURITY_ENV_SDK_H */

+ 12 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Info.plist

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleIdentifier</key>
+	<string>com.alimobilesec.SecurityEnvSDK</string>
+	<key>CFBundleName</key>
+	<string>SecurityEnvSDK</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+</dict>
+</plist>

+ 6 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/Modules/module.modulemap

@@ -0,0 +1,6 @@
+framework module SecurityEnvSDK {
+  umbrella header "SecurityEnvSDK.h"
+
+  export *
+  module * { export * }
+}

BIN
Example/Pods/UMCSecurityPlugins/thirdparties/SecurityEnvSDK.framework/SecurityEnvSDK


+ 0 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/1.1.0_284361e9aad9bf95a33916c655ecefb720180108


+ 1 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Headers

@@ -0,0 +1 @@
+Versions/Current/Headers

+ 1 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Resources

@@ -0,0 +1 @@
+Versions/Current/Resources

+ 1 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/UTDID

@@ -0,0 +1 @@
+Versions/Current/UTDID

+ 23 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/Headers/AidProtocol.h

@@ -0,0 +1,23 @@
+//
+//  AidProtocol.h
+//  UtdidSDK
+//
+//  Created by ALLEN on 14-12-22.
+//  Copyright (c) 2014年 Alvin. All rights reserved.
+//
+
+#ifndef AidProtocol_h
+#define AidProtocol_h
+
+#define EVENT_REQUEST_STARTED 1000
+#define EVENT_REQUEST_SUCCESS 1001
+#define EVENT_REQUEST_FAILED 1002
+#define EVENT_NETWORK_ERROR 1003
+
+@protocol AidProtocolDelegate <NSObject>
+@required
+- (void) onAidEventChanged:(NSInteger)eventId
+                       aid:(NSString *)aid;
+@end
+
+#endif

+ 56 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/Headers/UTDevice.h

@@ -0,0 +1,56 @@
+//
+//  UTDevice.h
+//  
+//
+//  Created by Alvin on 4/21/13.
+//
+//  设备信息的分装类:sdk合作开发需要用这个类提供的设备信息接口
+
+//  Version:utdid4all-1.1.0
+
+#ifndef UTDIDDevice_h
+#define UTDIDDevice_h
+
+#import "AidProtocol.h"
+
+@interface UTDevice : NSObject
+
+/**
+ * @brief                       获取SDK生成的设备唯一标识.
+ *
+ * @warning                     调用说明:这个设备唯一标识是持久的,并且格式安全,iOS6以及以下,多应用互通.
+ *
+ *                              调用顺序:utdid任意时刻都可以调用.
+ *
+ * @return                      24字节的设备唯一标识.
+ */
++(NSString *) utdid;
+
+/**
+ * @brief                       同步获得AID.
+ *
+ * @warning                     调用说明:若本地端没有最新AID,将耗费远程通信时间并阻塞线程,建议将此调用置于非主线程,或使用{@link getAidAsync}异步获得AID。
+ *
+ *                              调用顺序:aid任意时刻都可以调用.
+ *
+ * @return                      AID.
+ */
++(NSString *) aid:(NSString *)appName
+            token:(NSString *)token;
+
+/**
+ * @brief                       异步请求AID.
+ *
+ * @warning                     调用说明:若本地端没有最新AID,将建立异步请求获得AID,
+ *
+ *                              调用顺序:aidAsync任意时刻都可以调用.
+ *
+ * @return                      AID.
+ */
++(void) aidAsync:(NSString *)appName
+                 token:(NSString *)token
+           aidDelegate:(id<AidProtocolDelegate>)aidDelegate;
+
+@end
+
+#endif

BIN
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/Resources/Info.plist


BIN
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/A/UTDID


+ 1 - 0
Example/Pods/UMCSecurityPlugins/thirdparties/UTDID.framework/Versions/Current

@@ -0,0 +1 @@
+A

+ 1 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/7.2.9_0525a1b5fe_20210518142839

@@ -0,0 +1 @@
+7.2.9

+ 1 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Headers

@@ -0,0 +1 @@
+Versions/Current/Headers

+ 1 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/UMCommon

@@ -0,0 +1 @@
+Versions/Current/UMCommon

+ 221 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/Headers/MobClick.h

@@ -0,0 +1,221 @@
+//
+//  MobClick.h
+//  Analytics
+//
+//  Copyright (C) 2010-2017 Umeng.com . All rights reserved.
+
+#import <UIKit/UIKit.h>
+#import <Foundation/Foundation.h>
+
+@class CLLocation;
+@interface MobClick : NSObject 
+
+#pragma mark basics
+
+///---------------------------------------------------------------------------------------
+/// @name  设置
+///---------------------------------------------------------------------------------------
+
+
+
+#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不能超过100个
+    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;
+
+
+/**
+ * 设置预置事件属性 键值对 会覆盖同名的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
+
+

+ 19 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/Headers/UMCommon.h

@@ -0,0 +1,19 @@
+//
+//  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>

+ 45 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/Headers/UMConfigure.h

@@ -0,0 +1,45 @@
+//
+//  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;
+
+/** 是否开启统计,默认为YES(开启状态)
+ @param value 设置为NO,可关闭友盟统计功能.
+ @return void.
+*/
++ (void)setAnalyticsEnabled:(BOOL)value;
+
+//获取zid
++ (NSString *)getUmengZID;
+
+@end

BIN
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/A/UMCommon


+ 1 - 0
Example/Pods/UMCommon/UMCommon_7.2.9/UMCommon.framework/Versions/Current

@@ -0,0 +1 @@
+A

+ 26 - 0
Example/Pods/UMDevice/UMDevice_1.2.0/UMDevice.framework/Headers/umzid.h

@@ -0,0 +1,26 @@
+//
+//  UMENGAAID.h
+//  UMENGAAID
+//
+//  Created by UMENGAAID on 8/29/20.
+//  Copyright © 2020 UMENGAAID. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface UMZid : NSObject
+
+/// SDK初始化,异步请求zid
+/// @param appkey     appkey
+/// @param completion 请求zid的回调,zid为返回值,如果失败,zid为空字符串@“”
++ (void)initWithAppKey:(NSString *)appkey completion:(void (^)(NSString *zid))completion;
+
+/// 同步获得zid,失败返回空字符串@“”
++ (NSString *)getZID;
+
+/// 获取SDK版本号
++ (NSString *)getSDKVersion;
+
+/// 获得resetToken
++ (NSString *)getResetToken;
+@end

BIN
Example/Pods/UMDevice/UMDevice_1.2.0/UMDevice.framework/UMDevice


Some files were not shown because too many files changed in this diff