mao 1 rok temu
rodzic
commit
363bba9307
100 zmienionych plików z 5917 dodań i 25 usunięć
  1. 8 0
      api/business/dayWork.js
  2. 41 13
      components/dialog-end-work/dialog-end-work.vue
  3. 6 1
      components/dialog-turnoverApplication/dialog-turnoverApplication.vue
  4. 49 11
      manifest.json
  5. BIN
      nativeplugins/Mpaas-Scan/android/baselib-10.1.60a.1139.aar
  6. BIN
      nativeplugins/Mpaas-Scan/android/bqcscanservice-build-10.1.60a.1097.aar
  7. BIN
      nativeplugins/Mpaas-Scan/android/lib/metainfo-annotations-1.3.1.jar
  8. BIN
      nativeplugins/Mpaas-Scan/android/logging-build-10.1.60a.1137.23.aar
  9. BIN
      nativeplugins/Mpaas-Scan/android/mascanengine-build-10.1.60a.1099.aar
  10. BIN
      nativeplugins/Mpaas-Scan/android/mpaas-resources-api-1.1.0.aar
  11. BIN
      nativeplugins/Mpaas-Scan/android/mpaas_scan-release.aar
  12. BIN
      nativeplugins/Mpaas-Scan/android/scanexport-build-10.1.60a.1137.aar
  13. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/APLog
  14. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/APLog-Info.plist
  15. 106 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APFileLog.h
  16. 115 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APLog.h
  17. 43 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APLogIO.h
  18. 55 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APLogMgr.h
  19. 24 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APPrimitiveLog.h
  20. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/Info.plist
  21. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeDirectory
  22. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeRequirements
  23. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeRequirements-1
  24. 214 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeResources
  25. 0 0
      nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeSignature
  26. BIN
      nativeplugins/Mpaas-Scan/ios/APLog.framework/en.lproj/InfoPlist.strings
  27. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/APProtocolBuffers
  28. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/APProtocolBuffers-Info.plist
  29. 75 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/APDPBGeneratedMessage.h
  30. 50 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/APPBGeneratedMessage.h
  31. 39 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/AbstractMessage.h
  32. 29 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/AbstractMessageBuilder.h
  33. 30 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Bootstrap.h
  34. 194 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/CodedInputStream.h
  35. 177 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/CodedOutputStream.h
  36. 85 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ExtensionField.h
  37. 88 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ExtensionRegistry.h
  38. 16 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ExternKVParam.h
  39. 55 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Field.h
  40. 34 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ForwardDeclarations.h
  41. 90 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/GeneratedMessage.h
  42. 88 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Message.h
  43. 145 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/MessageBuilder.h
  44. 88 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/MutableField.h
  45. 131 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/PBArray.h
  46. 24 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/PBEntryStringString.h
  47. 27 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/PBMapStringString.h
  48. 47 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ProtocolBuffers.h
  49. 21 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/RingBuffer.h
  50. 56 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/UnknownFieldSet.h
  51. 113 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/UnknownFieldSetBuilder.h
  52. 340 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Utilities.h
  53. 47 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/WireFormat.h
  54. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Info.plist
  55. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeDirectory
  56. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeRequirements
  57. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeRequirements-1
  58. 514 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeResources
  59. 0 0
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeSignature
  60. BIN
      nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/en.lproj/InfoPlist.strings
  61. BIN
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/APRemoteLogging
  62. 3 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/APRemoteLogging.bundle/baseline.json
  63. 141 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APCrashLogParamHelper.h
  64. 135 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APLogAddions.h
  65. 18 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APLogSpmUtils.h
  66. 375 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APMonitorPointDataDefines.h
  67. 42 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APMonitorPointManager.h
  68. 40 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogger+AntLog.h
  69. 405 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogger+Internal.h
  70. 177 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogger.h
  71. 35 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogging.h
  72. 48 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteMarco.h
  73. 40 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATActionMgr.h
  74. 29 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATAppendAction.h
  75. 39 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATAppender.h
  76. 43 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATAppenderMgr.h
  77. 19 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATBehaviorLayout.h
  78. 48 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATBehaviorLogger.h
  79. 113 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATConfigMgr.h
  80. 75 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATContext.h
  81. 62 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATCrash.h
  82. 19 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATCrashLayout.h
  83. 36 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATCrashLogger.h
  84. 40 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATDataFlow.h
  85. 18 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATDataFlowLayout.h
  86. 36 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATDataFlowLogger.h
  87. 39 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATEvent.h
  88. 40 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATEventLogger.h
  89. 23 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATHTTPUploader.h
  90. 63 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATLayout.h
  91. 59 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATLinkLogger.h
  92. 30 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATLogger.h
  93. 18 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMessage.h
  94. 33 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMigrator.h
  95. 46 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMonitor.h
  96. 19 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMonitorLayout.h
  97. 36 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMonitorLogger.h
  98. 56 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATNetEnvUtil.h
  99. 137 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATParameters.h
  100. 18 0
      nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATPerformanceLayout.h

+ 8 - 0
api/business/dayWork.js

@@ -44,4 +44,12 @@ export function turnoverDelete(data) {
 		method: 'DELETE',
 		data: data
 	})
+}
+
+export function checkBizDayworkCarriers(data) {
+	return req.request({
+		url:'/business/daywork/check',
+		method: 'POST',
+		data: data
+	})
 }

+ 41 - 13
components/dialog-end-work/dialog-end-work.vue

@@ -26,7 +26,7 @@
 				<switch class="switch" @change="switchChange" color="rgba(255,85,85,1)" />
 				<text>是</text>
 			</view>
-			<view v-if="showCarrierList" class="confirmCarrier">
+			<view v-if="showCarrierList && !store.isProPreProcess" class="confirmCarrier">
 				<text class="label">确认载具</text>
 				<view class="vehicleList uni-row">
 					<view v-for="(item,index) in bindList" :key="index"
@@ -36,7 +36,10 @@
 				</view>
 			</view>
 		</view>
-		<view class="add-btn-container uni-row">
+		<view v-if="store.isProPreProcess" class="add-btn-container uni-row">
+			<button type="default" class="btn" @click="handlePreFinishReporting">结束报工</button>
+		</view>
+		<view v-if="!store.isProPreProcess" class="add-btn-container uni-row">
 			<button v-if="showCarrierList" type="primary" class="btnScan" @click="handleScanCode">扫码确认载具</button>
 			<button type="default" class="btn" @click="handleFinishReporting">结束报工</button>
 		</view>
@@ -89,13 +92,14 @@
 	const temp = ref(0) // 保存workInfo.value.qualifiedNum的值(还原用)
 
 	onLoad(() => {
-
 	})
 
 	function open(data, itemListData) {
+		console.log(store.isProPreProcess)
 		resetPage();
 		workInfo.value = {
-			...data
+			...data,
+			qualifiedNum: 0
 		};
 		getSpecialDeptProcessList().then(res => {
 			if (res.code == 200) {
@@ -164,7 +168,6 @@
 			workInfo.value.status = "2"
 		}
 		showCarrierList.value = event.detail.value;
-
 	}
 
 	function handleInputQualifiedNum() {
@@ -187,12 +190,18 @@
 
 
 	function handleScanCode() {
-		uni.scanCode({
-			scanType: ['qrCode'], // 条形码扫描
-			onlyFromCamera: true, // 只允许相机扫码
-			autoZoom: false,
-			success: function(res) {
-				let vehicleObj = JSON.parse(res.result);
+		// 引入原生插件
+		const mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module");
+		// 调用插件的 mpaasScan 方法
+		mpaasScanModule.mpaasScan({
+				// 扫码识别类型,参数可多选,qrCode、barCode,
+				// 如不设置,默认识别所有扫码类型,可能有些许影响识别效率
+				scanType: ["qrCode", "barCode"],
+				// 是否隐藏相册,默认false不隐藏
+				hideAlbum: false,
+			},
+			(ret) => {
+				let vehicleObj = JSON.parse(ret.resp_result);
 				for (let i = 0; i < bindList.value.length; i++) {
 					if (vehicleObj.carrierCode == bindList.value[i].carrierCode) {
 						if (!bindList.value[i].flag) {
@@ -202,10 +211,29 @@
 					}
 				}
 			}
-		});
+		);
+		// uni.scanCode({
+		// 	scanType: ['qrCode'], // 条形码扫描
+		// 	onlyFromCamera: true, // 只允许相机扫码
+		// 	autoZoom: false,
+		// 	success: function(res) {
+		// 		let vehicleObj = JSON.parse(res.result);
+		// 		for (let i = 0; i < bindList.value.length; i++) {
+		// 			if (vehicleObj.carrierCode == bindList.value[i].carrierCode) {
+		// 				if (!bindList.value[i].flag) {
+		// 					endFlag.value += 1;
+		// 				}
+		// 				bindList.value[i].flag = true;
+		// 			}
+		// 		}
+		// 	}
+		// });
 	}
 
-
+	function handlePreFinishReporting(){
+		handleSave();
+	}
+	
 	function handleFinishReporting() {
 		if (showCarrierList.value) {
 			if (endFlag.value >= bindList.value.length) {

+ 6 - 1
components/dialog-turnoverApplication/dialog-turnoverApplication.vue

@@ -194,7 +194,12 @@
 				return null;
 			}
 		})
-		curDayworkItem.value.turnoverArea = newArray.join('、');
+		if(curDayworkItem.value.turnoverType == '1'){
+			curDayworkItem.value.place = newArray.join('、');
+			curDayworkItem.value.turnoverArea = "车间内周转看place字段";
+		}else{
+			curDayworkItem.value.turnoverArea = newArray.join('、');
+		}
 		// curDayworkItem.value.dayworkId = store.dayworkInfo.id;
 		// 设置周转下一个车间名
 		for (let i = 0; i < deptList.value.length; i++) {

+ 49 - 11
manifest.json

@@ -2,8 +2,8 @@
     "name" : "德迈仕数字生产管理平台",
     "appid" : "__UNI__B065984",
     "description" : "",
-    "versionName" : "1.0.6",
-    "versionCode" : 105,
+    "versionName" : "1.0.8",
+    "versionCode" : 107,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -17,26 +17,29 @@
             "delay" : 0
         },
         /* 模块配置 */
-        "modules" : {},
+        "modules" : {
+            "Barcode" : {}
+        },
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
             "android" : {
                 "permissions" : [
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                     "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CLEAR_APP_CACHE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ]
             },
@@ -56,6 +59,41 @@
                     "xxxhdpi" : "static/images/logo.png"
                 }
             }
+        },
+        "nativePlugins" : {
+            "Mpaas-Scan" : {
+                "AppId" : "ALIPUB329B65F251414",
+                "WorkspaceId" : "default",
+                "License" : "R2QpZON7E+4Qb+BK3sXv4XH2gPaLfQk+FDhob8/bENnXJ7DOUMBAzpWXHCQVW5Tfco57Jr2premWPSgMiwxLFDxcHCuXpX8DMxMCwZaTaqwzj0j+gA59q8+fGL2p4pvPZEvkOIMxWSZPQzjU113zdhkhswBLbQ3GSQZ6JML0zPmSkpGstUdlUELAXaoyWj9CDY7DMPxJDrzFWc97EroaJhF5i1ErKw18do0fJeaeb38Zpf4w2OsbQViei8WHKAXlQxqBidsGPSGW1zOIb3okfl0dIY1AyHMuJFydJ+T8eVzBdN9m1BFf96pf0YA8aMhZaTATXHRy1o+6I+KWSN5qoA==",
+                "__plugin_info__" : {
+                    "name" : "支付宝原生扫码插件",
+                    "description" : "支付宝原生扫码组件,包体积仅0.7MB,15分钟即可完成接入。同时,mPaaS提供「扫码分析」大盘,",
+                    "platforms" : "Android,iOS",
+                    "url" : "",
+                    "android_package_name" : "",
+                    "ios_bundle_id" : "",
+                    "isCloud" : false,
+                    "bought" : -1,
+                    "pid" : "",
+                    "parameters" : {
+                        "AppId" : {
+                            "des" : "Android平台的AppId,请填写Android的config文件中的appId对应的值",
+                            "key" : "mobilegw.appid",
+                            "value" : ""
+                        },
+                        "WorkspaceId" : {
+                            "des" : "Android平台的WorkspaceId,请填写Android的config文件中的workspaceId对应的值",
+                            "key" : "workspaceId",
+                            "value" : ""
+                        },
+                        "License" : {
+                            "des" : "Android平台的License,,请填写Android的config文件中的mpaasConfigLicense对应的值",
+                            "key" : "mpaasConfigLicense",
+                            "value" : ""
+                        }
+                    }
+                }
+            }
         }
     },
     /* 快应用特有相关 */

BIN
nativeplugins/Mpaas-Scan/android/baselib-10.1.60a.1139.aar


BIN
nativeplugins/Mpaas-Scan/android/bqcscanservice-build-10.1.60a.1097.aar


BIN
nativeplugins/Mpaas-Scan/android/lib/metainfo-annotations-1.3.1.jar


BIN
nativeplugins/Mpaas-Scan/android/logging-build-10.1.60a.1137.23.aar


BIN
nativeplugins/Mpaas-Scan/android/mascanengine-build-10.1.60a.1099.aar


BIN
nativeplugins/Mpaas-Scan/android/mpaas-resources-api-1.1.0.aar


BIN
nativeplugins/Mpaas-Scan/android/mpaas_scan-release.aar


BIN
nativeplugins/Mpaas-Scan/android/scanexport-build-10.1.60a.1137.aar


BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/APLog


BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/APLog-Info.plist


+ 106 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APFileLog.h

@@ -0,0 +1,106 @@
+//
+//  APFileLog.h
+//  APMobileFoundation
+//
+//  Created by zhengyi on 15/1/19.
+//  Copyright (c) 2015年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ *  本地文件log
+ */
+@interface APFileLog : NSObject
+
++(instancetype) sharedInstance;
+
+/**
+ * @brief 将log写入file.
+ *
+ * @param  需要写入的log.
+ *
+ * @return 成功失败.
+ */
+-(BOOL) writeFileLog:(NSString *)logString;
+
+/**
+ * @brief 将log以aes二进制流写入file.
+ *
+ * @param  logString 需要写入的log.
+ * @param  level 日志的级别.
+ *
+ * @return 成功失败.
+ */
+-(BOOL) writeAesFileLog:(NSString *)logString level:(int) level;
+
+/**
+ * @brief 删除过期的log.
+ *
+ * @param
+ *
+ * @return
+ */
+-(void) deleteExpiredLog;
+
+/**
+ * @brief .
+ *
+ * @param 时间,nil为当天
+ *
+ * @param completion 执行回调
+ */
+-(void)getLogByDay:(NSDate*)date resultBlock:(void (^)(NSString *log))completion;
+
+/**
+ * @brief log路径下的子目录.
+ *
+ * @param
+ *
+ * @return 子目录名字的数组
+ */
+-(NSArray *)subDirofLogPath;
+
+/**
+ * @brief 上传路径下log.
+ *
+ * @param 上传文件的名字
+ *
+ * @return
+ */
+
+-(void)uploadFileLog:(NSString *)fileName;
+
+/**
+ * @brief 上传路径下log.
+ *
+ * @param 上传文件的名字
+ *
+ * @param 服务端文件的名字
+ *
+ * @return
+ */
+-(void)uploadFileLog:(NSString *)lf toServerFile:(NSString *)sf;
+
+/**
+ * @brief 上传路径下log.
+ *
+ * @param 指定时间段,上传文件的名字
+ *
+ * @return
+ */
+
+-(void)uploadFileLogWithStartTime:(NSDate *)startTime endTime:(NSDate *)endTime serverFile:(NSString *)fileName;
+
+-(void)addExcuteBlockAfterUpload:(void (^)(void))block;
+
+-(void)uploadLogWithAccount:(NSString*)account userId:(NSString*)userId startDate:(NSDate*)startDate endDate:(NSDate*)endDate;
+
+-(NSArray *)getFilePathArrryInDoc:(NSString *)Document;
+
+-(void)getLogByPath:(NSString *)path resultBlock:(void(^)(NSString *log))completion;
+
+-(void)autoUpLoadLogSwitch:(BOOL)isOn withParam:(NSDictionary *)param;
+-(void)setCurrentUser:(NSString *)user;
+//-(void)setUsingNewFormatFromNow:(BOOL)newFormat;
+@end

+ 115 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APLog.h

@@ -0,0 +1,115 @@
+//
+//  APLog.h
+//  APUtils
+//
+//  Created by WenBi on 13-4-2.
+//  Copyright (c) 2013年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+typedef enum APLogLevel
+{
+	/** 特殊的日志级别,用于关闭所有的日志记录。 */
+	kAPLogLevelOff = (NSUInteger)-1,
+	
+	/** 出错级别,用于记录错误事件。 */
+	kAPLogLevelError = 40000,
+	
+	/** 警告级别,记录可能会影响应用程序正常运行的事件。 */
+	kAPLogLevelWarn = 30000,
+	
+	/** 信息级别,用于记录程序中的关键事件。 */
+	kAPLogLevelInfo = 20000,
+	
+	/** 调试级别,用于记录应用程序的调试信息。 */
+	kAPLogLevelDebug = 10000,
+	
+	/** 特殊的最低级别,用于打开所有的日志记录。 */
+	kAPLogLevelAll = 0,
+	
+} APLogLevel;
+
+
+/**
+ * Log a message with kAPLogLevelError level.
+ *
+ * @param message An NSString object that contains a printf-style string
+ *    containing a log message and placeholders for the arguments.
+ * @param ... The arguments displayed in the format string.
+ */
+#define APLogError(tag,fmt, ...) \
+APLogToFile(tag, kAPLogLevelError, fmt, ##__VA_ARGS__)
+
+/**
+ * Log a message with kAPLogLevelWarn level.
+ *
+ * @param message An NSString object that contains a printf-style string
+ *    containing a log message and placeholders for the arguments.
+ * @param ... The arguments displayed in the format string.
+ */
+#define APLogWarn(tag,fmt, ...) \
+APLogToFile(tag, kAPLogLevelWarn, fmt, ##__VA_ARGS__)
+
+/**
+ * Log a message with kAPLogLevelInfo level.
+ *
+ * @param message An NSString object that contains a printf-style string
+ *    containing a log message and placeholders for the arguments.
+ * @param ... The arguments displayed in the format string.
+ */
+#define APLogInfo(tag,fmt, ...) \
+APLogToFile(tag, kAPLogLevelInfo, fmt, ##__VA_ARGS__)
+
+/**
+ * Log a message with kAPLogLevelDebug level.
+ *
+ * @param message An NSString object that contains a printf-style string
+ *    containing a log message and placeholders for the arguments.
+ * @param ... The arguments displayed in the format string.
+ */
+#define APLogDebug(tag,fmt, ...) \
+APLogToFile(tag, kAPLogLevelDebug, fmt, ##__VA_ARGS__)
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 内部使用,业务不要用。
+     */
+    void APLogToFile(NSString *tag, int level, NSString *format, ...) NS_FORMAT_FUNCTION(3,4);
+    
+    /**
+     * 历史遗留,没有实现,业务不要用。
+     */
+    void APLog(NSString *format, ...) __attribute__((deprecated("Use APLogInfo instead")));
+
+    /**
+     内部使用,业务不要用,MPLog 开关设置
+     */
+    void MPLogEnable(BOOL enable);
+
+    /**
+     内部使用,业务不要用,输出到控制台,可关闭
+     */
+    void MPLog(NSString *format, ...);
+    
+    
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#if DEBUG
+#define APLogMonitor(tag,fmt, ...) APLogToFile(tag, kAPLogLevelInfo, fmt, ##__VA_ARGS__)
+#else
+#define APLogMonitor(tag,fmt, ...)
+#endif
+
+
+
+

+ 43 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APLogIO.h

@@ -0,0 +1,43 @@
+//
+//  aplog_io.h
+//  APLog
+//
+//  Created by myy on 17/1/17.
+//  Copyright © 2017年 Alipay. All rights reserved.
+//
+
+#ifndef aplog_io_h
+#define aplog_io_h
+
+
+#include <stdio.h>
+#include <stdlib.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    
+    typedef struct _APLogIO
+    {
+        int  isMmap;
+        int  (*fileOpen )(void* thiz, const char* szLogName, const char* szMmapName, int isFg, int mode);
+        int  (*fileWrite)(void* thiz, const void* buf, size_t len);
+        int  (*fileFlush)(void* thiz);
+        void (*fileClose)(void* thiz);
+        void (*fileHandleFgBgState)(void* thiz, int isFg);
+    }APLogIO;
+    
+    
+    APLogIO* APLogIOCreate(int isMmap);
+    void APLogIOFree(APLogIO* thiz);
+    
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+

+ 55 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APLogMgr.h

@@ -0,0 +1,55 @@
+//
+//  APLogMgr.h
+//  APLog
+//
+//  Created by myy on 17/1/2.
+//  Copyright © 2017年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+@protocol APLogZipInterface
+- (BOOL)createZipFile:(NSString*)zipFile;
+- (BOOL)addFileToZip:(NSString*)file newname:(NSString*)newname;
+- (BOOL)closeZipFile;
+@end
+
+
+@protocol APLogMgrDelegate
+- (NSString*)uploadLogUrl;
+- (NSString*)uploadStatusUrl;
+- (NSString*)currentUserId;
+- (id<APLogZipInterface>)makeZipObj;
+@optional
+- (BOOL)isLogFormatAssertCheck;
+- (BOOL)isCloseLogEncrypt;
+//- (BOOL)isCloseNewFormatLog;
+- (void)logWithoutEncrypt:(NSString*)logString;
+- (void)logExtra:(NSString*)tag level:(int)level logString:(NSString*)logString;
+@end
+
+
+//函数中在获取到日志时,可以通过 delegate 让外部可以获取日志并进行对应分析,将 Tag、level、logString 进行传递。
+// APLogListenerDelegate mpaas 专用
+@protocol APLogListenerDelegate <NSObject>
+@optional
+- (void)logExtra:(NSString*)tag level:(int)level logString:(NSString*)logString;
+@end
+
+@interface APLogMgr : NSObject
+@property (nonatomic, weak) id<APLogMgrDelegate> delegate;
+@property (nonatomic, weak) id<APLogListenerDelegate> listenerDelegate;
+@property (nonatomic, assign) BOOL logPrintEnable; // 日志打印开关
++ (APLogMgr*)sharedInstance;
+- (void)handleUserChanged;
+- (void)handleConfigUploadCmd:(NSArray*)taskArray;
+- (void)handleSyncUploadCmd:(NSString*)syncOpString; //处理sync下发的诊断命令
+- (void)handlePushDiagnosisCmd:(NSString *)pushOpString; //处理静默push下发的诊断命令
+- (void)handleAutoUpload:(NSDictionary*)param;
+- (void)addExcuteBlockAfterUpload:(void (^)(void))block;
+- (void)uploadLogWithAccount:(NSString*)account startDate:(NSDate*)startDate endDate:(NSDate*)endDate;
+@end
+
+
+

+ 24 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/Headers/APPrimitiveLog.h

@@ -0,0 +1,24 @@
+//
+//  APPrimitiveLog.h
+//  APMobileFoundation
+//
+//  Created by taoyuan on 16/6/6.
+//  Copyright © 2016年 Alipay. All rights reserved.
+//
+
+#ifndef APPrimitiveLog_h
+#define APPrimitiveLog_h
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    void APPrimitiveLog(const char *tag, int level, const char *format, ...) __attribute__((deprecated("Use APLogInfo instead")));
+    
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif

BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/Info.plist


BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeDirectory


BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeRequirements


BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeRequirements-1


+ 214 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeResources

@@ -0,0 +1,214 @@
+<?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>files</key>
+	<dict>
+		<key>APLog-Info.plist</key>
+		<data>
+		Po//BA5tM1BE58borc33LNpqXyw=
+		</data>
+		<key>Headers/APFileLog.h</key>
+		<data>
+		TzFJIQJZbF5XGq/hVt3OQZMhTYA=
+		</data>
+		<key>Headers/APLog.h</key>
+		<data>
+		CLtq/dozwrjT96kPW/nNpMi6JbQ=
+		</data>
+		<key>Headers/APLogIO.h</key>
+		<data>
+		niXfJWcmT1WmtZTTvkk8JlDfUOM=
+		</data>
+		<key>Headers/APLogMgr.h</key>
+		<data>
+		KCYAreW8HmtSds9eN4fLx3Pk5r4=
+		</data>
+		<key>Headers/APPrimitiveLog.h</key>
+		<data>
+		z/r3IO1cwY4QR/4zicGZt4b+Yfs=
+		</data>
+		<key>Info.plist</key>
+		<data>
+		8HgBzOkISnxkPpITVplmpgv5qIs=
+		</data>
+		<key>en.lproj/InfoPlist.strings</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zmV6UqBSo6r1NOz798vd5O4zTBA=
+			</data>
+			<key>optional</key>
+			<true/>
+		</dict>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>APLog-Info.plist</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Po//BA5tM1BE58borc33LNpqXyw=
+			</data>
+			<key>hash2</key>
+			<data>
+			B2XyqSNoreUIQ8uDojzpys2o9qi8XuLbypPrkCR+l8w=
+			</data>
+		</dict>
+		<key>Headers/APFileLog.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			TzFJIQJZbF5XGq/hVt3OQZMhTYA=
+			</data>
+			<key>hash2</key>
+			<data>
+			rKTpdWkuBQA7K+Fi075DCX/8ZlPgw74898o643guX0o=
+			</data>
+		</dict>
+		<key>Headers/APLog.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			CLtq/dozwrjT96kPW/nNpMi6JbQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			UiPBv2wBUspUA7j4CAD6he9s8SpkUIIhh8a1XYRDQvM=
+			</data>
+		</dict>
+		<key>Headers/APLogIO.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			niXfJWcmT1WmtZTTvkk8JlDfUOM=
+			</data>
+			<key>hash2</key>
+			<data>
+			b7aHNIY7oSnSNnhhKiSCvuyOH2OOhWqo+7AGCgD61XM=
+			</data>
+		</dict>
+		<key>Headers/APLogMgr.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			KCYAreW8HmtSds9eN4fLx3Pk5r4=
+			</data>
+			<key>hash2</key>
+			<data>
+			ffH9bWVKekx4k4vLPbtzG5ikluCeL0RVrdiOW7GtVjw=
+			</data>
+		</dict>
+		<key>Headers/APPrimitiveLog.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			z/r3IO1cwY4QR/4zicGZt4b+Yfs=
+			</data>
+			<key>hash2</key>
+			<data>
+			ku5mCCOQkHHjk2qjxgpg3blQPdZWuuRab+WvWJwpoCg=
+			</data>
+		</dict>
+		<key>en.lproj/InfoPlist.strings</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zmV6UqBSo6r1NOz798vd5O4zTBA=
+			</data>
+			<key>hash2</key>
+			<data>
+			kmHsztpgjvF0JW5f3HdMHm49z1M0CcG8OT1JDQHHE/E=
+			</data>
+			<key>optional</key>
+			<true/>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 0 - 0
nativeplugins/Mpaas-Scan/ios/APLog.framework/_CodeSignature/CodeSignature


BIN
nativeplugins/Mpaas-Scan/ios/APLog.framework/en.lproj/InfoPlist.strings


BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/APProtocolBuffers


BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/APProtocolBuffers-Info.plist


+ 75 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/APDPBGeneratedMessage.h

@@ -0,0 +1,75 @@
+//
+//  APDPBGeneratedMessage.h
+//  DynamicPB
+//
+//  Created by cuinacai on 15/12/19.
+//  Copyright © 2015年 cuinacai. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "APPBGeneratedMessage.h"
+
+typedef enum {
+    PBFieldOptional = 0,
+    PBFieldRequired = 1 ,
+    PBFieldRepeated = 2
+} PBFieldLabel;
+
+typedef enum {
+    //Type=2
+    PBFieldTypeString = 0,
+    PBFieldTypeBytes,
+    PBFieldTypeMessage,
+    //Type=0
+    PBFieldTypeBOOL,
+    PBFieldTypeEnum,
+    PBFieldTypeInt32,
+    PBFieldTypeInt64,
+    PBFieldTypeUInt32,
+    PBFieldTypeUInt64,
+    //Type=5
+    PBFieldTypeFloat32,
+    PBFieldTypeFixed32,
+    PBFieldTypeSFixed32,
+    //Type=1
+    PBFieldTypeFloat64,
+    PBFieldTypeFixed64,
+    PBFieldTypeSFixed64,
+} PBFieldType;
+
+typedef struct {
+    Byte fieldNumber;
+    Byte fieldLabel;//PBFieldLabel
+    Byte fieldType;//PBFieldType
+    BOOL packed;//
+    __unsafe_unretained NSString *fieldName;
+    __unsafe_unretained NSString *fieldClassName;
+    union {
+        SInt32 _enump;
+        SInt32 _int32p;
+        SInt64 _int64p;
+        UInt32 _uint32p;
+        UInt64 _uint64p;
+        BOOL _boolp;
+        Float32 _float32p;
+        Float64 _float64p;
+    }baseTypeInitValue;
+    __unsafe_unretained NSString *stringInitValue;
+} PBMsgFieldInfo;
+
+typedef struct {
+    PBMsgFieldInfo *fieldInfo;
+    int count;
+} PBMsgFieldInfos;
+
+@interface APDPBGeneratedMessage : APPBGeneratedMessage<GeneratedMessageProtocol>
+
+/**
+ 业务切不可调用修改
+
+ @return pb描述文件
+ */
++(PBMsgFieldInfos*)_fieldInfos;
+@end
+
+

+ 50 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/APPBGeneratedMessage.h

@@ -0,0 +1,50 @@
+//
+//  APPBGeneratedMessage.h
+//  APProtocolBuffers
+//
+//  Created by JinWenXiang on 15/6/17.
+//  Copyright (c) 2015年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "GeneratedMessage.h"
+
+@interface APPBGeneratedMessage : PBGeneratedMessage {
+}
+
+/* @protected */
+- (BOOL) parseUnknownField:(PBCodedInputStream*) input
+             unknownFields:(PBUnknownFieldSetBuilder*) unknownFields
+         extensionRegistry:(PBExtensionRegistry*) extensionRegistry
+                       tag:(SInt32) tag;
+
+/**
+ * Parse {@code data} as a message of this type and merge it with the
+ * message being built.  This is just a small wrapper around
+ * {@link #mergeFrom(CodedInputStream)}.
+ */
+- (void) mergeFromData:(NSData*) data;
+//merge from CodedInputStream
+- (void) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+
+/**
+ * Like {@link Builder#mergeFrom(CodedInputStream)}, but also
+ * parses extensions.  The extensions that you want to be able to parse
+ * must be registered in {@code extensionRegistry}.  Extensions not in
+ * the registry will be treated as unknown fields.
+ */
+- (void) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+//unknown fields
+- (PBUnknownFieldSet*) unknownFields;
+//set unknown fields
+- (void) setUnknownFields:(PBUnknownFieldSet*) unknownFields;
+/**
+ * Http原始的如果response
+ */
+@property(nonatomic, strong) NSURLResponse *response;
+/**
+ * 如果response是NSHTTPURLResponse返回response的allHeaderFields
+ */
+-(NSDictionary *)allResponseHeaderFields;
+@end

+ 39 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/AbstractMessage.h

@@ -0,0 +1,39 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "Message.h"
+
+/**
+ * A partial implementation of the {@link Message} interface which implements
+ * as many methods of that interface as possible in terms of other methods.
+ *
+ * @author Cyrus Najmabadi
+ */
+@interface PBAbstractMessage : NSObject<PBMessage> {
+@private
+}
+
+/**
+ * Writes a string description of the message into the given mutable string
+ * respecting a given indent.
+ */
+- (void)writeDescriptionTo:(NSMutableString*) output
+                withIndent:(NSString*) indent;
+//store in dictionary
+- (void) storeInDictionary: (NSMutableDictionary *) dic;
+
+@end

+ 29 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/AbstractMessageBuilder.h

@@ -0,0 +1,29 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "MessageBuilder.h"
+
+/**
+ * A partial implementation of the {@link Message.Builder} interface which
+ * implements as many methods of that interface as possible in terms of
+ * other methods.
+ */
+@interface PBAbstractMessageBuilder : NSObject<PBMessageBuilder> {
+}
+
+@end
+

+ 30 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Bootstrap.h

@@ -0,0 +1,30 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "ForwardDeclarations.h"
+
+#import "CodedInputStream.h"
+#import "CodedOutputStream.h"
+//#import "ExtendableMessage.h"
+//#import "ExtendableMessageBuilder.h"
+#import "ExtensionRegistry.h"
+#import "GeneratedMessage.h"
+//#import "GeneratedMessageBuilder.h"
+#import "MessageBuilder.h"
+#import "UnknownFieldSet.h"
+#import "UnknownFieldSetBuilder.h"
+#import "Utilities.h"

+ 194 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/CodedInputStream.h

@@ -0,0 +1,194 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@class PBExtensionRegistry;
+@class PBUnknownFieldSetBuilder;
+@protocol PBMessageBuilder;
+@class APPBGeneratedMessage;
+
+/**
+ * Reads and decodes protocol message fields.
+ *
+ * This class contains two kinds of methods:  methods that read specific
+ * protocol message constructs and field types (e.g. {@link #readTag()} and
+ * {@link #readInt32()}) and methods that read low-level values (e.g.
+ * {@link #readRawVarint32()} and {@link #readRawBytes}).  If you are reading
+ * encoded protocol messages, you should use the former methods, but if you are
+ * reading some other format of your own design, use the latter.
+ *
+ * @author Cyrus Najmabadi
+ */
+@interface PBCodedInputStream : NSObject {
+@private
+  NSMutableData* buffer;
+  SInt32 bufferSize;
+  SInt32 bufferSizeAfterLimit;
+  SInt32 bufferPos;
+  NSInputStream* input;
+  SInt32 lastTag;
+
+  /**
+   * The total number of bytes read before the current buffer.  The total
+   * bytes read up to the current position can be computed as
+   * {@code totalBytesRetired + bufferPos}.
+   */
+  SInt32 totalBytesRetired;
+
+  /** The absolute position of the end of the current message. */
+  SInt32 currentLimit;
+
+  /** See setRecursionLimit() */
+  SInt32 recursionDepth;
+  SInt32 recursionLimit;
+
+  /** See setSizeLimit() */
+  SInt32 sizeLimit;
+}
+//用data初始化stream
++ (PBCodedInputStream*) streamWithData:(NSData*) data;
+//用NSInputStream初始化stream
++ (PBCodedInputStream*) streamWithInputStream:(NSInputStream*) input;
+
+/**
+ * Attempt to read a field tag, returning zero if we have reached EOF.
+ * Protocol message parsers use this to read tags, since a protocol message
+ * may legally end wherever a tag occurs, and zero is not a valid tag number.
+ */
+- (SInt32) readTag;
+//bf
+- (BOOL) refillBuffer:(BOOL) mustSucceed;
+//读取Float64类型
+- (Float64) readDouble;
+//读取Float32类型
+- (Float32) readFloat;
+//读取UInt64类型
+- (SInt64) readUInt64;
+//读取UInt32类型
+- (SInt32) readUInt32;
+//读取Int64类型
+- (SInt64) readInt64;
+//读取SInt32类型
+- (SInt32) readInt32;
+//读取SInt64类型
+- (SInt64) readFixed64;
+//读取SInt32类型
+- (SInt32) readFixed32;
+//读取SInt32类型
+- (SInt32) readEnum;
+//读取SInt32类型
+- (SInt32) readSFixed32;
+//读取SInt64类型
+- (SInt64) readSFixed64;
+//读取SInt32类型
+- (SInt32) readSInt32;
+//读取SInt64类型
+- (SInt64) readSInt64;
+
+/**
+ * Read one byte from the input.
+ *
+ * @throws InvalidProtocolBuffer The end of the stream or the current
+ *                                        limit was reached.
+ */
+- (int8_t) readRawByte;
+
+/**
+ * Read a raw Varint from the stream.  If larger than 32 bits, discard the
+ * upper bits.
+ */
+- (SInt32) readRawVarint32;
+//读取Varint64
+- (SInt64) readRawVarint64;
+//读取LittleEndian32
+- (SInt32) readRawLittleEndian32;
+//读取LittleEndian64
+- (SInt64) readRawLittleEndian64;
+
+/**
+ * Read a fixed size of bytes from the input.
+ *
+ * @throws InvalidProtocolBuffer The end of the stream or the current
+ *                                        limit was reached.
+ */
+- (NSData*) readRawData:(SInt32) size;
+
+/**
+ * Reads and discards a single field, given its tag value.
+ *
+ * @return {@code false} if the tag is an endgroup tag, in which case
+ *         nothing is skipped.  Otherwise, returns {@code true}.
+ */
+- (BOOL) skipField:(SInt32) tag;
+
+
+/**
+ * Reads and discards {@code size} bytes.
+ *
+ * @throws InvalidProtocolBuffer The end of the stream or the current
+ *                                        limit was reached.
+ */
+- (void) skipRawData:(SInt32) size;
+
+/**
+ * Reads and discards an entire message.  This will read either until EOF
+ * or until an endgroup tag, whichever comes first.
+ */
+- (void) skipMessage;
+
+//是否结束
+- (BOOL) isAtEnd;
+//push限制
+- (SInt32) pushLimit:(SInt32) byteLimit;
+//recompute限制
+- (void) recomputeBufferSizeAfterLimit;
+//pop限制
+- (void) popLimit:(SInt32) oldLimit;
+//bytesUntilLimit
+- (SInt32) bytesUntilLimit;
+
+
+/** Read an embedded message field value from the stream. */
+- (void) readMessage:(id<PBMessageBuilder>) builder extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+/** Read an embedded message field value from the stream. */
+- (void) readAPMessage:(APPBGeneratedMessage*) message extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+//读取BOOL
+- (BOOL) readBool;
+//读取string
+- (NSString*) readString;
+//读取data
+- (NSData*) readData;
+
+//- (void) readGroup:(SInt32) fieldNumber builder:(id<PBMessageBuilder>) builder extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+/**
+ * Reads a {@code group} field value from the stream and merges it into the
+ * given {@link UnknownFieldSet}.
+ */
+- (void) readUnknownGroup:(SInt32) fieldNumber builder:(PBUnknownFieldSetBuilder*) builder;
+
+/**
+ * Verifies that the last call to readTag() returned the given tag value.
+ * This is used to verify that a nested group ended with the correct
+ * end tag.
+ *
+ * @throws InvalidProtocolBuffer {@code value} does not match the
+ *                                        last tag.
+ */
+- (void) checkLastTagWas:(SInt32) value;
+
+@end

+ 177 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/CodedOutputStream.h

@@ -0,0 +1,177 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * Encodes and writes protocol message fields.
+ *
+ * <p>This class contains two kinds of methods:  methods that write specific
+ * protocol message constructs and field types (e.g. {@link #writeTag} and
+ * {@link #writeInt32}) and methods that write low-level values (e.g.
+ * {@link #writeRawVarint32} and {@link #writeRawBytes}).  If you are
+ * writing encoded protocol messages, you should use the former methods, but if
+ * you are writing some other format of your own design, use the latter.
+ *
+ * <p>This class is totally unsynchronized.
+ *
+ * @author Cyrus Najmabadi
+ */
+
+@class PBUnknownFieldSet;
+@class RingBuffer;
+@protocol PBMessage;
+
+@interface PBCodedOutputStream : NSObject {
+    NSOutputStream *output;
+    RingBuffer *buffer;
+}
+
+/** init stream with data. */
++ (PBCodedOutputStream*) streamWithData:(NSMutableData*) data;
+/** init stream with NSOutputStream. */
++ (PBCodedOutputStream*) streamWithOutputStream:(NSOutputStream*) output;
+/** init stream with NSOutputStream. */
++ (PBCodedOutputStream*) streamWithOutputStream:(NSOutputStream*) output bufferSize:(SInt32) bufferSize;
+
+/**
+ * Flushes the stream and forces any buffered bytes to be written.  This
+ * does not flush the underlying NSOutputStream. Returns free space in buffer.
+ */
+- (void) flush;
+
+/** Write a single byte. */
+- (void) writeRawByte:(uint8_t) value;
+
+/** Encode and write a tag. */
+- (void) writeTag:(SInt32) fieldNumber format:(SInt32) format;
+
+/** Write a little-endian 32-bit integer. */
+- (void) writeRawLittleEndian32:(SInt32) value;
+/** Write a little-endian 64-bit integer. */
+- (void) writeRawLittleEndian64:(SInt64) value;
+
+/**
+ * Encode and write a varint.  {@code value} is treated as
+ * unsigned, so it won't be sign-extended if negative.
+ */
+- (void) writeRawVarint32:(SInt32) value;
+/** Encode and write a varint. */
+- (void) writeRawVarint64:(SInt64) value;
+
+//- (void) writeRawLittleEndian32:(SInt32) value;
+//- (void) writeRawLittleEndian64:(SInt64) value;
+
+/** Write an array of bytes. */
+- (void) writeRawData:(const NSData*) data;
+/** Write an array of bytes. */
+- (void) writeRawData:(const NSData*) data offset:(SInt32) offset length:(SInt32) length;
+/** Write an array of bytes. */
+- (void) writeData:(SInt32) fieldNumber value:(const NSData*) value;
+
+/** write Float64 value. */
+- (void) writeDouble:(SInt32) fieldNumber value:(Float64) value;
+/** write Float32 value. */
+- (void) writeFloat:(SInt32) fieldNumber value:(Float32) value;
+/** write SInt64 value. */
+- (void) writeUInt64:(SInt32) fieldNumber value:(SInt64) value;
+/** write SInt64 value. */
+- (void) writeInt64:(SInt32) fieldNumber value:(SInt64) value;
+/** write SInt32 value. */
+- (void) writeInt32:(SInt32) fieldNumber value:(SInt32) value;
+/** write SInt64 value. */
+- (void) writeFixed64:(SInt32) fieldNumber value:(SInt64) value;
+/** write SInt32 value. */
+- (void) writeFixed32:(SInt32) fieldNumber value:(SInt32) value;
+/** write BOOL value. */
+- (void) writeBool:(SInt32) fieldNumber value:(BOOL) value;
+/** write NSString value. */
+- (void) writeString:(SInt32) fieldNumber value:(const NSString*) value;
+/** write PBMessage value. */
+- (void) writeGroup:(SInt32) fieldNumber value:(const id<PBMessage>) value;
+/** write PBUnknownFieldSet value. */
+- (void) writeUnknownGroup:(SInt32) fieldNumber value:(const PBUnknownFieldSet*) value;
+/** write PBMessage value. */
+- (void) writeMessage:(SInt32) fieldNumber value:(const id<PBMessage>) value;
+/** write SInt32 value. */
+- (void) writeUInt32:(SInt32) fieldNumber value:(SInt32) value;
+/** write SInt32 value. */
+- (void) writeSFixed32:(SInt32) fieldNumber value:(SInt32) value;
+/** write SInt64 value. */
+- (void) writeSFixed64:(SInt32) fieldNumber value:(SInt64) value;
+/** write SInt32 value. */
+- (void) writeSInt32:(SInt32) fieldNumber value:(SInt32) value;
+/** write SInt64 value. */
+- (void) writeSInt64:(SInt32) fieldNumber value:(SInt64) value;
+
+/** write Float64 value with no tag. */
+- (void) writeDoubleNoTag:(Float64) value;
+/** write Float32 value with no tag. */
+- (void) writeFloatNoTag:(Float32) value;
+/** write SInt64 value with no tag. */
+- (void) writeUInt64NoTag:(SInt64) value;
+/** write SInt64 value with no tag. */
+- (void) writeInt64NoTag:(SInt64) value;
+/** write SInt32 value with no tag. */
+- (void) writeInt32NoTag:(SInt32) value;
+/** write SInt64 value with no tag. */
+- (void) writeFixed64NoTag:(SInt64) value;
+/** write SInt32 value with no tag. */
+- (void) writeFixed32NoTag:(SInt32) value;
+/** write BOOL value with no tag. */
+- (void) writeBoolNoTag:(BOOL) value;
+/** write NSString value with no tag. */
+- (void) writeStringNoTag:(const NSString*) value;
+/** write PBMessage value with no tag. */
+- (void) writeGroupNoTag:(SInt32) fieldNumber value:(const id<PBMessage>) value;
+/** write PBUnknownFieldSet value with no tag. */
+- (void) writeUnknownGroupNoTag:(SInt32) fieldNumber value:(const PBUnknownFieldSet*) value;
+/** write PBMessage value with no tag. */
+- (void) writeMessageNoTag:(const id<PBMessage>) value;
+/** write NSData value with no tag. */
+- (void) writeDataNoTag:(const NSData*) value;
+/** write SInt32 value with no tag. */
+- (void) writeUInt32NoTag:(SInt32) value;
+/** write SInt32 value with no tag. */
+- (void) writeEnumNoTag:(SInt32) value;
+/** write SInt32 value with no tag. */
+- (void) writeSFixed32NoTag:(SInt32) value;
+/** write SInt64 value with no tag. */
+- (void) writeSFixed64NoTag:(SInt64) value;
+/** write SInt32 value with no tag. */
+- (void) writeSInt32NoTag:(SInt32) value;
+/** write SInt64 value with no tag. */
+- (void) writeSInt64NoTag:(SInt64) value;
+
+
+/**
+ * Write a MessageSet extension field to the stream.  For historical reasons,
+ * the wire format differs from normal fields.
+ */
+- (void) writeMessageSetExtension:(SInt32) fieldNumber value:(const id<PBMessage>) value;
+
+/**
+ * Write an unparsed MessageSet extension field to the stream.  For
+ * historical reasons, the wire format differs from normal fields.
+ */
+- (void) writeRawMessageSetExtension:(SInt32) fieldNumber value:(const NSData*) value;
+
+/**
+ * Write an enum field, including tag, to the stream.  Caller is responsible
+ * for converting the enum value to its numeric value.
+ */
+- (void) writeEnum:(SInt32) fieldNumber value:(SInt32) value;
+
+@end

+ 85 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ExtensionField.h

@@ -0,0 +1,85 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "WireFormat.h"
+
+@class PBCodedInputStream;
+@class PBCodedOutputStream;
+//@class PBExtendableMessageBuilder;
+@class PBExtensionRegistry;
+@class PBUnknownFieldSetBuilder;
+
+@protocol PBExtensionField
+/**
+ *	@brief	fieldNumber
+ *
+ *	@return int32
+ */
+- (SInt32) fieldNumber;
+/**
+ *	@brief	wireType
+ *
+ *	@return PBWireFormat
+ */
+- (PBWireFormat) wireType;
+/**
+ *	@brief	isRepeated
+ *
+ *	@return YES/NO
+ */
+- (BOOL) isRepeated;
+/**
+ *	@brief	extendedClass
+ *
+ *	@return CLass
+ */
+- (Class) extendedClass;
+/**
+ *	@brief	默认值
+ *
+ *	@return instance
+ */
+- (instancetype) defaultValue;
+
+//- (void) mergeFromCodedInputStream:(PBCodedInputStream*) input
+//                     unknownFields:(PBUnknownFieldSetBuilder*) unknownFields
+//                 extensionRegistry:(PBExtensionRegistry*) extensionRegistry
+//                           builder:(PBExtendableMessageBuilder*) builder
+//                               tag:(SInt32) tag;
+- (void) writeValue:(id) value includingTagToCodedOutputStream:(PBCodedOutputStream*) output;
+/**
+ *	@brief	计算长度
+ *
+ *	@return size
+ */
+- (SInt32) computeSerializedSizeIncludingTag:(id) value;
+/**
+ *	@brief 打印描述
+ *
+ *	@return
+ */
+- (void) writeDescriptionOf:(id) value
+                         to:(NSMutableString*) output
+                 withIndent:(NSString*) indent;
+/**
+ *	@brief	添加到dic
+ *
+ *	@return 
+ */
+- (void) addDictionaryEntriesOf:(id) value
+                             to:(NSMutableDictionary*) dictionary;
+@end

+ 88 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ExtensionRegistry.h

@@ -0,0 +1,88 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * A table of known extensions, searchable by name or field number.  When
+ * parsing a protocol message that might have extensions, you must provide
+ * an {@code ExtensionRegistry} in which you have registered any extensions
+ * that you want to be able to parse.  Otherwise, those extensions will just
+ * be treated like unknown fields.
+ *
+ * <p>For example, if you had the {@code .proto} file:
+ *
+ * <pre>
+ * option java_class = "MyProto";
+ *
+ * message Foo {
+ *   extensions 1000 to max;
+ * }
+ *
+ * extend Foo {
+ *   optional int32 bar;
+ * }
+ * </pre>
+ *
+ * Then you might write code like:
+ *
+ * <pre>
+ * ExtensionRegistry registry = ExtensionRegistry.newInstance();
+ * registry.add(MyProto.bar);
+ * MyProto.Foo message = MyProto.Foo.parseFrom(input, registry);
+ * </pre>
+ *
+ * <p>Background:
+ *
+ * <p>You might wonder why this is necessary.  Two alternatives might come to
+ * mind.  First, you might imagine a system where generated extensions are
+ * automatically registered when their containing classes are loaded.  This
+ * is a popular technique, but is bad design; among other things, it creates a
+ * situation where behavior can change depending on what classes happen to be
+ * loaded.  It also introduces a security vulnerability, because an
+ * unprivileged class could cause its code to be called unexpectedly from a
+ * privileged class by registering itself as an extension of the right type.
+ *
+ * <p>Another option you might consider is lazy parsing: do not parse an
+ * extension until it is first requested, at which point the caller must
+ * provide a type to use.  This introduces a different set of problems.  First,
+ * it would require a mutex lock any time an extension was accessed, which
+ * would be slow.  Second, corrupt data would not be detected until first
+ * access, at which point it would be much harder to deal with it.  Third, it
+ * could violate the expectation that message objects are immutable, since the
+ * type provided could be any arbitrary message class.  An unpriviledged user
+ * could take advantage of this to inject a mutable object into a message
+ * belonging to priviledged code and create mischief.
+ *
+ * @author Cyrus Najmabadi
+ */
+
+#import "ExtensionField.h"
+
+@interface PBExtensionRegistry : NSObject {
+@protected
+  NSDictionary* classMap;
+}
+//空的Registry,默认值
++ (PBExtensionRegistry*) emptyRegistry;
+//通过fieldNumber获取Field
+- (id<PBExtensionField>) getExtension:(Class) clazz fieldNumber:(SInt32) fieldNumber;
+
+/* @protected */
+- (instancetype) initWithClassMap:(NSDictionary*) classMap;
+//字符串转为类
+- (id) keyForClass:(Class) clazz;
+
+@end

+ 16 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ExternKVParam.h

@@ -0,0 +1,16 @@
+//
+//  ExternKVParam.h
+//  APProtocolBuffers
+//
+//  Created by cuinacai on 15/11/27.
+//  Copyright © 2015年 Alipay. All rights reserved.
+//
+
+#import "APPBGeneratedMessage.h"
+
+@interface ExternKVParam : APPBGeneratedMessage<GeneratedMessageProtocol>
+@property (readonly) BOOL hasKey;
+@property (readonly) BOOL hasValue;
+@property (nonatomic,strong) NSString* key;
+@property (nonatomic,strong) NSString* value;
+@end

+ 55 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Field.h

@@ -0,0 +1,55 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import <Foundation/Foundation.h>
+
+@class PBArray;
+@class PBAppendableArray;
+@class PBCodedOutputStream;
+
+@interface PBField : NSObject
+{
+@protected
+	PBAppendableArray *	_varintArray;
+	PBAppendableArray *	_fixed32Array;
+	PBAppendableArray *	_fixed64Array;
+	NSMutableArray *	_lengthDelimitedArray;
+	NSMutableArray *	_groupArray;
+}
+
+@property (nonatomic,strong,readonly) PBArray *	varintArray;
+@property (nonatomic,strong,readonly) PBArray *	fixed32Array;
+@property (nonatomic,strong,readonly) PBArray *	fixed64Array;
+@property (nonatomic,strong,readonly) NSArray *	lengthDelimitedArray;
+@property (nonatomic,strong,readonly) NSArray *	groupArray;
+//单例
++ (PBField *)defaultInstance;
+
+//SerializedSize
+- (SInt32)getSerializedSize:(SInt32)fieldNumber;
+//SerializedSize
+- (SInt32)getSerializedSizeAsMessageSetExtension:(SInt32)fieldNumber;
+
+//write to output stream
+- (void)writeTo:(SInt32) fieldNumber output:(PBCodedOutputStream *)output;
+//write Message
+- (void)writeAsMessageSetExtensionTo:(SInt32)fieldNumber output:(PBCodedOutputStream *)output;
+//write Description
+- (void)writeDescriptionFor:(SInt32) fieldNumber
+                         to:(NSMutableString*) output
+                 withIndent:(NSString*) indent;
+@end

+ 34 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ForwardDeclarations.h

@@ -0,0 +1,34 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@protocol PBMessage;
+@protocol PBMessageBuilder;
+@protocol PBExtensionField;
+
+@class PBAbstractMessage;
+@class PBCodedInputStream;
+@class PBCodedOutputStream;
+//@class PBConcreteExtensionField;
+//@class PBExtendableMessageBuilder;
+//@class PBExtendableMessage;
+@class PBExtensionRegistry;
+@class PBField;
+@class PBGeneratedMessage;
+//@class PBMutableExtensionRegistry;
+@class PBMutableField;
+@class PBUnknownFieldSet;
+@class PBUnknownFieldSetBuilder;

+ 90 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/GeneratedMessage.h

@@ -0,0 +1,90 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "AbstractMessage.h"
+
+/**
+ * All generated protocol message classes extend this class.  This class
+ * implements most of the Message and Builder interfaces using Java reflection.
+ * Users can ignore this class and pretend that generated messages implement
+ * the Message interface directly.
+ *
+ * @author Cyrus Najmabadi
+ */
+@class PBExtensionRegistry;
+@class PBCodedInputStream;
+@protocol GeneratedMessageProtocol <PBMessage>
+/**
+ *	@brief	二进制pb数据转化为类
+ *
+ *	@param 	data
+ *
+ *	@return pb类
+ */
++ (id<GeneratedMessageProtocol>) parseFromData:(NSData*) data;
+@optional
+/**
+ *	@brief	二进制pb数据转化为PB类
+ *
+ *	@param 	input
+ *
+ *	@return pb类
+ */
++ (id<GeneratedMessageProtocol>) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*)extensionRegistry;
+/**
+ *	@brief	NSInputStream里面的数据转化为PB类
+ *
+ *	@param 	input
+ *
+ *	@return pb类
+ */
++ (id<GeneratedMessageProtocol>) parseFromInputStream:(NSInputStream*) input;
+/**
+ *	@brief	NSInputStream数据转化为类
+ *
+ *	@param 	input
+ *
+ *	@return pb类
+ */
++ (id<GeneratedMessageProtocol>) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+/**
+ *	@brief	PBCodedInputStream里面的数据转化为PB类
+ *
+ *	@param 	input
+ *
+ *	@return pb类
+ */
++ (id<GeneratedMessageProtocol>) parseFromCodedInputStream:(PBCodedInputStream*) input;
+/**
+ *	@brief	PBCodedInputStream数据转化为类
+ *
+ *	@param 	input
+ *
+ *	@return pb类
+ */
++ (id<GeneratedMessageProtocol>) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBGeneratedMessage : PBAbstractMessage {
+//@private
+  PBUnknownFieldSet* unknownFields;
+
+@protected
+  SInt32 memoizedSerializedSize;
+}
+
+@end

+ 88 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Message.h

@@ -0,0 +1,88 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@class PBCodedOutputStream;
+@class PBUnknownFieldSet;
+@protocol PBMessageBuilder;
+
+/**
+ * Abstract interface implemented by Protocol Message objects.
+ *
+ * @author Cyrus Najmabadi
+ */
+@protocol PBMessage<NSObject>
+/**
+ * Get an instance of the type with all fields set to their default values.
+ * This may or may not be a singleton.  This differs from the
+ * {@code getDefaultInstance()} method of generated message classes in that
+ * this method is an abstract method of the {@code Message} interface
+ * whereas {@code getDefaultInstance()} is a static method of a specific
+ * class.  They return the same thing.
+ */
+- (id<PBMessage>) defaultInstance;
+
+/**
+ * Get the {@code UnknownFieldSet}
+ */
+- (PBUnknownFieldSet*) unknownFields;
+
+/**
+ * Get the number of bytes required to encode this message.  The result
+ * is only computed on the first call and memoized after that.
+ */
+- (SInt32) serializedSize;
+
+/**
+ * Returns true if all required fields in the message and all embedded
+ * messages are set, false otherwise.
+ */
+- (BOOL) isInitialized;
+
+/**
+ * Serializes the message and writes it to {@code output}.  This does not
+ * flush or close the stream.
+ */
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+/**
+ * Serializes the message and writes it to {@code output}. 
+ */
+- (void) writeToOutputStream:(NSOutputStream*) output;
+
+/**
+ * Serializes the message to a {@code ByteString} and returns it. This is
+ * just a trivial wrapper around
+ * {@link #writeTo(CodedOutputStream)}.
+ */
+- (NSData*) data;
+
+/**
+ * Constructs a new builder for a message of the same type as this message.
+ */
+- (id<PBMessageBuilder>) builder;
+
+/**
+ * Constructs a builder initialized with the current message.  Use this to
+ * derive a new message from the current one.
+ */
+- (id<PBMessageBuilder>) toBuilder;
+
+/**
+ * Returns a string description of the message.
+ */
+- (NSString*) description;
+
+@end

+ 145 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/MessageBuilder.h

@@ -0,0 +1,145 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "Message.h"
+
+@class PBCodedInputStream;
+@class PBExtensionRegistry;
+
+/**
+ * Abstract interface implemented by Protocol Message builders.
+ */
+@protocol PBMessageBuilder<NSObject>
+/** Resets all fields to their default values. */
+- (id<PBMessageBuilder>) clear;
+
+/**
+ * Construct the final message.  Once this is called, the Builder is no
+ * longer valid, and calling any other method may throw a
+ * NullPointerException.  If you need to continue working with the builder
+ * after calling {@code build()}, {@code clone()} it first.
+ * @throws UninitializedMessageException The message is missing one or more
+ *         required fields (i.e. {@link #isInitialized()} returns false).
+ *         Use {@link #buildPartial()} to bypass this check.
+ */
+- (id<PBMessage>) build;
+
+/**
+ * Like {@link #build()}, but does not throw an exception if the message
+ * is missing required fields.  Instead, a partial message is returned.
+ */
+- (id<PBMessage>) buildPartial;
+/**
+ * 子类实现该方法
+ */
+- (id<PBMessageBuilder>) clone;
+
+/**
+ * Returns true if all required fields in the message and all embedded
+ * messages are set, false otherwise.
+ */
+- (BOOL) isInitialized;
+
+/**
+ * Get the message's type's default instance.
+ * See {@link Message#getDefaultInstanceForType()}.
+ */
+- (id<PBMessage>) defaultInstance;
+
+/**
+ * 未知字段(新加字段)
+ */
+- (PBUnknownFieldSet*) unknownFields;
+/**
+ * 设置未知字段(新加字段)
+ */
+- (id<PBMessageBuilder>) setUnknownFields:(PBUnknownFieldSet*) unknownFields;
+
+/**
+ * Merge some unknown fields into the {@link UnknownFieldSet} for this
+ * message.
+ */
+- (id<PBMessageBuilder>) mergeUnknownFields:(PBUnknownFieldSet*) unknownFields;
+
+/**
+ * Parses a message of this type from the input and merges it with this
+ * message, as if using {@link Builder#mergeFrom(Message)}.
+ *
+ * <p>Warning:  This does not verify that all required fields are present in
+ * the input message.  If you call {@link #build()} without setting all
+ * required fields, it will throw an {@link UninitializedMessageException},
+ * which is a {@code RuntimeException} and thus might not be caught.  There
+ * are a few good ways to deal with this:
+ * <ul>
+ *   <li>Call {@link #isInitialized()} to verify that all required fields
+ *       are set before building.
+ *   <li>Parse the message separately using one of the static
+ *       {@code parseFrom} methods, then use {@link #mergeFrom(Message)}
+ *       to merge it with this one.  {@code parseFrom} will throw an
+ *       {@link InvalidProtocolBufferException} (an {@code IOException})
+ *       if some required fields are missing.
+ *   <li>Use {@code buildPartial()} to build, which ignores missing
+ *       required fields.
+ * </ul>
+ *
+ * <p>Note:  The caller should call
+ * {@link CodedInputStream#checkLastTagWas(int)} after calling this to
+ * verify that the last tag seen was the appropriate end-group tag,
+ * or zero for EOF.
+ */
+- (id<PBMessageBuilder>) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+
+/**
+ * Like {@link Builder#mergeFrom(CodedInputStream)}, but also
+ * parses extensions.  The extensions that you want to be able to parse
+ * must be registered in {@code extensionRegistry}.  Extensions not in
+ * the registry will be treated as unknown fields.
+ */
+- (id<PBMessageBuilder>) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+/**
+ * Parse {@code data} as a message of this type and merge it with the
+ * message being built.  This is just a small wrapper around
+ * {@link #mergeFrom(CodedInputStream)}.
+ */
+- (id<PBMessageBuilder>) mergeFromData:(NSData*) data;
+
+/**
+ * Parse {@code data} as a message of this type and merge it with the
+ * message being built.  This is just a small wrapper around
+ * {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
+ */
+- (id<PBMessageBuilder>) mergeFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+/**
+ * Parse a message of this type from {@code input} and merge it with the
+ * message being built.  This is just a small wrapper around
+ * {@link #mergeFrom(CodedInputStream)}.  Note that this method always
+ * reads the <i>entire</i> input (unless it throws an exception).  If you
+ * want it to stop earlier, you will need to wrap your input in some
+ * wrapper stream that limits reading.  Despite usually reading the entire
+ * input, this does not close the stream.
+ */
+- (id<PBMessageBuilder>) mergeFromInputStream:(NSInputStream*) input;
+
+/**
+ * Parse a message of this type from {@code input} and merge it with the
+ * message being built.  This is just a small wrapper around
+ * {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
+ */
+- (id<PBMessageBuilder>) mergeFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end

+ 88 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/MutableField.h

@@ -0,0 +1,88 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "Field.h"
+
+@class PBUnknownFieldSet;
+
+@interface PBMutableField : PBField
+/**
+ *	@brief	空参数实例化
+ *
+ *	@param
+ *
+ *	@return 实例
+ */
++ (PBMutableField *)field;
+/**
+ *	@brief	PBField实例化
+ *
+ *	@param 	other
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)mergeFromField:(PBField *)other;
+/**
+ *	@brief	释放成员变量
+ *
+ *	@param
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)clear;
+/**
+ *	@brief	添加可变64位整数
+ *
+ *	@param 	value
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)addVarint:(SInt64)value;
+/**
+ *	@brief	添加可变32位整数
+ *
+ *	@param 	value
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)addFixed32:(SInt32)value;
+/**
+ *	@brief	添加不可变64位整数
+ *
+ *	@param 	value
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)addFixed64:(SInt64)value;
+/**
+ *	@brief	add NSData
+ *
+ *	@param 	value
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)addLengthDelimited:(NSData *)value;
+/**
+ *	@brief	添加未知set
+ *
+ *	@param 	value
+ *
+ *	@return 实例
+ */
+- (PBMutableField *)addGroup:(PBUnknownFieldSet *)value;
+
+@end

+ 131 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/PBArray.h

@@ -0,0 +1,131 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Author: Jon Parise <jon@booyah.com>
+
+#import <Foundation/Foundation.h>
+
+extern NSString * const PBArrayTypeMismatchException;
+extern NSString * const PBArrayNumberExpectedException;
+extern NSString * const PBArrayAllocationFailureException;
+
+typedef enum _PBArrayValueType
+{
+	PBArrayValueTypeBool,
+	PBArrayValueTypeInt32,
+	PBArrayValueTypeUInt32,
+	PBArrayValueTypeInt64,
+	PBArrayValueTypeUInt64,
+	PBArrayValueTypeFloat,
+	PBArrayValueTypeDouble,
+} PBArrayValueType;
+
+// PBArray is an immutable array class that's optimized for storing primitive
+// values.  All values stored in an PBArray instance must have the same type
+// (PBArrayValueType).  Object values (PBArrayValueTypeObject) are retained.
+@interface PBArray : NSObject <NSCopying>
+{
+@protected
+	PBArrayValueType	_valueType;
+	NSUInteger			_capacity;
+	NSUInteger			_count;
+	void *				_data;
+
+}
+//Count
+- (NSUInteger)count;
+//bool At Index
+- (BOOL)boolAtIndex:(NSUInteger)index;
+//int32 At Index
+- (SInt32)int32AtIndex:(NSUInteger)index;
+//enum At Index
+- (SInt32)enumAtIndex:(NSUInteger)index;
+//uint32 At Index
+- (UInt32)uint32AtIndex:(NSUInteger)index;
+//int64 At Index
+- (SInt64)int64AtIndex:(NSUInteger)index;
+//uint64 At Index
+- (UInt64)uint64AtIndex:(NSUInteger)index;
+//float At Index
+- (Float32)floatAtIndex:(NSUInteger)index;
+//double At Index
+- (Float64)doubleAtIndex:(NSUInteger)index;
+//Equal To Array
+- (BOOL)isEqualToArray:(PBArray *)array;
+//enumerate
+- (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block;
+//index Of Object
+- (NSUInteger)indexOfObjectPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate;
+
+//This Methods automaticaly pack/unpack in NSNumber primitive values
+- (id)firstObject;
+//last Object
+- (id)lastObject;
+//object At Indexed
+- (id)objectAtIndexedSubscript:(NSUInteger)idx;
+
+@property (nonatomic,assign,readonly) PBArrayValueType valueType;
+@property (nonatomic,assign,readonly) const void * data;
+@property (nonatomic,assign,readonly,getter=count) NSUInteger count;
+
+@end
+
+@interface PBArray (PBArrayExtended)
+
+//- (instancetype)arrayByAppendingArray:(PBArray *)array;
+- (PBArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate;
+@end
+
+@interface PBArray (PBArrayCreation)
+//init With PBArrayValueType
++ (instancetype)arrayWithValueType:(PBArrayValueType)valueType;
+//+ (instancetype)arrayWithValues:(const void *)values count:(NSUInteger)count valueType:(PBArrayValueType)valueType;
++ (instancetype)arrayWithArray:(NSArray *)array valueType:(PBArrayValueType)valueType;
+//init With PBArrayValueType
+- (instancetype)initWithValueType:(PBArrayValueType)valueType;
+//init With (values,count,valueType)
+- (instancetype)initWithValues:(const void *)values count:(NSUInteger)count valueType:(PBArrayValueType)valueType;
+//init With Array
+- (instancetype)initWithArray:(NSArray *)array valueType:(PBArrayValueType)valueType;
+
+@end
+
+// PBAppendableArray extends PBArray with the ability to append new values to
+// the end of the array.
+@interface PBAppendableArray : PBArray
+//add BOOL
+- (void)addBool:(BOOL)value;
+//add Int32
+- (void)addInt32:(SInt32)value;
+//add Uint32
+- (void)addUint32:(UInt32)value;
+//add Int64
+- (void)addInt64:(SInt64)value;
+//add Uint64
+- (void)addUint64:(UInt64)value;
+//add Float
+- (void)addFloat:(Float32)value;
+//add Double
+- (void)addDouble:(Float64)value;
+//add Enum
+- (void)addEnum:(SInt32)value;
+
+//append Array
+- (void)appendArray:(PBArray *)array;
+//append Values
+- (void)appendValues:(const void *)values count:(UInt32)count;
+
+@end

+ 24 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/PBEntryStringString.h

@@ -0,0 +1,24 @@
+//
+//  PBEntryStringString.h
+//  APProtocolBuffers
+//
+//  Created by cuinacai on 16/6/2.
+//  Copyright © 2016年 Alipay. All rights reserved.
+//
+
+#import "APDPBGeneratedMessage.h"
+
+
+
+@class PBEntryStringString;
+
+@interface PBEntryStringString : APDPBGeneratedMessage
+//hasKey
+@property (readonly) BOOL hasKey;
+//hasValue
+@property (readonly) BOOL hasValue;
+//key
+@property (nonatomic,strong) NSString* key ;
+//value
+@property (nonatomic,strong) NSString* value ;
+@end

+ 27 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/PBMapStringString.h

@@ -0,0 +1,27 @@
+//
+//  PBMapStringString.h
+//  APProtocolBuffers
+//
+//  Created by cuinacai on 16/6/2.
+//  Copyright © 2016年 Alipay. All rights reserved.
+//
+
+#import "APDPBGeneratedMessage.h"
+
+
+
+@class PBEntryStringString;
+@class PBMapStringString;
+
+@interface PBMapStringString : APDPBGeneratedMessage
+//hasEntries
+@property (readonly) BOOL hasEntries;
+//PBEntryStringString
+@property (nonatomic,strong) NSArray<PBEntryStringString*>* entries ;
+//用dic构建PBMapStringString
++(PBMapStringString*)mapWithDictionary:(NSDictionary<NSString*,NSString*>*)dic;
+//PBMapStringString转为Dictionary
+-(NSDictionary<NSString*,NSString*>*)toDictionary;
+@end
+
+

+ 47 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/ProtocolBuffers.h

@@ -0,0 +1,47 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import <Foundation/Foundation.h>
+#import "Bootstrap.h"
+#import "AbstractMessage.h"
+#import "AbstractMessageBuilder.h"
+#import "CodedInputStream.h"
+#import "CodedOutputStream.h"
+//#import "ConcreteExtensionField.h"
+//#import "ExtendableMessage.h"
+//#import "ExtendableMessageBuilder.h"
+#import "ExtensionField.h"
+#import "ExtensionRegistry.h"
+#import "Field.h"
+#import "GeneratedMessage.h"
+//#import "GeneratedMessageBuilder.h"
+#import "Message.h"
+#import "MessageBuilder.h"
+//#import "MutableExtensionRegistry.h"
+#import "MutableField.h"
+#import "PBArray.h"
+#import "UnknownFieldSet.h"
+#import "UnknownFieldSetBuilder.h"
+#import "Utilities.h"
+#import "WireFormat.h"
+//#import "Descriptor.pb.h"
+//#import "ObjectivecDescriptor.pb.h"
+#import "APPBGeneratedMessage.h"
+#import "ExternKVParam.h"
+#import "APDPBGeneratedMessage.h"
+#import "PBMapStringString.h"
+#import "PBEntryStringString.h"

+ 21 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/RingBuffer.h

@@ -0,0 +1,21 @@
+#import <Foundation/Foundation.h>
+
+@interface RingBuffer : NSObject {
+	NSMutableData *buffer;
+	SInt32 position;
+	SInt32 tail;
+}
+@property (nonatomic, readonly) UInt32 freeSpace;
+//用MutableData初始化
+- (instancetype)initWithData:(NSMutableData*)data;
+
+// Returns false if there is not enough free space in buffer
+- (BOOL)appendByte:(uint8_t)byte;
+
+// Returns number of bytes written
+- (SInt32)appendData:(const NSData*)value offset:(SInt32)offset length:(SInt32)length;
+
+// Returns number of bytes written
+- (SInt32)flushToOutputStream:(NSOutputStream*)stream;
+
+@end

+ 56 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/UnknownFieldSet.h

@@ -0,0 +1,56 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@class PBCodedOutputStream;
+@class PBField;
+@class PBUnknownFieldSetBuilder;
+
+@interface PBUnknownFieldSet : NSObject {
+@private
+  NSDictionary* fields;
+}
+
+@property (readonly, strong) NSDictionary* fields;
+//defaultInstance
++ (PBUnknownFieldSet*) defaultInstance;
+//设置field
++ (PBUnknownFieldSet*) setWithFields:(NSMutableDictionary*) fields;
+//设置data
++ (PBUnknownFieldSet*) parseFromData:(NSData*) data;
+//builder
++ (PBUnknownFieldSetBuilder*) builder;
+//设置UnknownFields with other
++ (PBUnknownFieldSetBuilder*) builderWithUnknownFields:(PBUnknownFieldSet*) other;
+
+//- (void) writeAsMessageSetTo:(PBCodedOutputStream*) output;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+//该field的data
+- (NSData*) data;
+//该field的size
+- (SInt32) serializedSize;
+//- (SInt32) serializedSizeAsMessageSet;
+
+- (BOOL) hasField:(SInt32) number;
+//get Field with number
+- (PBField*) getField:(SInt32) number;
+//添加到des字符串
+- (void) writeDescriptionTo:(NSMutableString*) output
+                 withIndent:(NSString*) indent;
+//字典存储
+- (void) storeInDictionary: (NSMutableDictionary *) dic;
+
+@end

+ 113 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/UnknownFieldSetBuilder.h

@@ -0,0 +1,113 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "MessageBuilder.h"
+
+@class PBField;
+@class PBMutableField;
+
+@interface PBUnknownFieldSetBuilder : NSObject <PBMessageBuilder> {
+@private
+  NSMutableDictionary* fields;
+
+  // Optimization:  We keep around a builder for the last field that was
+  //   modified so that we can efficiently add to it multiple times in a
+  //   row (important when parsing an unknown repeated field).
+  SInt32 lastFieldNumber;
+
+  PBMutableField* lastField;
+}
+
+//+ (PBUnknownFieldSetBuilder*) createBuilder:(PBUnknownFieldSet*) unknownFields;
+
+- (PBUnknownFieldSet*) build;
+/**
+ *	@brief	合并Unknown类型
+ *
+ *	@param 	PBUnknownFieldSet
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) mergeUnknownFields:(PBUnknownFieldSet*) other;
+/**
+ *	@brief	合并Unknown类型
+ *
+ *	@param 	PBCodedInputStream
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+/**
+ *	@brief	合并Unknown类型
+ *
+ *	@param 	NSData
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) mergeFromData:(NSData*) data;
+/**
+ *	@brief	合并Unknown类型
+ *
+ *	@param 	NSInputStream
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) mergeFromInputStream:(NSInputStream*) input;
+/**
+ *	@brief	合并可变整数
+ *
+ *	@param 	number
+ *	@param 	value
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) mergeVarintField:(SInt32) number value:(SInt32) value;
+/**
+ *	@brief	同构PB的tag合并input类型
+ *
+ *	@param 	tag
+ *	@param 	input
+ *
+ *	@return instance
+ */
+- (BOOL) mergeFieldFrom:(SInt32) tag input:(PBCodedInputStream*) input;
+/**
+ *	@brief	添加field
+ *
+ *	@param 	field
+ *	@param 	number
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) addField:(PBField*) field forNumber:(SInt32) number;
+/**
+ *	@brief	clear
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) clear;
+/**
+ *	@brief	合并field
+ *
+ *	@param 	field
+ *	@param 	number
+ *
+ *	@return instance
+ */
+- (PBUnknownFieldSetBuilder*) mergeField:(PBField*) field forNumber:(SInt32) number;
+
+@end

+ 340 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/Utilities.h

@@ -0,0 +1,340 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#import "Message.h"
+#ifdef __cplusplus
+extern "C"{
+#endif
+SInt64 convertFloat64ToInt64(Float64 f);
+SInt32 convertFloat32ToInt32(Float32 f);
+Float64 convertInt64ToFloat64(SInt64 f);
+Float32 convertInt32ToFloat32(SInt32 f);
+
+UInt64 convertInt64ToUInt64(SInt64 i);
+SInt64  convertUInt64ToInt64(UInt64 u);
+UInt32 convertInt32ToUInt32(SInt32 i);
+SInt32  convertUInt32ToInt32(UInt32 u);
+
+SInt32 logicalRightShift32(SInt32 value, SInt32 spaces);
+SInt64 logicalRightShift64(SInt64 value, SInt32 spaces);
+
+
+/**
+ * Decode a ZigZag-encoded 32-bit value.  ZigZag encodes signed integers
+ * into values that can be efficiently encoded with varint.  (Otherwise,
+ * negative values must be sign-extended to 64 bits to be varint encoded,
+ * thus always taking 10 bytes on the wire.)
+ *
+ * @param n An unsigned 32-bit integer, stored in a signed int.
+ * @return A signed 32-bit integer.
+ */
+SInt32 decodeZigZag32(SInt32 n);
+
+/**
+ * Decode a ZigZag-encoded 64-bit value.  ZigZag encodes signed integers
+ * into values that can be efficiently encoded with varint.  (Otherwise,
+ * negative values must be sign-extended to 64 bits to be varint encoded,
+ * thus always taking 10 bytes on the wire.)
+ *
+ * @param n An unsigned 64-bit integer, stored in a signed int.
+ * @return A signed 64-bit integer.
+ */
+SInt64 decodeZigZag64(SInt64 n);
+
+
+/**
+ * Encode a ZigZag-encoded 32-bit value.  ZigZag encodes signed integers
+ * into values that can be efficiently encoded with varint.  (Otherwise,
+ * negative values must be sign-extended to 64 bits to be varint encoded,
+ * thus always taking 10 bytes on the wire.)
+ *
+ * @param n A signed 32-bit integer.
+ * @return An unsigned 32-bit integer, stored in a signed int.
+ */
+SInt32 encodeZigZag32(SInt32 n);
+
+/**
+ * Encode a ZigZag-encoded 64-bit value.  ZigZag encodes signed integers
+ * into values that can be efficiently encoded with varint.  (Otherwise,
+ * negative values must be sign-extended to 64 bits to be varint encoded,
+ * thus always taking 10 bytes on the wire.)
+ *
+ * @param n A signed 64-bit integer.
+ * @return An unsigned 64-bit integer, stored in a signed int.
+ */
+SInt64 encodeZigZag64(SInt64 n);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code double} field, including tag.
+ */
+SInt32 computeDoubleSize(SInt32 fieldNumber, Float64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code float} field, including tag.
+ */
+SInt32 computeFloatSize(SInt32 fieldNumber, Float32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code uint64} field, including tag.
+ */
+SInt32 computeUInt64Size(SInt32 fieldNumber, SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code int64} field, including tag.
+ */
+SInt32 computeInt64Size(SInt32 fieldNumber, SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code int32} field, including tag.
+ */
+SInt32 computeInt32Size(SInt32 fieldNumber, SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code fixed64} field, including tag.
+ */
+SInt32 computeFixed64Size(SInt32 fieldNumber, SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code fixed32} field, including tag.
+ */
+SInt32 computeFixed32Size(SInt32 fieldNumber, SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code bool} field, including tag.
+ */
+SInt32 computeBoolSize(SInt32 fieldNumber, BOOL value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code string} field, including tag.
+ */
+SInt32 computeStringSize(SInt32 fieldNumber, const NSString* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code group} field, including tag.
+ */
+SInt32 computeGroupSize(SInt32 fieldNumber, const id<PBMessage> value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code group} field represented by an {@code PBUnknownFieldSet}, including
+ * tag.
+ */
+SInt32 computeUnknownGroupSize(SInt32 fieldNumber, const PBUnknownFieldSet* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * embedded message field, including tag.
+ */
+SInt32 computeMessageSize(SInt32 fieldNumber, const id<PBMessage> value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code bytes} field, including tag.
+ */
+SInt32 computeDataSize(SInt32 fieldNumber, const NSData* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code uint32} field, including tag.
+ */
+SInt32 computeUInt32Size(SInt32 fieldNumber, SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sfixed32} field, including tag.
+ */
+SInt32 computeSFixed32Size(SInt32 fieldNumber, SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sfixed64} field, including tag.
+ */
+SInt32 computeSFixed64Size(SInt32 fieldNumber, SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sint32} field, including tag.
+ */
+SInt32 computeSInt32Size(SInt32 fieldNumber, SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sint64} field, including tag.
+ */
+SInt32 computeSInt64Size(SInt32 fieldNumber, SInt64 value);
+
+/** Compute the number of bytes that would be needed to encode a tag. */
+SInt32 computeTagSize(SInt32 fieldNumber);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code double} field, including tag.
+ */
+SInt32 computeDoubleSizeNoTag(Float64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code float} field, including tag.
+ */
+SInt32 computeFloatSizeNoTag(Float32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code uint64} field, including tag.
+ */
+SInt32 computeUInt64SizeNoTag(SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code int64} field, including tag.
+ */
+SInt32 computeInt64SizeNoTag(SInt64 value);
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code int32} field, including tag.
+ */
+SInt32 computeInt32SizeNoTag(SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code fixed64} field, including tag.
+ */
+SInt32 computeFixed64SizeNoTag(SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code fixed32} field, including tag.
+ */
+SInt32 computeFixed32SizeNoTag(SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code bool} field, including tag.
+ */
+SInt32 computeBoolSizeNoTag(BOOL value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code string} field, including tag.
+ */
+SInt32 computeStringSizeNoTag(const NSString* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code group} field, including tag.
+ */
+SInt32 computeGroupSizeNoTag(const id<PBMessage> value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code group} field represented by an {@code PBUnknownFieldSet}, including
+ * tag.
+ */
+SInt32 computeUnknownGroupSizeNoTag(const PBUnknownFieldSet* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * embedded message field, including tag.
+ */
+SInt32 computeMessageSizeNoTag(const id<PBMessage> value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code bytes} field, including tag.
+ */
+SInt32 computeDataSizeNoTag(const NSData* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * {@code uint32} field, including tag.
+ */
+SInt32 computeUInt32SizeNoTag(SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * enum field, including tag.  Caller is responsible for converting the
+ * enum value to its numeric value.
+ */
+SInt32 computeEnumSizeNoTag(SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sfixed32} field, including tag.
+ */
+SInt32 computeSFixed32SizeNoTag(SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sfixed64} field, including tag.
+ */
+SInt32 computeSFixed64SizeNoTag(SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sint32} field, including tag.
+ */
+SInt32 computeSInt32SizeNoTag(SInt32 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * {@code sint64} field, including tag.
+ */
+SInt32 computeSInt64SizeNoTag(SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a varint.
+ * {@code value} is treated as unsigned, so it won't be sign-extended if
+ * negative.
+ */
+SInt32 computeRawVarint32Size(SInt32 value);
+
+/** Compute the number of bytes that would be needed to encode a varint. */
+SInt32 computeRawVarint64Size(SInt64 value);
+
+/**
+ * Compute the number of bytes that would be needed to encode a
+ * MessageSet extension to the stream.  For historical reasons,
+ * the wire format differs from normal fields.
+ */
+SInt32 computeMessageSetExtensionSize(SInt32 fieldNumber, const id<PBMessage> value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * unparsed MessageSet extension field to the stream.  For
+ * historical reasons, the wire format differs from normal fields.
+ */
+SInt32 computeRawMessageSetExtensionSize(SInt32 fieldNumber, const NSData* value);
+
+/**
+ * Compute the number of bytes that would be needed to encode an
+ * enum field, including tag.  Caller is responsible for converting the
+ * enum value to its numeric value.
+ */
+SInt32 computeEnumSize(SInt32 fieldNumber, SInt32 value);
+#ifdef __cplusplus
+}
+#endif

+ 47 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Headers/WireFormat.h

@@ -0,0 +1,47 @@
+// Protocol Buffers for Objective C
+//
+// Copyright 2010 Booyah Inc.
+// Copyright 2008 Cyrus Najmabadi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+typedef enum {
+  PBWireFormatVarint = 0,
+  PBWireFormatFixed64 = 1,
+  PBWireFormatLengthDelimited = 2,
+  PBWireFormatStartGroup = 3,
+  PBWireFormatEndGroup = 4,
+  PBWireFormatFixed32 = 5,
+
+  PBWireFormatTagTypeBits = 3,
+  PBWireFormatTagTypeMask = 7 /* = (1 << PBWireFormatTagTypeBits) - 1*/,
+
+  PBWireFormatMessageSetItem = 1,
+  PBWireFormatMessageSetTypeId = 2,
+  PBWireFormatMessageSetMessage = 3
+} PBWireFormat;
+#ifdef __cplusplus
+extern "C"{
+#endif
+SInt32 PBWireFormatMakeTag(SInt32 fieldNumber, SInt32 wireType);
+SInt32 PBWireFormatGetTagWireType(SInt32 tag);
+SInt32 PBWireFormatGetTagFieldNumber(SInt32 tag);
+
+#define PBWireFormatMessageSetItemTag (PBWireFormatMakeTag(PBWireFormatMessageSetItem, PBWireFormatStartGroup))
+#define PBWireFormatMessageSetItemEndTag (PBWireFormatMakeTag(PBWireFormatMessageSetItem, PBWireFormatEndGroup))
+#define PBWireFormatMessageSetTypeIdTag (PBWireFormatMakeTag(PBWireFormatMessageSetTypeId, PBWireFormatVarint))
+#define PBWireFormatMessageSetMessageTag (PBWireFormatMakeTag(PBWireFormatMessageSetMessage, PBWireFormatLengthDelimited))
+    
+#ifdef __cplusplus
+}
+#endif

BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/Info.plist


BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeDirectory


BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeRequirements


BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeRequirements-1


+ 514 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeResources

@@ -0,0 +1,514 @@
+<?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>files</key>
+	<dict>
+		<key>APProtocolBuffers-Info.plist</key>
+		<data>
+		Po//BA5tM1BE58borc33LNpqXyw=
+		</data>
+		<key>Headers/APDPBGeneratedMessage.h</key>
+		<data>
+		i6zxC5zpWt3b4gUm+7qep7/S7vY=
+		</data>
+		<key>Headers/APPBGeneratedMessage.h</key>
+		<data>
+		idCT/i5eR26qLCp66VlujdZ1aKQ=
+		</data>
+		<key>Headers/AbstractMessage.h</key>
+		<data>
+		e9a43rnJVFTtC9v81dAAqNlODA8=
+		</data>
+		<key>Headers/AbstractMessageBuilder.h</key>
+		<data>
+		uiRnlqBlat2XLbQHROCPlZT6/Qs=
+		</data>
+		<key>Headers/Bootstrap.h</key>
+		<data>
+		74ptHYnR4kvWVDyyLBkQhenh6BA=
+		</data>
+		<key>Headers/CodedInputStream.h</key>
+		<data>
+		Zzfj3j7angr1vMujZ9X1wZ53Khw=
+		</data>
+		<key>Headers/CodedOutputStream.h</key>
+		<data>
+		Jsq/YPuDDPCFanLTm2S18Xz0yMY=
+		</data>
+		<key>Headers/ExtensionField.h</key>
+		<data>
+		6FEm1vQYLHDaiWpOiDVNf6mxOqk=
+		</data>
+		<key>Headers/ExtensionRegistry.h</key>
+		<data>
+		lVzbZNZdp4IPXZGU4yIvHuH8vL8=
+		</data>
+		<key>Headers/ExternKVParam.h</key>
+		<data>
+		sgVT9XfEQdgVS7NArf18ATbRdG4=
+		</data>
+		<key>Headers/Field.h</key>
+		<data>
+		jYPn9NyAFkBm9N3rblGmw4IxumY=
+		</data>
+		<key>Headers/ForwardDeclarations.h</key>
+		<data>
+		XJ3sdrBJcLJDApPI+LWqWyUKp1w=
+		</data>
+		<key>Headers/GeneratedMessage.h</key>
+		<data>
+		CYD2O075S4h//FASb36i6VG7JvI=
+		</data>
+		<key>Headers/Message.h</key>
+		<data>
+		gohEthJGDzatwbaRaFbVqF7qP14=
+		</data>
+		<key>Headers/MessageBuilder.h</key>
+		<data>
+		uaHL1f7wPJkzk6d8VhZ48jtPAAI=
+		</data>
+		<key>Headers/MutableField.h</key>
+		<data>
+		RUL65TGggv0XxeHTzXIAd7kgXm0=
+		</data>
+		<key>Headers/PBArray.h</key>
+		<data>
+		WwOBqBIOSPE/SieygCbx0RoPER8=
+		</data>
+		<key>Headers/PBEntryStringString.h</key>
+		<data>
+		0sEWLzHczFdYJak7Sl6q9MDAr1o=
+		</data>
+		<key>Headers/PBMapStringString.h</key>
+		<data>
+		h+uNgef0s5f4Mz7CKwziGMZLlkg=
+		</data>
+		<key>Headers/ProtocolBuffers.h</key>
+		<data>
+		sIyBcXuvZgTshQQNuiTAeHwD4+0=
+		</data>
+		<key>Headers/RingBuffer.h</key>
+		<data>
+		zPOxAFboAkY8yZHOJ297rBHKr14=
+		</data>
+		<key>Headers/UnknownFieldSet.h</key>
+		<data>
+		d4+zpFG8PsR+KeEY3FCATwCPV34=
+		</data>
+		<key>Headers/UnknownFieldSetBuilder.h</key>
+		<data>
+		DGL4Djr0icM5QPtARyc0lVgEoZE=
+		</data>
+		<key>Headers/Utilities.h</key>
+		<data>
+		o4cXEB1NN/Y2SCAwzklcVQeAhN0=
+		</data>
+		<key>Headers/WireFormat.h</key>
+		<data>
+		WBmzYp0NiaJ/6wUXeMPwegHp39w=
+		</data>
+		<key>Info.plist</key>
+		<data>
+		ApjthHWVy+hyj/idm1rBi5D18OU=
+		</data>
+		<key>en.lproj/InfoPlist.strings</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zmV6UqBSo6r1NOz798vd5O4zTBA=
+			</data>
+			<key>optional</key>
+			<true/>
+		</dict>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>APProtocolBuffers-Info.plist</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Po//BA5tM1BE58borc33LNpqXyw=
+			</data>
+			<key>hash2</key>
+			<data>
+			B2XyqSNoreUIQ8uDojzpys2o9qi8XuLbypPrkCR+l8w=
+			</data>
+		</dict>
+		<key>Headers/APDPBGeneratedMessage.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			i6zxC5zpWt3b4gUm+7qep7/S7vY=
+			</data>
+			<key>hash2</key>
+			<data>
+			xz63PFcmWl6mQAcb+/y1wDEH+FhEWpHFm3x3YSC3fuY=
+			</data>
+		</dict>
+		<key>Headers/APPBGeneratedMessage.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			idCT/i5eR26qLCp66VlujdZ1aKQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			GwwYSX8Rq656kjv8nJOHe5+HAZ4PL2naJ7T1/nndWSs=
+			</data>
+		</dict>
+		<key>Headers/AbstractMessage.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			e9a43rnJVFTtC9v81dAAqNlODA8=
+			</data>
+			<key>hash2</key>
+			<data>
+			B1D9SYGPmU8zrjm8zlprhejQvw7gNx6io0jAZOzF5Z4=
+			</data>
+		</dict>
+		<key>Headers/AbstractMessageBuilder.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			uiRnlqBlat2XLbQHROCPlZT6/Qs=
+			</data>
+			<key>hash2</key>
+			<data>
+			/V7pYH9LFgEy3ifRDRhSHQd6Wct8BvLPhCddHp5uS80=
+			</data>
+		</dict>
+		<key>Headers/Bootstrap.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			74ptHYnR4kvWVDyyLBkQhenh6BA=
+			</data>
+			<key>hash2</key>
+			<data>
+			tM3HfR1prZVkCCvnKPNayvjYxWEoE13Nkljzj4i12FM=
+			</data>
+		</dict>
+		<key>Headers/CodedInputStream.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Zzfj3j7angr1vMujZ9X1wZ53Khw=
+			</data>
+			<key>hash2</key>
+			<data>
+			nZkPzs+CmAujQb1RxlT/JlAr8odhEB69OEN3AUpHCN0=
+			</data>
+		</dict>
+		<key>Headers/CodedOutputStream.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Jsq/YPuDDPCFanLTm2S18Xz0yMY=
+			</data>
+			<key>hash2</key>
+			<data>
+			E46hxH0Y/SP6rm0CK2fsqzL7yLUn9T4DXKMoaCmo6Oo=
+			</data>
+		</dict>
+		<key>Headers/ExtensionField.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			6FEm1vQYLHDaiWpOiDVNf6mxOqk=
+			</data>
+			<key>hash2</key>
+			<data>
+			h8Xq8lQK1UkYPv1LRopJG4VvnFii/ifWAqElEzi1E0g=
+			</data>
+		</dict>
+		<key>Headers/ExtensionRegistry.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			lVzbZNZdp4IPXZGU4yIvHuH8vL8=
+			</data>
+			<key>hash2</key>
+			<data>
+			G24b1bKtFSlTLqsFhI9jQYl2RkZMvdVAlmXGKp8ffX0=
+			</data>
+		</dict>
+		<key>Headers/ExternKVParam.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			sgVT9XfEQdgVS7NArf18ATbRdG4=
+			</data>
+			<key>hash2</key>
+			<data>
+			a/gb5wnGPiFomXE3JHxmA9l7Zc8gxcdBfilaheSDT/Y=
+			</data>
+		</dict>
+		<key>Headers/Field.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			jYPn9NyAFkBm9N3rblGmw4IxumY=
+			</data>
+			<key>hash2</key>
+			<data>
+			7oNAR8x+HCnMEeLv80VNtF3H5PX44FN3DSQgANubA3M=
+			</data>
+		</dict>
+		<key>Headers/ForwardDeclarations.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			XJ3sdrBJcLJDApPI+LWqWyUKp1w=
+			</data>
+			<key>hash2</key>
+			<data>
+			dcYqY+zruPjAiZtbo18hPR23p3WQqbT2T83t95IeQQk=
+			</data>
+		</dict>
+		<key>Headers/GeneratedMessage.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			CYD2O075S4h//FASb36i6VG7JvI=
+			</data>
+			<key>hash2</key>
+			<data>
+			tVpMNsAEWB1Xw6AhH3yuJXOL90IQPI18p3RPKGLTLnY=
+			</data>
+		</dict>
+		<key>Headers/Message.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			gohEthJGDzatwbaRaFbVqF7qP14=
+			</data>
+			<key>hash2</key>
+			<data>
+			+BkeNd7sXldN87RnMB/kpk2F4Ai4Ka0nIB5av1vHjTA=
+			</data>
+		</dict>
+		<key>Headers/MessageBuilder.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			uaHL1f7wPJkzk6d8VhZ48jtPAAI=
+			</data>
+			<key>hash2</key>
+			<data>
+			3TkzTfQrA9XgkLtK8XbEo25Msm8UY9Fn+nxeJZasQ0w=
+			</data>
+		</dict>
+		<key>Headers/MutableField.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			RUL65TGggv0XxeHTzXIAd7kgXm0=
+			</data>
+			<key>hash2</key>
+			<data>
+			DEpIZXUxzJtqblU+6ZHRJBRs74Eys8VhKK0m6NmlL6g=
+			</data>
+		</dict>
+		<key>Headers/PBArray.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			WwOBqBIOSPE/SieygCbx0RoPER8=
+			</data>
+			<key>hash2</key>
+			<data>
+			09M9pVysVcydu6yPwCBSte5I7Ohh8eGzGIDfTded39A=
+			</data>
+		</dict>
+		<key>Headers/PBEntryStringString.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			0sEWLzHczFdYJak7Sl6q9MDAr1o=
+			</data>
+			<key>hash2</key>
+			<data>
+			brclCT70FyIpTqMPXCFbDCwOyLleIfL2IvW/FksqyjQ=
+			</data>
+		</dict>
+		<key>Headers/PBMapStringString.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			h+uNgef0s5f4Mz7CKwziGMZLlkg=
+			</data>
+			<key>hash2</key>
+			<data>
+			ZUcHuHdpEAXV7ipv4QGraTg+/aqK3d2tjV7zSqbi5tw=
+			</data>
+		</dict>
+		<key>Headers/ProtocolBuffers.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			sIyBcXuvZgTshQQNuiTAeHwD4+0=
+			</data>
+			<key>hash2</key>
+			<data>
+			i6Vdtf6+P21UXg/cHEkNCAFBOMfPP4ZG9n0c736Q/TI=
+			</data>
+		</dict>
+		<key>Headers/RingBuffer.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zPOxAFboAkY8yZHOJ297rBHKr14=
+			</data>
+			<key>hash2</key>
+			<data>
+			QCw8PaT9BOoyaMcfi+sI4rYe0x0dB2pyWH4voaWXZCM=
+			</data>
+		</dict>
+		<key>Headers/UnknownFieldSet.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			d4+zpFG8PsR+KeEY3FCATwCPV34=
+			</data>
+			<key>hash2</key>
+			<data>
+			GXDUDcxdVoTNL36VW1asX5RuskPqJ20eOJE3t4Dz6Cc=
+			</data>
+		</dict>
+		<key>Headers/UnknownFieldSetBuilder.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			DGL4Djr0icM5QPtARyc0lVgEoZE=
+			</data>
+			<key>hash2</key>
+			<data>
+			9fZGzTyJkLsvCqE0Z7VXyySo2BKFNnEfNz1HKGVJcEM=
+			</data>
+		</dict>
+		<key>Headers/Utilities.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			o4cXEB1NN/Y2SCAwzklcVQeAhN0=
+			</data>
+			<key>hash2</key>
+			<data>
+			vIrYj3aCgpRHBttvKBKVHGR+wtOzDZfUwXxK4BESiwA=
+			</data>
+		</dict>
+		<key>Headers/WireFormat.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			WBmzYp0NiaJ/6wUXeMPwegHp39w=
+			</data>
+			<key>hash2</key>
+			<data>
+			H5rST+7GGcWDTGuOgxbtqwtaQk9sxhqPMuij42oC90E=
+			</data>
+		</dict>
+		<key>en.lproj/InfoPlist.strings</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			zmV6UqBSo6r1NOz798vd5O4zTBA=
+			</data>
+			<key>hash2</key>
+			<data>
+			kmHsztpgjvF0JW5f3HdMHm49z1M0CcG8OT1JDQHHE/E=
+			</data>
+			<key>optional</key>
+			<true/>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 0 - 0
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/_CodeSignature/CodeSignature


BIN
nativeplugins/Mpaas-Scan/ios/APProtocolBuffers.framework/en.lproj/InfoPlist.strings


BIN
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/APRemoteLogging


+ 3 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/APRemoteLogging.bundle/baseline.json

@@ -0,0 +1,3 @@
+{
+"baseline":"10.1.68.34"
+}

+ 141 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APCrashLogParamHelper.h

@@ -0,0 +1,141 @@
+//
+//  APCrashLogParamHelper.h
+//  APRemoteLogging
+//
+//  Created by NianXi on 16/6/16.
+//  Copyright © 2016年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <mach/mach.h>
+#import <pthread.h>
+
+@interface APCrashLogParamHelper : NSObject
+
+/**
+ *  闪退发生时最近浏览的一个H5页面
+ *
+ *  @return NSString型 URL , 可能为空
+ */
++ (NSString *_Nullable)lastWebURL;
+
+/**
+ *  已生效的hotpatch脚本信息
+ *
+ *  @return NSString型 多个脚本以"|"分隔,如 ,可能为空
+ */
++ (NSString *_Nullable)executedPatchsInfo;
+
+/**
+ *  iam扩展信息
+ *
+ *  @return NSString型 可能为空
+ */
++ (NSString *_Nullable)ebcContextInfo;
++ (NSString *_Nullable)ebcContextInfo:(void *_Nullable)ucontext;
+
+/**
+ *  已经加载的bundle信息
+ *
+ *  @return NSString型 可能为空
+ */
++ (NSString *_Nullable)bundleInfo;
+
+/**
+ *  进程存活时间,单位秒
+ *
+ *  @return time_t 存活秒数
+ */
++ (time_t)survivalTime;
+
+/**
+    发生闪退的线程的Queue名称
+
+ @return NSString * 队列名,可能为空
+ */
++ (NSString *_Nullable)crashThreadQueueName:(thread_t)thread;
+
+/**
+    发生闪退的线程的线程名
+
+ @return NSString * 线程名,可能为空
+ */
++ (NSString *_Nullable)crashThreadName:(thread_t)thread;
+
+/**
+ *  字典格式化 转成 key=value^key=value^key=value 格式字符串
+ *
+ *  @param dic 字典
+ *
+ *  @return 格式化后的字符串
+ */
++ (NSString *_Nullable)convertToLogFromDic:(NSDictionary *_Nonnull)dic;
+
+/**
+ *  数组格式化 转成 a|b|c|d 格式字符串
+ *
+ *  @param array 数组
+ *
+ *  @return 格式化后的字符串
+ */
++ (NSString *_Nullable)convertToLogFromArray:(NSArray *_Nonnull)array;
+
+/**
+ *  用于日志的可读fetch状态字符
+ *
+ *  @return NSString *型 用于日志的可读fetch状态字符
+ */
++ (NSString *_Nullable)backgroundFetchStateReadableString;
+
+/**
+ *  用于日志的可读hotspot状态字符
+ *
+ *  @return NSString *型 用于日志的可读hotspot状态字符
+ */
++ (NSString *_Nullable)hotspotHelperStateReadableString;
+
+/**
+ *  用于日志的可读healthkit状态字符
+ *
+ *  @return NSString *型 用于日志的可读healthkit状态字符
+ */
++ (NSString *_Nullable)healthkitStateReadableString;
++ (NSString *_Nullable)pushStateReadableString;
++ (NSString *_Nullable)watchStateReadableString;
++ (NSString *_Nullable)voipStateReadableString;
+
+/**
+ *  用于日志的可读函数覆盖率开关状态字符
+ *
+ *  @return NSString *型 用于日志的可读函数覆盖率开关状态字符
+ */
++ (NSString *_Nullable)functionCoverageState;
+
+/**
+ *  获取非空的前后台状态值(通过UIApplicationState辅助二次校准)
+ * 
+ *  @return 非空的前后台状态字符串
+ */
++ (nonnull NSString *)applicationStateReadableString;
+
+/**
+ *  当前appid
+ *
+ *  @return NSString *型
+ */
++ (NSString *_Nullable)currentAppId;
+
+/**
+ *  当前H5应用的唯一标识(格式为:appid_version_releasetype)
+ *
+ *  @return NSString *型
+ */
++ (NSString *_Nullable)currentH5AppUniqueId;
+
+/**
+ *  当前内存使用大小信息,可能为空
+ *
+ *  @return NSString *型
+ */
++ (NSString *_Nullable)usedMemory;
+@end

+ 135 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APLogAddions.h

@@ -0,0 +1,135 @@
+//
+//  APLogAddions.h
+//  APRemoteLogging
+//
+//  Created by tashigaofei on 15/10/13.
+//  Copyright © 2015年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "AntLogInterface.h"
+#import "MPLogCryptDelegate.h"
+
+@interface APLogAdditions : NSObject<AntLogInterceptor>
+
+/**
+ *  UUID、UTDID、clientID、deviceModel,language,接入方无须重写,由mPaaS自动获取。
+ */
+@property (nonatomic, strong, readonly) NSString *UUID __deprecated_msg("业务方需要自定义UUID时,请覆盖实现getBrandNewUUID方法."); // 默认实现为调用系统方法获取UUID
+@property (nonatomic, strong, readonly) NSString *UTDID;    // 默认实现为从APMobileIdentifier获取,如果没有APMobileIdentifier,会反射式调用UTDID库的[UTDevice utdid]方法
+@property (nonatomic, strong, readonly) NSString *clientID; // 默认实现为从APMobileIdentifier获取,如果没有APMobileIdentifier,会返回@""
+@property (nonatomic, strong) NSString *deviceModel;        // 默认实现为从APMobileIdentifier获取,如果没有APMobileIdentifier,会调用系统方法获取设备型号
+@property (nonatomic, strong) NSString *language;           // 默认实现为读取NSUserDefaults中kAPLanguageSettingKey。如果使用钱包或mPaaS多语言模块,该方法不需要重写
+
+/**
+ *  userID为可选参数,当前登录的用户,接入方在Category中覆盖实现。
+ */
+@property (nonatomic, strong) NSString *userID;
+
+/**
+ *  log日志服务器地址,默认返回@"",需要接入方在Category中覆盖。格式为http://mdap.alipaylog.com/loggw/log.do
+ */
+@property (nonatomic, strong) NSString *logServerURL;
+
+/**
+ *  log日志服务器配置地址,默认返回@"",需要接入方在Category中覆盖。格式为http://mdap.alipaylog.com/loggw/config.do
+ *  一般只需要重写logServerURL即可,configServerURL系统会自动根据logServerURL进行修改。
+ */
+@property (nonatomic, strong) NSString *configServerURL;
+
+/**
+ *  log日志服务器配置获取间隔,需要接入方在Category中覆盖,默认为600s
+ */
+@property (nonatomic, assign) CFAbsoluteTime configGetInterval;
+
+/**
+ *  客户端日志产品ID,默认返回[[NSBundle mainBundle] objectForInfoDictionaryKey:@"Product ID"],如果不同需要接入方在Category中覆盖。
+ */
+@property (nonatomic, strong) NSString *platformID;
+
+/**
+ *  客户端版本号,默认返回[[NSBundle mainBundle] objectForInfoDictionaryKey:@"Product Version"],如果不同需要接入方在Category中覆盖。
+ */
+@property (nonatomic, strong) NSString *clientVersion;
+
+/**
+ *  本地日志文件大小上限,达到上限时删除历史文件的四分之一. 默认返回 1024*1024*30L (30MB), 如果不同需要接入方在Category中覆盖。
+ */
+@property (nonatomic, assign) NSInteger maximumSizeOfLog;
+
+/**
+ *  本地日志文件个数上限,达到上限时删除历史文件的四分之一. 默认返回256, 如果不同需要接入方在Category中覆盖。
+ */
+@property (nonatomic, assign) NSInteger maximumNumberOfLogFiles;
+
+/**
+ 单行日志长度上限,超过上限的日志被丢弃. 默认16K.
+ */
+@property (nonatomic, assign) NSInteger maximumLengthOfLine;
+
+@property (nonatomic, strong) id<MPLogCryptDelegate> logCryptDelegate;
+
+
++ (instancetype)sharedInstance;
+
+/**
+ *  默认实现为返回 @[]
+ *  @return @[@(APLogTypeXXX), @(APLogTypeYYY)]数组。数组元素为NSNumber类型
+ */
+- (NSArray*)defaultUploadLogTypes __deprecated_msg("All logs will write & upload without server config now. The return value of this method is ignored.");
+
+/**
+ *  输出诊断日志到本地日志文件,方便定位问题。
+ *  该方法默认实现为空,由外部覆盖实现为指定日志方法。
+ */
+- (void)logToFile:(NSString*)logStr;
+
+/**
+ 生成一个新的UUID.
+ 每次后台回前台会检查当前UUID的时间戳是否超过了30分钟,若超过了,该方法会被调用.
+ 默认的实现为调用系统方法生成一个新的UUID: [NSUUID UUID].UUIDString
+ 
+ @return 新的UUID字符串.
+ */
+- (NSString *)getBrandNewUUID;
+
+/**
+ * 是否存在Interceptor实现. 默认返回NO.
+ * 接入方需要介入写入/上报时在Category中覆盖该方法返回YES,并覆盖 beforeWrite: 和 beforeUpload: 方法.
+ * @return 默认返回NO
+ */
+- (BOOL)hasInterceptor;
+
+/**
+ * 默认实现为空. 接入方需要介入写入时在Category中覆盖该方法.
+ */
+- (void)beforeWrite:(AntLogWriteOperation *)operations;
+
+/**
+ * 默认实现为空. 接入方需要介入上报时在Category中覆盖该方法.
+ */
+- (void)beforeUpload:(AntLogUploadOperation *)operation;
+
+/**
+ IDFA值,可选,默认实现返回nil,接入方可在Category里覆盖实现.
+ */
+- (NSString *)idfa;
+
+/**
+ 获取是否授权 yes代表授权  no代表未授权
+ */
+- (BOOL)privacyAuthed;
+
+/**
+ 埋点本地加密开关
+ */
++ (void)enableLogEncrypt:(BOOL)enable;
+
++ (BOOL)logEncrypt;
+
+/**
+ 埋点本地加密算法 Delegate
+*/
++ (void)setLogCryptDelegate:(id<MPLogCryptDelegate>)delegate;
+
+@end

+ 18 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APLogSpmUtils.h

@@ -0,0 +1,18 @@
+//
+//  APLogSpmUtils.h
+//  APRemoteLogging
+//
+//  Created by majie on 16/8/3.
+//  Copyright © 2016年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+extern NSString *const kPageIdSuffix;
+
+@interface APLogSpmUtils : NSObject
+
++ (NSString *)pageIdWithSeparator:(NSString *)separator forSpmid:(NSString *)spmid;
++ (NSString*)c10to64:(UInt64)i;
+
+@end

+ 375 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APMonitorPointDataDefines.h

@@ -0,0 +1,375 @@
+//
+//  APMonitorPointDataDefines.h
+//  AlipayPortal
+//
+//  Created by  tudou on 12-1-5.
+//  Copyright (c) 2012年 aliPay. All rights reserved.
+//
+
+#ifndef AP_REMOTE_LOGGING_DEFINE
+#define AP_REMOTE_LOGGING_DEFINE
+/*
+AP_REMOTE_LOGGING_DEFINE 包含的代码在下列两个文件是一致的。
+- APMonitorPointDataDefines.h
+- APRemoteLogging+MPaaS.h
+*/
+
+/**
+ *  埋点预定义的可用actionID,只可以用预设的,否则服务器不识别
+ */
+static NSString * const kValue_CrashLogFlag = @"MonitorPoint_Crash";
+static NSString * const kValue_IgnoreCrashLogFlag = @"MonitorPoint_Ignore_Crash";
+
+static NSString * const kActionID_Manual_perf = @"monitorPerf"; //性能监控标志
+static NSString * const kActionID_Clicked = @"clicked";
+static NSString * const kActionID_LongClicked = @"longClicked";
+static NSString * const kActionID_Submtted = @"submited";
+static NSString * const kActionID_BizLaunched = @"bizLaunched";
+static NSString * const kActionID_SetGesture = @"setGesture";
+static NSString * const kActionID_CheckGesture = @"checkGesture";
+static NSString * const kActionID_NetBroken = @"netBroken";
+static NSString * const kActionID_Monitor = @"monitor";
+static NSString * const KActionID_Slided = @"slided";
+static NSString * const KActionID_None = @"none";
+static NSString * const kActionID_OPENPAGE = @"openPage";
+static NSString * const KActionID_AutoClicked = @"auto_clicked";
+static NSString * const KActionID_AutoClick = @"auto_click";
+static NSString * const KActionID_AutoOpenPage = @"auto_openPage";
+static NSString * const KActionID_AutoEvent = @"auto_event";
+static NSString * const KActionID_Event = @"event";
+static NSString * const KActionID_FingerIdenty = @"fingerIdenty";
+static NSString * const KActionID_MonitorReport = @"MonitorReport";
+static NSString * const KActionID_Exposure = @"exposure";
+static NSString * const KActionID_MergeExposure = @"mergeExpose";
+static NSString * const KActionID_Page_monitor = @"page_monitor";//deprecated
+extern NSString * const kActionID_PageMonitor;
+extern NSString * const kActionID_Count;
+extern NSString * const kActionID_SemClicked;   /**SEM 点击*/
+extern NSString * const kActionID_SemExposured; /**SEM 曝光*/
+
+static NSString * const kActionID_Exception = @"exception";
+static NSString * const KActionID_Error = @"error";
+static NSString * const kActionID_FlashBroken = @"flashBroken";
+
+
+
+//性能埋点的actionID
+static NSString * const KActionID_PerformanceNetwork = @"network";
+static NSString * const KActionID_PerformanceMobSDK = @"mobsdk";
+static NSString * const KActionID_PerformanceWebApp = @"webapp";
+static NSString * const KActionID_PerformancePackage = @"package";
+static NSString * const KActionID_PerformancePage = @"page";
+static NSString * const KActionID_PerformanceInterface = @"interface";
+static NSString * const KActionID_PerformanceMemory = @"memory";
+static NSString * const KActionID_PerformanceSdkMonitor = @"sdkmonitor";
+
+#pragma mark -
+#pragma mark 埋点id
+#pragma mark -
+
+static NSString * const kRecordTime = @"timestamp";
+static NSString * const kPlatformID = @"platformID"; //客户端ID
+static NSString * const kClientVersion = @"clientVersion";//客户端版本
+static NSString * const kInternalVersion = @"InternalVersion";//内部版本
+static NSString * const kLogModleVersion = @"logModelVersion";//日志版本
+static NSString * const kClientId = @"clientId"; //设备ID
+static NSString * const kUUID = @"UUID";     //会话ID
+static NSString * const kUserID = @"userID";
+static NSString * const kActionID = @"actionID";//行为id (clicked,submited,bizLaunched)
+static NSString * const kActionStatus = @"actionStatus";
+static NSString * const kStatusMsg = @"statusMsg";
+static NSString * const kBizID = @"bizID";
+static NSString * const kBizVersion = @"bizVersion";
+static NSString * const kCurrentViewID = @"currentViewID";
+static NSString * const kLastViewID = @"lastViewID";
+static NSString * const kActionSeed = @"logID"; //埋点ID
+static NSString * const kWapURL = @"wapURL"/**<Deprecated*/;
+static NSString * const kActionOwnerType = @"actionType";
+static NSString * const kLogOwnerType = @"logType";
+static NSString * const kExArg1 = @"stayDuration";
+static NSString * const kExArg2 = @"arg2";
+static NSString * const kExArg3 = @"renderConsume";
+static NSString * const kExArg4 = @"arg4";
+static NSString * const kExArg5 = @"sourceID";
+static NSString * const kRequestid = @"unitID"; //流水号
+static NSString * const UTDID = @"utdID"; //cookie
+static NSString * const ucID = @"ucID";
+static NSString * const kIndex = @"index";
+static NSString * const kLogLastViewID = @"logLastViewID";
+static NSString * const kLogCurrentViewID = @"logCurrentViewID";
+static NSString * const kExceptionType = @"ExceptionType";
+static NSString * const kAppStack = @"AppStack";
+static NSString * const kVcStack = @"VcStack";
+static NSString * const kAppPackageType = @"AppPackageType";
+static NSString * const kAttachment = @"Attachment"; //附加信息
+static NSString * const kHeader = @"header";
+static NSString * const kExtension = @"extension";
+static NSString * const kResolution = @"resolution";
+static NSString * const kSessionid = @"session_id";
+extern NSString * const kLogEntityIdKey;/**<formatter中EntityId对应key值*/
+extern NSString * const kLogPageIdKey;  /**<formatter中pageId对应的key值*/
+extern NSString * const kABTestInfoKey; /**<formatter中ABTestInfo对应的key值*/
+extern NSString * const kLogSequenceIdKey; /**<formatter中埋点序列号对应的key值*/
+extern NSString * const kFormatterSampleRateKey; /**<formatter中抽样率对应的key值*/
+extern NSString * const kFormatterLogLevelKey;/**<formatter中日志等级对应的key值*/
+extern NSString * const kLogRenderBizKey;/**<formatter中日志renderBiz对应的key值*/
+extern NSString * const kLogIDFAKey;/**<formatter中IDFA对应的key值*/
+
+static const char kHotpatchPart1[] = "Hotpa";
+static const char kHotpatchPart2[] = "tchVersion";
+#define kHotpatchVersion ([NSString stringWithFormat:@"%s%s", kHotpatchPart1, kHotpatchPart2])
+
+#pragma mark -
+#pragma mark Performance Log Key
+static NSString * const kActionControlID = @"ActionControlID";
+static NSString * const kActionToken = @"ActionToken";
+static NSString * const kActionDescription = @"ActionDescription"/**<deprecated*/;
+static NSString * const kMonitorType = @"MonitorType";
+static NSString * const kMonitorSubType = @"MonitorSubType";
+static NSString * const kSystemType = @"SystemType";
+static NSString * const kSystemVersion = @"SystemVersion";
+static NSString * const kNetworkType = @"NetworkType";
+static NSString * const kDeviceModel = @"kDeviceModel";
+static NSString * const kInnerVersion = @"InnerVersion";
+static NSString * const kDistributionChannel = @"DistributionChannel";
+static NSString * const kLanguage = @"Language";
+
+#pragma mark -
+#pragma mark Notification
+extern NSString * const kCurrentControlActionIDDidChanged;/**< 点击事件通知名*/
+extern NSString * const kLastClickSpmKey; /**< 从点击事件通知的userInfo中获取spm的key*/
+extern NSString * const kLastClickSemKey; /**< 从点击事件通知的userInfo中获取sem的key*/
+
+#pragma mark -
+#pragma mark other keys
+// android only 仅仅是为了和安卓保持日志模型一致,此字段留空
+static NSString * const kCPUCoreNum = @"CPUCoreNum";
+static NSString * const kCPUMaxFreq = @"CPUMaxFreq";
+static NSString * const kTotalMem = @"TotalMem";
+static NSString * const kAPK = @"apk";
+static NSString * const kExtendedArg = @"extendedArgument";// for server @尚清
+static NSString * const kThreadName = @"ThreadName";
+static NSString * const kJavaOrNative = @"JavaOrNative";
+static NSString * const kBootReason = @"bootReason";
+extern NSString * const kProcessNameKey; //进程名, Android特有, 仅为保持对齐.
+//9.6.6之后行为埋点的基础扩展字段,字典类型,后续其它日志模型也可以用这个key
+static NSString * const kFoundationExtended = @"FoundationExtended";
+static NSString * const kFoundationExtendedVoiceOver = @"VoiceOver";
+static NSString * const kFoundationExtendedTimeZone = @"TimeZone";
+static NSString * const kBundleUpdates = @"bundleUpdates";
+
+#pragma mark -
+#pragma mark Diagnose Log Key
+static NSString * const kChannelID = @"ChannelID";
+static NSString * const kDiagnoseType = @"DiagnoseType";
+static NSString * const kDiagnoseMessage = @"DiagnoseMessage";
+
+
+
+
+static NSString * const kMonitorPoint_bizLaunched = @"MonitorPoint_bizLaunched";
+static NSString * const kMonitorPoint_viewJump = @"MonitorPoint_viewJump";
+static NSString * const kMonitorPoint_viewReturn = @"MonitorPoint_viewReturn";
+static NSString * const kMonitorPoint_ConnectErr = @"MonitorPoint_ConnectErr";
+static NSString * const kMonitorPoint_ClientsErr = @"MonitorPoint_ClientsErr";
+static NSString * const kMonitorPoint_BizResult = @"MonitorPoint_BizResult";
+static NSString * const kMonitorPoint_ButtonClicked = @"MonitorPoint_ButtonClicked";
+static NSString * const kMonitorPoint_CheckUpdate = @"MonitorPoint_CheckUpdate";
+static NSString * const kMonitorPoint_ShareInfo = @"MonitorPoint_ShareInfo";
+static NSString * const kMonitorPoint_Exception = @"MonitorPoint_Exception";
+static NSString * const kMonitorPoint_Event = @"MonitorPoint_Event";
+
+//#define logsFile @"LOGS.plist"
+
+#pragma  mark -
+#pragma  mark viewID
+#pragma  mark -
+static NSString * const kHomeView = @"homeView";
+static NSString * const kAccountManagerHomeView = @"accountManagerHomeView";
+static NSString * const kLoginView = @"loginView";
+static NSString * const kRegisterView = @"registerView";
+static NSString * const kGetRegisterSmsView = @"getRegisterSmsView";
+static NSString * const kWaterInputView = @"waterInputView";
+static NSString * const kWaterHistoryView = @"waterHistoryView";
+static NSString * const kWaterSelectListView = @"waterSelectListView";
+static NSString * const kWaterSubmitView = @"waterSubmitView";
+static NSString * const kElectricityInputView = @"electricityInputView";
+static NSString * const kElectricitySelectListView = @"electricitySelectListView";
+static NSString * const kElectricityHistoryView = @"electricityHistoryView";
+static NSString * const kElectricitySubmitView = @"electricitySubmitView";
+static NSString * const kGasInputView = @"gasInputView";
+static NSString * const kGasSelectListView = @"gasSelectListView";
+static NSString * const kGasHistoryView = @"gasHistoryView";
+static NSString * const kGasSubmitView = @"gasSubmitView";
+static NSString * const kTelephoneInputView = @"widelineInputView";
+static NSString * const kTelephoneSelectListView = @"widelineSelectListView";
+static NSString * const kTelephoneHistoryView = @"widelineHistoryView";
+static NSString * const kTelephoneSubmitView = @"widelineSubmitView";
+static NSString * const kTradeRecordsView = @"tradeRecordsView";
+static NSString * const KTradeRecordsAllView = @"tradeRecordsAllView";
+static NSString * const kTradeRecordsWaitPayView = @"tradeRecordsWaitPayView";
+static NSString * const KTradeRecordsWaitReceiveView = @"tradeRecordsWaitReceiveView";
+static NSString * const kTradeDetailsView = @"tradeDetailsView";
+static NSString * const kTradeTransportView = @"tradeTransportView";
+static NSString * const kWithdrawView = @"withdrawView";
+static NSString * const kHelpView = @"helpView";
+static NSString * const kProtocolView = @"protocolView";
+static NSString * const kSubstitutePayHomeView = @"substitutePayHomeView";
+static NSString * const kOnePersonsubstitutePayView = @"onePersonsubstitutePayView";
+static NSString * const kAnyBodysubstitutePayCreateUrlView = @"anyBodysubstitutePayCreateUrlView";
+static NSString * const kAnyBodysubstitutePaySelectTypeView = @"anyBodysubstitutePaySelectTypeView";
+static NSString * const kSubstitutePayShare_SMSView = @"substitutePayShare_SMSView";
+static NSString * const kSubstitutePayShare_EmailView = @"substitutePayShare_emailView";
+static NSString * const kBarcodeView =  @"barcodeView";
+static NSString * const kCashRegisterView = @"cashRegisterView";
+static NSString * const kScanBarCodeView = @"scanBarCodeView";
+static NSString * const kSettingPasswordView = @"settingPassWordView";
+static NSString * const kFeedbackView = @"feedbackView";
+static NSString * const kNoPassWordView = @"noPassWordView";
+static NSString * const kKaBaoTicketDetailView = @"kaBaoTicketDetailView";
+static NSString * const kKaBaoMyTicketListView = @"kaBaoMyTicketListView";
+static NSString * const kKaBaoTicketStoreView = @"kaBaoTicketStoreView";
+#pragma  mark -
+#pragma  mark 各种记录点需要的key
+#pragma  mark -
+
+static NSString * const kValue_pointType = @"pointType";
+static NSString * const kValue_currentViewId = @"currentViewId";
+static NSString * const kValue_gotoViewId = @"gotoViewId";
+static NSString * const kValue_bizId = @"bizId";
+static NSString * const kValue_isLogin = @"isLogin";
+static NSString * const kValue_CurrentTime = @"time";
+static NSString * const kValue_Errmemo = @"errMemo";
+static NSString * const kValue_OperationType = @"operationType";
+static NSString * const kValue_BizVersion = @"bizBundleVersion";
+static NSString * const kvalue_BizResult = @"bizResult";
+static NSString * const kvalue_ShareType = @"shareType";
+static NSString * const kvalue_ButtonId = @"buttonId";
+static NSString * const kvalue_Exception = @"exception";
+static NSString * const kvalue_Index = @"index";
+static NSString * const kvalue_UserId = @"userId";
+static NSString * const kvalue_EventType = @"eventType";
+static NSString * const kvalue_eventResult = @"eventResult";
+static NSString * const kvalue_isHaveCoupon = @"isHaveCoupon";
+
+
+static NSString * const kSharedType_Email = @"sharedType_Email";
+static NSString * const KSharedType_SMS = @"sharedType_SMS";
+static NSString * const kSharedType_Weibo = @"sharedType_Weibo";
+static NSString * const kSharedType_URL = @"sharedType_URL";
+
+static NSString * const kEventType_PaipaiScanResoult = @"eventType_PaipaiScanResoult";
+static NSString * const kEventType_gotoNewTransferPage = @"eventType_gotoNewTransferPage";
+static NSString * const kEventType_confirmTransferAccontButtonClick = @"eventType_confirmTransferAccontButtonClick";
+static NSString * const kEventType_confirmTransferInfo_MobileNo = @"eventType_confirmTransferInfo_mobileNo";
+static NSString * const kEventType_confirmTransferInfo_AlipayAccount = @"eventType_confirmTransferInfo_alipayAccount";
+static NSString * const kEventType_transferCall = @"eventType_transferCall";
+static NSString * const kEventType_historyContactButtonClick =@"eventType_historyContactButtonClick";
+static NSString * const kEventType_localContactButtonClick = @"eventType_localContactButtonClick";
+static NSString * const kEventType_superTransferReadyShake = @"eventType_superTransferReadyShake";
+static NSString * const kEventType_ShakeSuccessUsedTime = @"eventType_ShakeSuccessUsedTime";
+static NSString * const kEventType_KB_TicketZoneClicked = @"eventType_KB_TicketZoneClicked";
+static NSString * const kEventType_KB_BillZoneClicked = @"eventType_KB_BillZoneClicked";
+static NSString * const kEventType_KB_MyTicketClicked = @"eventType_KB_MyTicketClicked";
+static NSString * const kEventType_KB_GestureSetting_success = @"eventType_KB_ GestureSetting_success";
+static NSString * const kEventType_KB_TicketDetailSoundButtonClicked = @"eventType_KB_TicketDetailSoundButtonClicked";
+static NSString * const kEventType_KB_TicketDetailReadDetailButtonClicked = @"eventType_KB_TicketDetailReadDetailButtonClicked";
+static NSString * const kEventType_SendSmsButtonClickInCreditCardView = @"eventType_SendSmsButtonClickInCreditCardView";
+static NSString * const kEventType_CallButtonClickInCreditCardView = @"eventType_CallButtonClickInCreditCardView";
+
+#pragma mark - AntLog
+static const char kIAMPart1[] = "ia";
+#define kIAM ([NSString stringWithFormat:@"%sm", kIAMPart1])
+extern NSString * const kReferSpmKey;   /**<扩展4中referSpm对应的key值*/
+extern NSString * const kLogTraceIdKey; /**<扩展4中traceId对应的key值, 10.1.0新增*/
+
+extern NSString * const kBizTypeKey;         /**<8.3之前老接口传入bizType时使用的key*/
+extern NSString * const kBizTypePerformance; /**<性能埋点默认bizType*/
+extern NSString * const kBizTypeBehavior;    /**<行为埋点默认bizType*/
+extern NSString * const kBizTypeAutoTrack;   /**<自动化埋点默认bizType*/
+extern NSString * const kBizTypeCrash;       /**<crash埋点默认bizType*/
+extern NSString * const kBizTypeNetMonitor;  /**<流量监控埋点默认bizType*/
+extern NSString * const kBizTypeMonitor;     /**<性能管理埋点默认bizType*/
+
+extern NSString * const kH5PageURLKey;  /**<自动化埋点context.param中H5页面的URL对应的key值*/
+
+#pragma mark - Upload Events
+extern NSString * const kLogUploadEventForce;//强制上报
+extern NSString * const kLogUploadEventDefault;//缺省值
+extern NSString * const kLogUploadEventEnterBg;//压后台
+extern NSString * const kLogUploadEventBgLaunch;//后台唤起, iOS特有
+extern NSString * const kLogUploadEventCrash;//crash
+extern NSString * const kLogUploadEventMaxLogCount;//达到日志上报阈值条数
+extern NSString * const kLogUploadEventHistoryCheck;//检查历史文件,iOS特有
+extern NSString * const kLogUploadEventBoot;//启动上报
+extern NSString * const kLogUploadEventFloodDischarge;//泄洪上报
+extern NSString * const kLogUploadEventPeriodUpload;//满足时间条件上报
+#pragma mark -
+#pragma mark other keys
+//日志级别
+static NSString * const kLoggerLevel = @"loggerLevel";
+//关键业务日志级别
+static NSString * const LoggerLevelHigh  = @"loggerLevelHigh";
+//普通业务日志级别
+static NSString * const LoggerLevelMedium  = @"loggerLevelMedium";
+//诊断业务日志级别
+static NSString * const LoggerLevelLow  = @"loggerLevelLow";
+
+static NSString * const RemoteLoggingDisableAutoTrack = @"remoteLoggingDisableAutoTrack";
+
+static NSString * const kExternalSwitchValueChange = @"kExternalSwitchValueChange";
+
+typedef NS_ENUM(int, PerformanceLogType){
+    PerformanceLogTypeNone = 0,
+    PerformanceLogTypeNetwork,
+    PerformanceLogTypeMobSdk,
+    PerformanceLogTypeWebApp,
+    PerformanceLogTypePackage,
+    PerformanceLogTypePage,
+    PerformanceLogTypeInterface,
+    PerformanceLogTypeMemory,
+    PerformanceLogTypeSdkMonitor,
+    PerformanceLogTypeDiagnose,
+    PerformanceLogTypeSYNC_LINK,
+    PerformanceLogTypeSYNC_PROTO,
+    PerformanceLogCommon,
+    PerformanceLogHomePage,
+    PerformanceLogH5Diagnose,
+    PerformanceLogH5Exception,
+    PerformanceLogTypeCount
+};
+
+typedef NS_ENUM(int, APLogType){
+    APLogTypeNone = 0,
+    APLogTypeNetwork,
+    APLogTypeMobSdk,
+    APLogTypeWebApp,
+    APLogTypePackage,
+    APLogTypePage,
+    APLogTypeInterface,
+    APLogTypeMemory,
+    APLogTypeSdkMonitor,
+    APLogTypeDiagnose,
+    APLogTypeSYNC_LINK,
+    APLogTypeSYNC_PROTO,
+    APLogTypePerformance,
+    APLogTypeHomePage,
+    APLogTypeH5Diagnose,
+    APLogTypeH5Exception,
+    APLogTypeBehavior,
+    APLogTypeCrash,
+    APLogTypeAuto,
+    APLogTypeFootprint,
+    APLogTypeMonitor,
+    APLogTypeKeyBizTrace,
+    APLogTypeNetMonitor,
+    APLogTypeCount
+};
+
+typedef NS_ENUM(NSInteger, APRemoteLoggerPageInfomationType) {
+    APRemoteLoggerPageInfomationMiniType
+};
+
+extern NSString * const kAbtestconfigKey;       /**abtestconfig key值*/
+
+#endif // AP_REMOTE_LOGGING_DEFINE

+ 42 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APMonitorPointManager.h

@@ -0,0 +1,42 @@
+//
+//  APMonitorPointMrg.h
+//  AlipayPortal
+//
+//  Created by  tudou on 11-12-19.
+//  Copyright (c) 2011年 aliPay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+//FIXME:埋点的老接口,不要在这个类里面再添加方法
+@interface APMonitorPointManager : NSObject
+
+@property (atomic, strong) NSString *userID;
+@property (nonatomic, assign) BOOL hasAuthenticated;
+
++ (APMonitorPointManager*)sharedInstance;
+
+/**
+ *   注意:新的打点不要调用此接口,为保持兼容以前的代码保留
+ *              8.3之前的老的页面继续使用此接口,8.3新开的页面使用writeLogWithActionId:..这个接口
+ *
+ *              新的接口文件是APRemoteLogger.h
+ *
+ *  @param firstLog 字典初始化参数
+ **/
+-(void)addLogsAndKeys:(NSString *)firstLog, ... /*__deprecated*/;
+
+/**
+ * 设置用户的id跟认证信息
+ * @param userId,登录用户的用户id
+ */
+- (void)setUserId:(NSString *)userId;
+
+/**
+ * 设置用户的id跟认证信息
+ * @@param authenticated,标志用户是否已经认证
+ */
+- (void)setAuthenticated:(BOOL)authenticated;
+
+
+@end

+ 40 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogger+AntLog.h

@@ -0,0 +1,40 @@
+//
+//  APRemoteLogger+AntLog.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2017/9/29.
+//  Copyright © 2017年 Alipay. All rights reserved.
+//
+
+#import <APRemoteLogging/APRemoteLogging.h>
+#import "AntBehavior.h"
+#ifdef SDK_IS4_ALIPAY
+#import "AntPerformance.h"
+#endif
+
+@interface APRemoteLogger (AntLog)
+/**
+ 开/关Log功能
+ 
+ @param enable 传入YES开启,否则关闭。默认开启。
+ */
++ (void)enableLog:(BOOL)enable;
+
+/**
+ 行为埋点接口
+ 
+ @param behavior 行为埋点信息. @see \c AntBehavior.
+ */
++ (void)logBehavior:(AntBehavior *)behavior;
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ 性能埋点接口
+ 
+ @param performance 性能埋点信息. @see \c AntPerformance.
+ */
++ (void)logPerformance:(AntPerformance *)performance;
+
+#endif
+
+@end

+ 405 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogger+Internal.h

@@ -0,0 +1,405 @@
+//
+//  APRemoteLogger+Internal.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2017/4/12.
+//  Copyright © 2017年 Alipay. All rights reserved.
+//
+
+#import "APRemoteLogging.h"
+
+@class APLogManualPageInfo;
+
+/**
+ 内部埋点使用的 bizType,需要从下面的 bizType 中获取,以规范埋点开关的管控
+ */
+typedef NS_ENUM(NSInteger, mPaaSBizType)
+{
+    mPaaS_Alive_iOS,       // 报活
+    mPaaS_Launch_iOS,     // 启动速度
+    mPaaS_LAG_iOS,        // 卡顿
+    mPaaS_ANR_iOS,        // 卡死
+    mPaaS_Crash_iOS,      // 闪退
+    mPaaS_Automation_iOS, // 自动化
+    mPaaS_HotPatch_iOS,   // hotpatch
+    mPaaS_Push_iOS,       // 推送
+    mPaaS_Sync_iOS,       // 同步
+    mPaaS_Scan_iOS,       // 扫码
+    mPaaS_Nebula_iOS,     // H5容器
+    mPaaS_TinyApp_iOS,    // 小程序
+    mPaaS_RPC_iOS,        // RPC
+    mPaaS_Upgrade_iOS,    // 版本升级
+    mPaaS_ConfigService_iOS, // 开关配置
+    mPaaS_Share_iOS,       // 分享
+    mPaaS_Storage_iOS,     // 统一存储
+    mPaaS_LBS_iOS,         // LBS
+    mPaaS_CDP_iOS,         // CDP
+    mPaaS_Device_iOS,       // 设备标识
+    mPaaS_TAC_iOS,          // TAC
+    mPaaS_WebApp_iOS,       // webapp
+    mPaaS_WebAppTiny_iOS,   // webapp-tiny
+    mPaaS_NebulaTech_iOS,    // NebulaTech
+    mPaaS_OCR_iOS,         // OCR
+    mPaaS_SafeKeyboard_iOS, // 安全键盘
+    mPaaS_Traffic_iOS,      // 流量监控
+    mPaaS_Framework_iOS,     // 框架
+    mPaaS_Multimedia_iOS,    //多媒体
+    mPaaS_Client_iOS,       // 客户端 license
+    mPaaSMonitorNetiOS,    // APM网络
+};
+
+
+//把APRemoteLogging.h中那堆不需要普通业务关注的接口移到了这里. by 卡迩
+NS_ASSUME_NONNULL_BEGIN
+@interface APRemoteLogger (Internal)
+
+#pragma mark -
+#pragma mark 兼容需要保留
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ *   注意:新的埋点不要调用此接口,为保持兼容以前的代码所以保留
+ *              8.3之前的老的页面继续使用此接口,8.3新开的页面使用writeLogWithActionId:..这个接口
+ *
+ *  @param dict log 字典
+ */
++(void)writeLogWithLogDictionary:(NSDictionary *) dict /*__deprecated*/;
+#endif
+
+#pragma mark -
+#pragma mark Global State
+
+/**
+ 获取最近一次手动PV埋点(pageMonitor)生成的pageInfo对象.
+
+ @return 最近一次手动PV埋点生成的pageInfo对象.
+ */
++ (nullable APLogManualPageInfo *)currentPageInfo;
+
+/**
+ 获取最后点击的控件的spm值.
+
+ @return 最后点击的控件的spm值(若有).
+ */
++(nullable NSString *)lastClickSpm;
+
+/**
+ 更新最后点击的spm值.
+ @note 该方法供自动化埋点SDK调用,业务方不要使用.
+ @param spm 最后点击的spm值.可以为空.
+ */
++(void)setLastClickSpm:(nullable NSString *)spm;
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ *  界面点击的ActionToken(TraceID)
+ *
+ *  @return 最近界面点击的ActionToken(TraceID)
+ */
++(nullable NSString *) currentActionToken;
+
+/**
+ *  界面点击的ActionToken的生成时间戳,为精简RPC包大小而提供
+ *
+ *  @return 最近界面点击的ActionToken的生成时间戳
+ */
++(unsigned long long) tokenTimestamp;
+
+/**
+ *  界面点击的最近一个控件标识
+ *
+ *  @return 最近界面点击的最近一个控件标识
+ */
++(nullable NSString *) currentActionControlID;
+
+/**
+ *  当前页面的ID
+ *
+ *  @return 当前页面的ID
+ */
++(nullable NSString *) currentPageID;
+
++(nullable NSString *) lastPageID;
+#endif
+
++(nullable NSString *) currentSubAppID;
+
+#ifdef SDK_IS4_ALIPAY
++(void) resetCurrentPageId:(nonnull NSString *)pageId;
+/**
+ *  页面数据准备好到达可用状态,由业务主动调用
+ *
+ *  @return void
+ */
++ (void)pageDidFinishInitializing;
+
+/**
+ *  字符串数组格式化转成str1|str2|str3格式字符串
+ *
+ *  @param array 字符串数组
+ *
+ *  @return 格式化后字符串
+ */
++ (nonnull NSString *)convertToStringFromArray:(nonnull NSArray *)array;
+
+/**
+ *  设置扩展参数,支持扩展参数的日志模型(行为,性能)
+ *  字典转成 key=value^key=value^key=value 格式字符串
+ *
+ *  @return void
+ */
++ (void)setFoundationExtended:(nullable NSDictionary *)dict;
+
+/**
+ *  字典格式化 转成 key:value&key:value&key:value 格式字符串
+ *
+ *  @param dictionary 字典
+ *  @param kvSeparator 可以为空,默认使用:连接,字典key和value的连接字符(比如key:value)
+ *  @param componentsSeparator 可以为空,默认使用&连接,每队key,value组合后的连接字符(比如key:value&key:value)
+ *  @return 格式化后的字符串
+ *
+ */
++ (nonnull NSString *)convertToStringFromDictionary:(nonnull NSDictionary *)dictionary
+                                        kvSeparator:(nullable NSString *)separator1
+                                componentsSeparator:(nullable NSString *)separator2;
+
+#endif
+/**
+ *  取索引的pageid
+ *  @param index  pageid索引
+ *  @return 页面流水号
+ */
++ (nullable NSString *)pageIdForIndex:(nonnull NSObject *)index;
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ *  取索引的pageid的时间戳
+ *  @param index  pageid索引
+ *  @return 页面流水号的时间戳
+ */
++ (nullable NSString *)pageIdTimestampForIndex:(nonnull NSObject *)index;
+
+/**
+ *  取索引的spmid
+ *  @param index  pageid索引
+ *  @return 页面spmid
+ */
++ (nullable NSString *)spmIdForIndex:(nonnull NSObject *)index;
+#endif
+
+
+/**
+ *  取索引的信息
+ *  @param index  pageid索引
+ *  @param type  pageInfo类型
+ *  @return 页面信息
+ */
++ (nullable NSString *)pageInfomationForIndex:(nonnull NSObject *)index forType:(APRemoteLoggerPageInfomationType)type;
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ *  清除所有无效的历史流水号
+ */
++ (void)resetPageMonitorContext;
+
+/**
+ *  向spmpage列表中添加page页
+ */
++ (void)addSpmPage:(nonnull NSString *)spmPage;
+
+/**
+ *  得到日志等级
+ */
++ (NSInteger)levelNumberForString:(nonnull NSString *)strLevel;
+
+/**
+ *  设置外部开关值
+ */
++ (void)setSwitchValue:(nullable NSString *)value forKey:(nonnull NSString *)key;
+
+/**
+ 设置统一开关值
+
+ @param configDict 开关字典
+ */
++(void)setSwitchDict:(NSDictionary *)configDict;
+
+#endif
+
+/**
+ *  获取外部开关值
+ */
++ (NSString *)switchValueForKey:(nonnull NSString *)key;
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ 是否已经完成历史日志文件检查
+ @note 在该方法返回YES后,触发某个bizType的日志的上报会附加上历史日志,否则只会上报本次启动产生的日志
+ @return 在启动完成一定时间后会捞取历史日志到内存中,当该动作已完成时,返回 YES, 否则返回 NO.
+ */
++ (BOOL)isHistoryLogFileChecked;
+
+/**
+ 自动化埋点记录的refer值(若有)
+ @return 当前自动化埋点记录的refer值(若有),未引入autotracker时,总是返回nil.
+ */
++ (nullable NSString *)currentAutoRefer;
+
+#pragma mark -
+#pragma mark 以下函数业务不要调用
+
++(void)mPaaS_writeCrashLog:(NSString *) report vcStack:(NSString *) vcStack;
++(NSDictionary*)stateWhenCrashed:(NSString*)vcStack thread:(thread_t)thread ucontext:(void *)ucontext;
++(void)mPaaS_writeCrashLog:(NSString *)report state:(NSDictionary*)state innerVersion:(NSString *)innerVersion;
++(void)writeOOMLog:(NSString *)report state:(NSDictionary *)infoDic;
+
++ (void)writePerformanceLogWithType:(APLogType)type
+                            subType:(NSString *) subType
+                        extraParams:(NSArray *) extraParams
+                    actionControlID:(NSString *) controlID
+                         actionToke:(NSString *) actionToken;
++(void)upload;
+#endif
++ (void)protectExtentionParams:(NSMutableArray *)params;
+
+#ifdef SDK_IS4_ALIPAY
++(void) logAutoEventWithBizType:(NSString*)bizType params:(NSArray*)params;
++(void) logPageBeginRenderWithPageName:(NSString *) name;
++(void) logPageStartWithPageId:(NSString *) pageId appId:(NSString *) appId
+                   sourceAppId:(NSString *) sourceAppId pageName:(NSString *) pageName;
+
++ (void)logPageMonitorWithMonitorType:(NSString *)monitorType;
++ (NSString *)logPageMonitorType;
+
+NSString *pageDidAppearName(NSString *pageName);
++ (void)logPageEndRenderWithPageName:(NSString *)name;
+
++(BOOL) statusForWriteLogSwitch:(NSString*) logType;
++(BOOL) statusForSendLogSwitch:(NSString*) logType;
+
++(void) checkCrashLogWithCompletionBlock:(void (^)(void)) block;
+void updateSwitchProfile(NSString *actionType);
+
+// 添加OC版本的接口,为了利用OC的动态特性实现模块间解耦合
++ (void)SLWriteMonitorLog:(NSDictionary*)attachDict appID:(NSString*)appID monitorType:(NSString*)monitorType subMonitorType:(NSString*)subMonitorType mPaaSBizType:(mPaaSBizType)bizType;
++ (void)APWriteNetLog:(NSString*)identifier size:(NSString*)size type:(NSString*)type owner:(NSString*)owner extDict:(NSDictionary*)extDict;
+void APWriteNetLog(NSString *identifier, NSString *size, NSString* type, NSString *owner, NSDictionary * extDict);
+
+///**
+// *   暂停日志上传,最大暂停时间为60s,时间过后自动打开日志上传
+// *   设置这个机制的原因是防止调用方异常,没有调用resumeLogUploading等情况下,导致日志无法上传。
+// *
+// *  @param secondes 自定义的日志暂停上传时间,最大值为60s,最小值为1s,其余值将导致默认暂停10s
+// */
+//+(void) suspendLogUploadingForSeconds:(int) seconds;
+
+///**
+// *   立即恢复日志上传功能
+// */
+//+(void) resumeLogUploading;
+
+#endif
+
+/**
+ 添加周期性执行的block. 每30s执行一次.
+ */
++(void)addPeriodicallyExecutedBlock:(void (^)(void))block;
+
+#pragma mark - Interface for Alipayinside
+
+/**
+ 添加自定义bizType 内容 日志
+ */
++ (void)writeLogWithCustomContent:(NSString *) content
+                          bizType:(NSString *) bizType;
+
+#ifdef SDK_IS4_TAOBAO
+/**
+ * 设置用户的id跟认证信息
+ * @param userId,登录用户的用户id
+ */
++ (void)setUserId:(NSString *)userId;
+
+#endif
+
+/**
+ @param module 模块名称,如APMobileFramework。此值对应自定义分析大盘配置中的事件,即一个模块对一个事件
+
+ @param params 参数信息,以字典形式存入,key对应自定义分析配置中的属性
+
+ */
+- (void)writeMPaaSSDKLogWithModule:(NSString *)module params:(NSDictionary *)params;
+
+
+
+#pragma mark - 仅 mPaaS 内部使用
+
+
++ (NSString *)getMPaaSBaseline;
+
+
+/**
+ 内部专用行为埋点接口,用于组件状态上报
+ @param bizType 埋点业务类型,必传,用于埋点开关控制,需要使用上面定义枚举
+ @param seed    埋点ID,必传,用于数据清洗
+ @param extraParams 埋点扩展参数数组,@{"", "", "", @{}}
+ */
++ (void)writeBehaviorLogWithBizType:(mPaaSBizType)bizType
+                              seed:(nonnull NSString *)seed
+                       extraParams:(nonnull  NSArray *)extraParam;
+
+
+/**
+ 内部专用复杂行为埋点接口
+ */
++ (void)writeBehaviorLogWithActionId:(NSString *)actionId
+                           extParams:(NSArray *)extraParam
+                               appId:(NSString *)appId
+                                seed:(NSString *)seed
+                                ucId:(NSString *)ucId
+                             bizType:(mPaaSBizType)bizType
+         formatterDictionary:(NSDictionary *)formatterDictionary;
+
+/**
+ 专用性能接口,上报大盘使用的性能埋点
+ @param bizType 埋点业务类型,必传,用于埋点开关控制,需要使用上面定义枚举
+ @param number 日志上报条数阈值。当传入 0 时,底层方法会取默认上报条数阈值。
+ */
++ (void)mPaaS_writePerformanceLogWithType:(mPaaSBizType)type
+                                  subType:(nullable NSString *)subType
+                              extraParams:(nullable NSArray *)extraParams
+                      formatterDictionary:(nullable NSDictionary *)formatterDictionary
+                             perUploadNum:(NSUInteger)number;
+
+
+/**
+ 卡死日志上报
+ */
++ (void)mPaaS_writeANRPerformanceLogWithBizType:(mPaaSBizType)bizType
+                               subType:(nullable NSString *)subType
+                           extraParams:(nullable NSArray *)extraParams
+                   formatterDictionary:(nullable NSDictionary *)dictionary
+                          perUploadNum:(NSUInteger)number;
+
+/**
+ 卡顿日志上报
+ */
+void  mPaaS_SLWriteMonitorLog(NSDictionary * attachDict, NSString* appID, NSString *monitorType, NSString *subMonitorType, mPaaSBizType bizType);
+
+/**
+ * 网络类型
+ */
++ (NSString *)currentNetEnvString;
+
+/**
+ APM网络RPC日志上报
+ */
++ (void)mPaaSAPMRPCNetLog:(mPaaSBizType)bizType extDict:(NSDictionary*)extDict;
+
+/**
+ APM 业务自定义网络埋点
+ */
++ (void)mPaaSAPMNetCustomLog:(NSDictionary*)extDict;
+
+@end
+NS_ASSUME_NONNULL_END

+ 177 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogger.h

@@ -0,0 +1,177 @@
+//
+//  APRemoteLogger.h
+//  APRemoteLogging
+//
+//  Created by tashigaofei on 14-6-23.
+//  Copyright (c) 2014年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+#import <mach/mach.h>
+#import "APMonitorPointDataDefines.h"
+
+#ifdef SDK_IS4_ALIPAY
+#import "APLogAddions.h"
+#endif
+
+NS_ASSUME_NONNULL_BEGIN
+/**
+ 手动埋点Logger. 包含行为埋点和性能埋点.
+ 文档: https://lark.alipay.com/wfc/doc/manual-log-ios
+ */
+@interface APRemoteLogger : NSObject
+
+/**
+ 诊断埋点的上报开关, YES 为关闭埋点,NO 为打开埋点,默认为NO
+ */
+@property (nonatomic, class, assign) BOOL isDisableRemoteLog;
+
+#pragma mark -
+#pragma mark Behavior 行为埋点接口
+
+/**
+ *  行为埋点接口。客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *  对于不需要自定义bizType的业务,推荐使用该接口。
+ *
+ *  @param actionId  action ID 必填,标识一个埋点的类别,可用actionID定义在APMonitorPointDataDefines.h
+ 文件中
+ *  @param extParams 可选,扩展参数,业务自己根据需要填充。数组元素最多4个,第四个元素可以是字典,
+ 字典内容可自定义,字典会被转换成key-value的字符串计入日志
+ *  @param appId     可选,子应用ID
+ *  @param seed      可选,埋点ID,现已更名为spm,若有则务必填写。
+ *  @param ucId      可选,用例编号
+ */
++(void)writeLogWithActionId:(NSString *)actionId
+                  extParams:(nullable NSArray *)extParams
+                      appId:(nullable NSString *)appId
+                       seed:(NSString *)seed
+                       ucId:(nullable NSString *)ucId;
+
+/**
+ *  行为埋点接口。客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *
+ *  @param actionId  action ID 必填,标识一个埋点的类别,可用actionID定义在APMonitorPointDataDefines.h
+ 文件中
+ *  @param extParams 可选,扩展参数,业务自己根据需要填充。数组元素最多4个,第四个元素可以是字典,
+ 字典内容可自定义,字典会被转换成key-value的字符串计入日志
+ *  @param appId     可选,子应用ID
+ *  @param seed      可选,埋点ID,现已更名为spm,若有则务必填写。
+ *  @param ucId      可选,用例编号
+ *  @param bizType   可选,业务类型. 默认值为behavior,若传入非空的自定义的bizType,请务必保证已经跟mdap服务端申请了该bizType,否则服务端会丢弃该日志
+ *  对于不需要自定义formatter的业务,推荐使用该接口。
+ */
++(void)writeLogWithActionId:(NSString *)actionId
+                  extParams:(nullable NSArray *)extParams
+                      appId:(nullable NSString *)appId
+                       seed:(NSString *)seed
+                       ucId:(nullable NSString *)ucId
+                    bizType:(nullable NSString *)bizType;
+
+/**
+ *  行为埋点接口。客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *
+ *  @param actionId  action ID 必填,标识一个埋点的类别,可用actionID定义在APMonitorPointDataDefines.h
+ 文件中
+ *  @param extParams 可选,扩展参数,业务自己根据需要填充。数组元素最多4个,第四个元素可以是字典,
+ 字典内容可自定义,字典会被转换成key-value的字符串计入日志
+ *  @param appId     可选,子应用ID
+ *  @param seed      可选,埋点ID,现已更名为spm,若有则务必填写。
+ *  @param ucId      可选,用例编号
+ *  @param bizType   可选,业务类型. 默认值为behavior,若传入非空的自定义的bizType,请务必保证已经跟mdap服务端申请了该bizType,否则服务端会丢弃该日志
+ *  @param formatterDictionary  可选,业务可以根据需求自定义formatter字典值,内容ID(entityId/SCM)、日志头(header)、页面Id(pageId)、日志级别(logLevel)、ABTest实验信息(abTestInfo)可通过该字段自定义。
+ */
++ (void)writeLogWithActionId:(NSString *)actionId
+                   extParams:(nullable NSArray *)extParams
+                       appId:(nullable NSString *)appId
+                        seed:(NSString *)seed
+                        ucId:(nullable NSString *)ucId
+                     bizType:(nullable NSString *)bizType
+         formatterDictionary:(nullable NSDictionary *)formatterDictionary;
+
+#pragma mark -
+#pragma mark PageMonitor
+/**
+ *  PageMonitor 页面打开
+ *  @param spmId 代表当前页面的spm
+ *  @param index  pageid索引,通常传入当前VC对象即可,同一个页面的pageStart和pageEnd需要传入同一个对象.
+ *  @return void
+ *
+ */
++ (void)logPageStartWithSpmId:(NSString *)spmId
+                        index:(NSObject *)index;
+
+/**
+ *  PageMonitor 页面结束,会生成pageMonitor埋点
+ *  @param spmId 代表当前页面的spm
+ *  @param index  pageid索引,通常传入当前VC对象即可,同一个页面的pageStart和pageEnd需要传入同一个对象.
+ *  @param param 手动埋点扩展参数4
+ *  @return void
+ */
++ (void)logPageEndWithSpmId:(NSString *)spmId
+                      index:(NSObject *)index
+                    bizType:(nullable NSString *)bizType
+                      param:(nullable NSDictionary *)param;
+
+#pragma mark -
+#pragma mark Performance 性能埋点接口
+
+#ifdef SDK_IS4_ALIPAY
+/**
+ *  性能埋点接口,客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *
+ *  @param tpye 类型
+ *  @param subType 子类型,业务可以自己定义
+ *  @param extraParams 扩展字段,共四个item,第四个item是字典,字典内容可自定义,字典会被转换成key-value的字符串计入日志
+ */
++ (void)writePerformanceLogWithType:(APLogType)type
+                            subType:(nullable NSString *)subType
+                        extraParams:(nullable NSArray *)extraParams;
+
+/**
+ *  埋点接口,客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *
+ *  @param tpye 类型,每种类型对应一个日志文件
+ *  @param subType 子类型,业务可以自己定义,用于过滤筛选用
+ * @param extraParams 扩展字段,共四个item,第四个item是字典,字典内容可自定义, 字典会被转换成key-value的字符串计入日志
+ *  @param perUploadNum 达到num条日志时,触发一次日志上传,当num==1时,实时上传日志。0表示忽略此参数.
+ */
++ (void)writeWithType:(APLogType)type
+              subType:(nullable NSString *) subType
+           paramArray:(nullable NSArray *) extraParams
+         perUploadNum:(NSUInteger) num;
+
+/**
+ *  性能埋点接口,客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *
+ *  @param tpye 类型
+ *  @param subType 子类型,业务可以自己定义
+ *  @param extraParams 扩展字段,共四个item,第四个item是字典,字典内容可自定义,字典会被转换成key-value的字符串计入日志
+ *  @param formatterDictionary 业务可以根据需求自定义formatter字典值,格式头可以通过此字典参数设置
+ *  @param perUploadNum达到number条日志时,触发一次日志上传,当number==1时,实时上传日志。0表示忽略此参数.
+ */
++ (void)writePerformanceLogWithType:(APLogType)type
+                            subType:(nullable NSString *)subType
+                        extraParams:(nullable NSArray *)extraParams
+                formatterDictionary:(nullable NSDictionary *)formatterDictionary
+                       perUploadNum:(NSUInteger)number;
+
+/**
+ *  性能埋点接口(支持自定义bizType,10.0.12新增)
+ *  客户端版本、用户ID、设备ID、操作系统版本、网络类型、设备类型、软件版本会自动填充,不需要业务埋点。
+ *  @param bizType   埋点的业务类型,用于日志文件拆分、限流;
+ *  @param subType   埋点子类型,业务可以自己定义
+ *  @param extraParams 扩展字段,共四个item,第四个item是字典,字典内容可自定义,字典会被转换成key-value的字符串计入日志
+ *  @param formatterDictionary 业务可以根据需求自定义formatter字典值,日志头、日志级别可以通过此字典参数设置
+ *  @param perUploadNum达到number条日志时,触发一次日志上传,当number==1时,实时上传日志。0表示忽略此参数.
+ */
++ (void)writePerformanceLogWithBizType:(nullable NSString *)bizType
+                               subType:(nullable NSString *)subType
+                           extraParams:(nullable NSArray *)extraParams
+                   formatterDictionary:(nullable NSDictionary *)dictionary
+                          perUploadNum:(NSUInteger)number;
+#endif
+
+
+@end
+NS_ASSUME_NONNULL_END

+ 35 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteLogging.h

@@ -0,0 +1,35 @@
+//
+//  Created by wenbi on 13-4-27.
+//  Copyright (c) 2013年 Alipay. All rights reserved.
+//
+
+#import <APRemoteLogging/APRemoteMarco.h>
+#import <Foundation/Foundation.h>
+#import <APRemoteLogging/APMonitorPointDataDefines.h>
+
+#import <APRemoteLogging/APRemoteLogger.h>
+#import <APRemoteLogging/APRemoteLogger+Internal.h>
+#import <APRemoteLogging/SPMTrackerLog.h>
+#import <APRemoteLogging/SPMTrackerInfo.h>
+#import <APRemoteLogging/AntLogSampleCenter.h>
+#import <APRemoteLogging/AntBehavior.h>
+#import <APRemoteLogging/AntEvent.h>
+
+#import <APRemoteLogging/AntLogCrypt.h>
+#import <APRemoteLogging/AntLogPreference.h>
+#import <APRemoteLogging/APLogSpmUtils.h>
+#import <APRemoteLogging/APRemoteLogger+AntLog.h>
+#import <APRemoteLogging/ATEventLogger.h>
+
+#ifdef SDK_IS4_ALIPAY
+#import <APRemoteLogging/APMonitorPointManager.h>
+#import <APRemoteLogging/AntRealtimeLogUploader.h>
+#import <APRemoteLogging/AntRealtimeLogItem.h>
+#import <APRemoteLogging/AntPerformance.h>
+#import <APRemoteLogging/AntDAU.h>
+#import <APRemoteLogging/AntLogInterface.h>
+#endif
+
+#ifdef SDK_IS4_TAOBAO
+#import <APRemoteLogging/APRemoteLoggingLaunchTask.h>
+#endif

+ 48 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/APRemoteMarco.h

@@ -0,0 +1,48 @@
+//
+//  APRemoteMarco.h
+//  APRemoteLogging
+//
+//  Created by LiMengtian on 2018/8/28.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+/*
+ Export Marco:
+ 
+ LOG_SDK_LEVEL
+ SDK_IS4_ALIPAY
+ SDK_IS4_TAOBAO
+
+ */
+
+#ifndef APRemoteMarco_h
+#define APRemoteMarco_h
+
+#define SDK_IS4_ALIPAY
+
+
+//#ifndef SDK_LEVEL
+//#define SDK_LEVEL LOG_SDK_4AP
+//#endif
+//
+//
+///** SDK LEVEL*/
+//#define LOG_SDK_4AP 1   //输出支付宝
+//#define LOG_SDK_4TB 0    //输出淘宝
+//
+//
+//#ifdef SDK_LEVEL
+//    #define LOG_SDK_LEVEL SDK_LEVEL
+//#else
+//    #define LOG_SDK_LEVEL LOG_SDK_4AP
+//#endif
+//
+//
+//#if (LOG_SDK_LEVEL == LOG_SDK_4AP)
+//    #define SDK_IS4_ALIPAY
+//#elif (LOG_SDK_LEVEL == LOG_SDK_4TB)
+//    #define SDK_IS4_TAOBAO
+//#endif
+
+
+#endif /* APRemoteMarco_h */

+ 40 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATActionMgr.h

@@ -0,0 +1,40 @@
+//
+//  ATActionMgr.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/26.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+@class ATAction;
+
+/**
+ * 操作管理器
+ */
+@interface ATActionMgr : NSObject
+
+@property (nonatomic, readonly, strong) NSOperationQueue *actionQueue; /**< 操作队列*/
+
+/**
+ * 入队一个操作
+ */
+- (void)enqueueAction:(ATAction *)action;
+
+@end
+
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * 操作对象基类
+ */
+@interface ATAction : NSOperation
+
+@property (nonatomic, copy) NSString *actionName; /**< 操作名*/
+
+/**
+ * 是否可用. 不可用时不执行. 默认返回 \c YES.
+ */
+- (BOOL)validate;
+
+@end

+ 29 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATAppendAction.h

@@ -0,0 +1,29 @@
+//
+//  ATAppendAction.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/26.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATActionMgr.h"
+#import "ATEvent.h"
+#import "ATLayout.h"
+
+/**
+ * Append操作
+ */
+@interface ATAppendAction : ATAction
+
+//@property (nonatomic, strong) ATEvent *event;    /**<埋点事件参数对象*/
+//@property (nonatomic, strong) ATLayout *layout;  /**<埋点事件对应的渲染器*/
+
+/**
+ * 初始化一个Append操作
+ * @param event 埋点事件参数对象
+ * @param layout 渲染器
+ */
+- (instancetype)initWithEvent:(ATEvent *)event
+                       layout:(ATLayout *)layout NS_DESIGNATED_INITIALIZER;
+
+@end

+ 39 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATAppender.h

@@ -0,0 +1,39 @@
+//
+//  ATAppender.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/25.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATMessage.h"
+#import "ATConfigMgr.h"
+
+/**
+ * 文件Appender
+ */
+@interface ATAppender : NSObject
+
+@property (nonatomic, strong) NSString *name;   /**< 名称,对应bizId*/
+@property (nonatomic, assign) NSUInteger count; /**< 条数*/
+@property (nonatomic, strong) NSString *path;   /**< 文件路径*/
+
+/**
+ * 打开历史文件,记录最新count
+ */
+- (void)checkHistory;
+
+/**
+ * 写入一条msg
+ * @param msg 待写入的埋点消息
+ * @param created 文件是否新创建
+ */
+- (void)appendMsg:(MPaaSATMessage *)msg fileCreated:(BOOL*)created;
+
+/**
+ * Flush内存缓存,将文件移动到待上传目录
+ */
+- (void)flush;
+
+@end

+ 43 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATAppenderMgr.h

@@ -0,0 +1,43 @@
+//
+//  ATAppenderMgr.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/25.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATAppender.h"
+
+/**
+ * Appender管理器
+ */
+@interface ATAppenderMgr : NSObject
+
+@property(nonatomic,assign) NSTimeInterval lastPeriodCheckTime;/**上次检查时间*/
+@property(nonatomic,strong) NSMutableDictionary<NSString*,NSNumber*>* fileCreateTimes;/**记录logs目录下各biz对应文件创建时间,key是biz*/
+/**
+ * 根据biz获取Appender实例
+ * @param biz bizId
+ * @param create 内存中没有缓存时是否创建新的,默认NO.
+ */
+- (ATAppender *)appenderForBizId:(NSString *)biz
+                createIfNotExist:(BOOL)create;
+
+/**
+ * 获取内存中所有Appender实例
+ */
+- (NSArray<ATAppender *> *)appenders;
+
+/**
+ * 通知管理器App启动完成
+ */
+- (void)notifyAfterLaunch:(__unused NSDictionary *)info;
+
+/**
+ 检查满足时间条件的biztype上报
+ 
+ */
+-(void)periodUploadCheck;
+
+@end

+ 19 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATBehaviorLayout.h

@@ -0,0 +1,19 @@
+//
+//  ATBehaviorLayout.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/5/3.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLayout.h"
+
+extern NSString *const kDefaultBehaviorHeader; /**< 默认行为埋点Header: D-VM*/
+extern NSString *const kBehaviorLogVersion;    /**< 行为埋点版本*/
+
+/**
+ * 行为埋点Layout
+ */
+@interface ATBehaviorLayout : ATLayout
+
+@end

+ 48 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATBehaviorLogger.h

@@ -0,0 +1,48 @@
+//
+//  ATBehaviorLogger.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/5/3.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLogger.h"
+#import "AntBehavior.h"
+
+/**
+ * 行为Logger
+ */
+@interface ATBehaviorLogger : ATLogger
+
+/**
+ * 点击埋点
+ * @param b 行为埋点参数对象 @see \c AntBehavior
+ */
+- (void)click:(AntBehavior *)b;
+
+/**
+ * 曝光埋点
+ * @param b 行为埋点参数对象 @see \c AntBehavior
+ */
+- (void)exposure:(AntBehavior *)b;
+
+/**
+ * 通用行为事件
+ * @param b 行为埋点参数对象 @see \c AntBehavior
+ */
+- (void)event:(AntBehavior *)b;
+
+@end
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 获取行为Logger实例
+     */
+    ATBehaviorLogger * ATBehaviorLoggerGet();
+    
+#ifdef __cplusplus
+}
+#endif

+ 113 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATConfigMgr.h

@@ -0,0 +1,113 @@
+//
+//  AntLogConfigManager.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2017/12/13.
+//  Copyright © 2017年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "AntLogLevel.h"
+#import "ISampleControl.h"
+
+extern NSUInteger const kDefaultMaxLogCount;
+
+@class ATConfig;
+
+#ifdef SDK_IS4_ALIPAY
+@class ATRealtimeLogConfig;
+@class ATDelayUploadConfig;
+
+#endif
+
+/**
+ * 埋点配置管理器
+ */
+@interface ATConfigMgr : NSObject
+
+#ifdef SDK_IS4_ALIPAY
+@property (nonatomic, strong) ATRealtimeLogConfig *realtimeConfig;
+@property (nonatomic, strong) ATDelayUploadConfig *delayUploadConfig;
+
+#endif
+
+- (NSDictionary<NSString *,ATConfig *> *)allBizConfigs;
+
+- (ATConfig *)configForBiz:(NSString *)bizType;
+
+- (void)refreshConfig:(BOOL)force extInfo:(NSDictionary *)info;
+
+- (void)setExtConfigValue:(NSString *)value
+                   forKey:(NSString *)key;
+
+-(void)setExtConfigDict:(NSDictionary *)configDict;
+
+- (NSString *)extConfigValueForKey:(NSString *)key;
+
+- (void)recalculateSampleControl;
+
+- (void)notifyDidFinishLaunching:(__unused NSDictionary *)info;
+
+-(BOOL)inDelayTime;
+
+@end
+
+@interface ATConfigMgr ()
+
+@property (atomic, assign) BOOL httpsDisabled;
+@property (atomic, assign) BOOL lengthLimitDisabled;
+@property (atomic, assign) BOOL delayUpload;/**< 蓄洪功能开关*/
+@property (atomic, assign) BOOL fullLink;/**< 全链路监控功能开关*/
+@property (atomic, assign) BOOL customLog;/**< 自定义日志功能开关*/
+@property (atomic, assign) BOOL verifySwitch;/**< 验证功能开关*/
+@property (atomic, assign) BOOL floodRate;/**< 削峰率开关*/
+@property (atomic, assign) BOOL periodUpload;/**< 间隔上传开关*/
+@property (atomic, assign) NSInteger periodInterval;/**< 轮询间隔*/
+@property (atomic, assign) BOOL failDelay;/**< 失败后上传间隔开关*/
+@property (atomic, assign) BOOL emptyTask;/**< 空任务修复开关*/
+@end
+
+////////////////////////////////////////////////////////////////////////////////
+
+@interface ATConfig : NSObject
+
+@property (nonatomic, assign) NSUInteger maxLogCount;       /**< 条数上报阈值*/
+@property (nonatomic, strong) NSArray *sendNetEnvs;         /**< 可上报的网络类型集合*/
+@property (nonatomic, strong) NSArray *events;              /**< 可上报的原因集合*/
+@property (nonatomic, assign) AntLogLevel level;            /**< 最低可写入的日志等级*/
+@property (nonatomic, assign) BOOL write;                   /**< 是否写入*/
+@property (nonatomic, assign) BOOL encrypt;                 /**< 是否加密*/
+@property (nonatomic, assign) BOOL realtime;                /**< 是否实时通道上报*/
+@property (nonatomic, assign) BOOL usemetds;                /**< 是否走metds域名上报*/
+@property (nonatomic, assign) NSInteger periodInterval;    /**< 上传时间间隔*/
+@property (nonatomic, strong) ISampleControl *sampleControl;/**< 抽样控制策略*/
+@property (nonatomic, strong) DelayControl *delayControl;   /**< 削峰控制策略*/
+
++ (ATConfig *)defaultConfig;
+
++ (ATConfig *)configWithDictionary:(NSDictionary *)dict;
+
+- (BOOL)netEnvValid;
+
+@end
+
+
+#ifdef SDK_IS4_ALIPAY
+@interface ATRealtimeLogConfig : NSObject
+
+@property (nonatomic, assign) BOOL enabled;
+@property (nonatomic, assign) NSTimeInterval timerInterval;
+
+@end
+
+@interface ATDelayUploadConfig : NSObject
+
+@property(nonatomic,strong) NSMutableDictionary* floodTime;/**< 蓄洪开启时间为key 泄洪时间为value 可以配置多个 泄洪时间 单位 100ms*/
+@property(nonatomic,assign) uint64_t minDelay;/**< 蓄洪最小持续时间 单位秒*/
+@property(nonatomic,assign) uint64_t maxDelay;/**< 蓄洪最大持续时间 单位秒*/
+@property(nonatomic,strong) NSString* currDesc;/**< 削峰配置当前描述*/
+@property(nonatomic,strong) NSString* lastDesc;/**< 削峰上次配置的描述*/
+@end
+
+#endif
+

+ 75 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATContext.h

@@ -0,0 +1,75 @@
+//
+//  ATContext.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/23.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATLogger.h"
+#import "ATParameters.h"
+#import "ATAppenderMgr.h"
+#import "ATActionMgr.h"
+#import "ATConfigMgr.h"
+#import "AntLogSampleCenter.h"
+
+@class ATUploadMgr;
+
+extern NSString *const ATBaseLoggerName;        /**< 默认Logger name*/
+extern NSString *const ATBehaviorLoggerName;    /**< 行为埋点Logger name*/
+
+#ifdef SDK_IS4_ALIPAY
+extern NSString *const ATPerformanceLoggerName; /**< 性能埋点Logger name*/
+extern NSString *const ATDataFlowLoggerName;    /**< 流量监控埋点Logger name*/
+extern NSString *const ATCrashLoggerName;       /**< Crash埋点Logger name*/
+extern NSString *const ATMonitorLoggerName;     /**< 性能管理埋点Logger name*/
+extern NSString *const ATLinkLoggerName;        /**< 全链路监控埋点Logger name*/
+extern NSString *const ATEventLoggerName;       /**< 事件管理埋点Logger name*/
+#endif
+extern NSString *const ATCustomLoggerName;
+
+/**
+ * ATrack全局上下文
+ */
+@interface ATContext : NSObject
+
+@property (class, nonatomic, strong) ATParameters *parameters;   /**< 全局参数*/
+@property (class, nonatomic, strong) ATAppenderMgr *appenderMgr; /**< Appender管理器*/
+@property (class, nonatomic, strong) ATUploadMgr *uploadMgr;     /**< Upload管理器*/
+@property (class, nonatomic, strong) ATActionMgr *actionMgr;     /**< Action管理器*/
+@property (class, nonatomic, strong) ATConfigMgr *configMgr;     /**< 策略管理器*/
+@property (class, nonatomic, strong) AntLogSampleCenter *sampleCenter; /**< 抽样控制管理器*/
+
+/**
+ * ATContext单例
+ */
++ (ATContext *)sharedInstance;
+
+/**
+ * 设置 \c name 对应的Logger实例
+ * @param logger ATLogger子类
+ * @param name Logger名
+ */
+- (void)setLogger:(ATLogger *)logger forName:(NSString *)name;
+
+/**
+ * 根据名称获取Logger实例
+ * @param name Logger名称
+ */
+- (ATLogger *)loggerForName:(NSString *)name;
+
+@end
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 获取ATContext实例
+     */
+    ATContext * ATContextGet(void);
+    
+#ifdef __cplusplus
+}
+#endif

+ 62 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATCrash.h

@@ -0,0 +1,62 @@
+//
+//  ATException.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/3.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATEvent.h"
+
+/**
+ * Crash日志模型
+ */
+@interface ATCrash : ATEvent
+
+@property (nonatomic, strong) NSString *header;       /**< 字段1,日志头,默认e*/
+@property (nonatomic, strong) NSDate   *timestamp;    /**< 字段2,客户端日志时间*/
+@property (nonatomic, strong) NSString *platformId;   /**< 字段3,客户端ProductID. 如 IPHONE_1ND*/
+@property (nonatomic, strong) NSString *clientVersion;/**< 字段4,客户端版本*/
+@property (nonatomic, strong) NSString *logVersion;   /**< 字段5,客户端日志模型版本号*/
+@property (nonatomic, strong) NSString *clientId;     /**< 字段6,[imei]|[imsi] 客户端ID*/
+@property (nonatomic, strong) NSString *sessionId;    /**< 字段7,客户端会话ID*/
+@property (nonatomic, strong) NSString *userId;       /**< 字段8,用户ID*/
+@property (nonatomic, strong) NSString *actionId;     /**< 字段9,行为ID*/
+@property (nonatomic, strong) NSString *appState;     /**< 字段10,app前后台状态*/
+@property (nonatomic, strong) NSString *statusMsg;    /**< 字段11,statusMsg ?*/
+@property (nonatomic, strong) NSString *appId;        /**< 字段12,子应用ID*/
+@property (nonatomic, strong) NSString *subType;      /**< 字段13,subType ?*/
+@property (nonatomic, strong) NSString *exceptionType;/**< 字段14,异常类型*/
+@property (nonatomic, strong) NSString *appStack;     /**< 字段15,应用堆栈*/
+@property (nonatomic, strong) NSString *vcStack;      /**< 字段16,VC堆栈*/
+@property (nonatomic, strong) NSString *channelId;    /**< 字段17,渠道ID*/
+@property (nonatomic, strong) NSString *packageType;  /**< 字段18,包类型*/
+@property (nonatomic, strong) NSString *lastViewId;   /**< 字段19,上一个ViewId*/
+@property (nonatomic, strong) NSString *viewId;       /**< 字段20,当前ViewId*/
+@property (nonatomic, strong) NSString *pageSerialNo; /**< 字段21,页面流水号*/
+@property (nonatomic, strong) NSString *trackId;      /**< 字段22,当前ACTIONID*/
+@property (nonatomic, strong) NSString *trackToken;   /**< 字段23,当前ACTION_TOKEN*/
+@property (nonatomic, strong) NSString *deviceModel;  /**< 字段24,手机型号*/
+@property (nonatomic, strong) NSString *systemVersion;/**< 字段25,操作系统版本号*/
+@property (nonatomic, strong) NSString *networkType;  /**< 字段26,网络类型*/
+@property (nonatomic, strong) NSString *extension;    /**< 字段27,扩展信息*/
+@property (nonatomic, strong) NSString *innerVersion; /**< 字段28,内部版本号*/
+@property (nonatomic, strong) NSString *utdid;        /**< 字段29,utdid设备ID*/
+@property (nonatomic, strong) NSString *language;     /**< 字段30,App语言*/
+@property (nonatomic, strong) NSString *hpVersion;    /**< 字段31,hotpatch版本号*/
+@property (nonatomic, strong) NSString *ebcContextInfo;/**< 字段32,虚拟机调用栈*/
+@property (nonatomic, strong) NSString *threadName;   /**< 字段33,线程名 ?*/
+@property (nonatomic, strong) NSString *javaOrNative; /**< 字段34,javaOrNative ?*/
+@property (nonatomic, strong) NSString *apk;          /**< 字段35.Android独有,apk唯一ID*/
+@property (nonatomic, strong) NSString *bootReason;   /**< 字段36.bootReason ?*/
+@property (nonatomic, strong) NSString *foundationExtended; /**< 字段37.全局扩展字段*/
+@property (nonatomic, strong) NSString *logSequenceId;/**< 字段38,日志序列号*/
+@property (nonatomic, strong) NSString *logIDFA;      /**< 字段39,IDFA值*/
+
+@end
+
+@interface ATCrash (Compatibility)
+
++ (ATCrash *)crashWithStateDictionary:(NSDictionary *)dict;
+
+@end

+ 19 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATCrashLayout.h

@@ -0,0 +1,19 @@
+//
+//  ATCrashLayout.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/3.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLayout.h"
+
+extern NSString *const kDefaultCrashHeader;/**< 默认Crash日志Header: e*/
+extern NSString *const kCrashLogVersion;   /**< Crash日志版本*/
+
+/**
+ * Crash埋点Layout
+ */
+@interface ATCrashLayout : ATLayout
+
+@end

+ 36 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATCrashLogger.h

@@ -0,0 +1,36 @@
+//
+//  ATCrashLogger.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/3.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLogger.h"
+#import "ATCrash.h"
+
+/**
+ * Crash Logger
+ */
+@interface ATCrashLogger : ATLogger
+
+/**
+ * Crash埋点
+ * @param crash crash埋点参数对象 @see \c ATCrash
+ */
+- (void)logCrash:(ATCrash *)crash;
+
+@end
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 获取Crash Logger实例
+     */
+    ATCrashLogger * ATCrashLoggerGet();
+    
+#ifdef __cplusplus
+}
+#endif

+ 40 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATDataFlow.h

@@ -0,0 +1,40 @@
+//
+//  ATDataFlow.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/2.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATEvent.h"
+
+/**
+ * 流量监控日志模型
+ */
+@interface ATDataFlow : ATEvent
+
+@property (nonatomic, strong) NSString *header;       /**< 字段1,日志头,默认DF*/
+@property (nonatomic, strong) NSDate   *timestamp;    /**< 字段2,客户端日志时间*/
+@property (nonatomic, strong) NSString *platformId;   /**< 字段3,客户端日志时间*/
+@property (nonatomic, strong) NSString *clientVersion;/**< 字段4,客户端版本*/
+@property (nonatomic, strong) NSString *userId;       /**< 字段5,用户ID*/
+@property (nonatomic, strong) NSString *utdid;        /**< 字段6,utdid设备ID*/
+@property (nonatomic, strong) NSString *networkType;  /**< 字段7,网络类型*/
+@property (nonatomic, strong) NSString *dataFlowType; /**< 字段8,流量类型*/
+@property (nonatomic, strong) NSString *identifier;   /**< 字段9,标识符*/
+@property (nonatomic, strong) NSString *size;         /**< 字段10,大小*/
+@property (nonatomic, strong) NSString *owner;        /**< 字段11,owner*/
+@property (nonatomic, strong) NSDictionary *extInfo;  /**< 字段12,扩展参数*/
+@property (nonatomic, strong) NSString *systemVersion;/**< 字段13,操作系统版本号*/
+@property (nonatomic, strong) NSString *deviceModel;  /**< 字段14,手机型号*/
+@property (nonatomic, strong) NSString *unusedInfo0;  /**< 字段15,空*/
+@property (nonatomic, strong) NSString *unusedInfo1;  /**< 字段16,空*/
+@property (nonatomic, strong) NSString *unusedInfo2;  /**< 字段17,空*/
+@property (nonatomic, strong) NSString *unusedInfo3;  /**< 字段18,空*/
+@property (nonatomic, strong) NSString *unusedInfo4;  /**< 字段19,空*/
+@property (nonatomic, strong) NSString *logSequenceId;/**< 字段20,日志序列号*/
+@property (nonatomic, assign) AntLogLevel logLevel;     /**< 字段21,日志等级,可用于控制日志上报*/
+@property (nonatomic, assign) unsigned long long sampleRate;   /**< 字段22,当前抽样率0~1000,代表0.1%~100%*/
+@property (nonatomic, strong) NSString *logIDFA;      /**< 字段23,IDFA值*/
+
+@end

+ 18 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATDataFlowLayout.h

@@ -0,0 +1,18 @@
+//
+//  ATDataFlowLayout.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/2.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLayout.h"
+
+extern NSString *const kDefaultDataFlowHeader; /**< 默认流量监控埋点Header: DF*/
+
+/**
+ * 流量监控埋点Layout
+ */
+@interface ATDataFlowLayout : ATLayout
+
+@end

+ 36 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATDataFlowLogger.h

@@ -0,0 +1,36 @@
+//
+//  ATDataFlowLogger.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/2.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLogger.h"
+#import "ATDataFlow.h"
+
+/**
+ * 流量监控埋点Logger
+ */
+@interface ATDataFlowLogger : ATLogger
+
+/**
+ * 流量监控
+ * @param dataFlow 流量监控参数对象 @see \c ATDataFlow
+ */
+- (void)recordDataFlow:(ATDataFlow *)dataFlow;
+
+@end
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 获取流量监控Logger实例
+     */
+    ATDataFlowLogger * ATDataFlowLoggerGet();
+    
+#ifdef __cplusplus
+}
+#endif

+ 39 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATEvent.h

@@ -0,0 +1,39 @@
+//
+//  ATEvent.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/24.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "AntLogLevel.h"
+#import "ATConfigMgr.h"
+
+/**
+ * 埋点参数对象基类
+ */
+@interface ATEvent : NSObject
+
+@property (nonatomic, copy) NSString *log;      /**< 自定义日志内容*/
+@property (nonatomic, copy) NSString *bizType;    /**< 所属业务类型*/
+@property (nonatomic, assign) AntLogLevel logLevel; /**< 日志等级*/
+@property (nonatomic, copy) NSString *ABTestInfo;
+@property (nonatomic, copy) NSDictionary *extParam4;
+
+/**
+ * 最终渲染到日志中时取ATEvent的属性名称列表. 各日志模型自行覆盖实现.
+ * 如基类中返回 @[@"bizType",@"logLevel",@"log"]
+ */
++ (NSArray<NSString *> *)fieldNames;
+
+@end
+
+@interface ATEvent (/**internal*/)
+@property (nonatomic, strong) ATConfig *config; /**< 配置信息,私有*/
+@end
+
+@interface ATEvent (/**Deprecated*/)
+@property (nonatomic, assign) NSUInteger maxLogCount; /**< 上报条数阈值,兼容老keybiztrace埋点*/
+@end
+

+ 40 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATEventLogger.h

@@ -0,0 +1,40 @@
+//
+//  ATEventLogger.h
+//  APRemoteLogging
+//
+//  Created by LiMengtian on 2018/10/29.
+//  Copyright © 2018 Alipay. All rights reserved.
+//
+
+#import "ATLogger.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+    事件管理Logger
+ */
+@class AntEvent;
+
+@interface ATEventLogger : ATLogger
+
+/**
+    事件埋点
+ */
+- (void)log:(AntEvent *)event;
+
+@end
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 获取事件Logger实例
+     */
+    ATEventLogger * ATEventLoggerGet();
+    
+#ifdef __cplusplus
+}
+#endif
+
+NS_ASSUME_NONNULL_END

+ 23 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATHTTPUploader.h

@@ -0,0 +1,23 @@
+//
+//  ATUploader.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/23.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATUploader.h"
+
+@interface ATHTTPUploader : ATUploader
+
+- (BOOL)preprocessRequest:(ATUploadRequest *)req;
+
+- (NSURLRequest *)urlRequstForReq:(ATUploadRequest *)req;
+
+- (void)executeURLRequest:(NSURLRequest *)urlReq
+       completionHandler:(ATUploadCompletionBlock)block;
+
+@end
+
+

+ 63 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATLayout.h

@@ -0,0 +1,63 @@
+//
+//  ATLayout.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/23.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATEvent.h"
+#import "ATMessage.h"
+
+/**
+ * 渲染器基类
+ */
+@interface ATLayout : NSObject
+
+/**
+ * 开始渲染前. 基类实现为空, 子类可覆盖实现填充埋点参数对象中的默认字段.
+ * @param event 埋点参数对象
+ */
+- (void)beforeLayout:(ATEvent *)event NS_REQUIRES_SUPER;
+
+/**
+ * 执行渲染. 基类中取\c event 中各字段拼接成字符串
+ * @param event 埋点参数对象
+ * @return 内部消息对象.  @see \c MPaaSATMessage.
+ */
+- (MPaaSATMessage *)layout:(ATEvent *)event;
+
+/**
+ * 渲染后. 基类中对msg.content进行加密.
+ * @param msg 经过渲染的内部消息对象
+ */
+- (void)afterLayout:(MPaaSATMessage *)msg NS_REQUIRES_SUPER;
+
+/**
+ * 获取一个自增的序列号
+ */
+- (NSString *)sequenceIdString;
+
+/**
+ * 将NSDate类型的时间戳转换成NSString类型.
+ */
+- (NSString *)stringFromDate:(NSDate *)date;
+
+/**
+ * 将NSDictionary转换成key=value^key=value格式的字符串
+ */
+- (NSString *)stringFromDictionary:(NSDictionary *)dict;
+
+/**
+ * 填充ABTestInfo
+ */
+- (void)fillABTestInfo:(ATEvent *)et forSpm:(NSString *)spmId;
+
+/**
+ * 填充configABTestInfo 
+ */
+- (void)fillConfigABTestInfo:(ATEvent *)et;
+
+
+@end

+ 59 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATLinkLogger.h

@@ -0,0 +1,59 @@
+//
+//  ATLinkLogger.h
+//  APRemoteLogging
+//
+//  Created by feisong on 10/18/18.
+//  Copyright © 2018 Alipay. All rights reserved.
+//
+
+#import "ATLogger.h"
+#import <APProtocolBuffers/ProtocolBuffers.h>
+
+
+@interface ATLinkLogger : ATLogger
+
+/**
+ 启动全链路事务
+ 
+ @param tranId 唯一事务id标识
+ @param name 链路名称
+ @param rule 链路计算规则
+ @param fields 合并字段名称数组
+ @param linkExt 扩展参数 便于后续增加其他参数
+ */
++(void)startLinkTransaction:(NSString*)tranId linkName:(NSString*)name calculateRule:(NSString*)rule mergeFields:(NSArray<NSString*>*)fields linkExt:(NSDictionary<NSString*,NSString*>*)linkExt;
+
+/**
+ 记录事务
+ 
+ @param tranId 唯一事务id标识
+ @param seq 事务内唯一seq
+ @param persist 是否落盘持久化标识
+ @param node 链路节点数据
+ */
++(void)recordLinkTransaction:(NSString*)tranId seq:(UInt64)seq isPersist:(BOOL)persist linkNode:(APDPBGeneratedMessage*)node;
+
+/**
+ 结束事务
+ 
+ @param tranId 唯一事务id标识
+ */
++(void)endLinkTransaction:(NSString*)tranId;
+
+/**
+ 回滚事务
+ 
+ @param tranId 唯一事务id标识
+ */
++(void)rollbackLinkTransactioin:(NSString*)tranId;
+
+
+/**
+ 单独明细埋点(与事务无关)
+ 
+ @param node 链路节点数据
+ */
++(void)logLink:(APDPBGeneratedMessage*)linkNode;
+
+@end
+

+ 30 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATLogger.h

@@ -0,0 +1,30 @@
+//
+//  ATLogger.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/23.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATEvent.h"
+#import "ATLayout.h"
+
+/**
+ * Logger基类
+ */
+@interface ATLogger : NSObject
+
+/**
+ * 渲染器
+ */
+@property (nonatomic, strong) ATLayout *layout;
+
+/**
+ * 写入log
+ * @param event 埋点参数对象
+ */
+- (void)log:(ATEvent *)event;
+
+@end
+

+ 18 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMessage.h

@@ -0,0 +1,18 @@
+//
+//  MPaaSATMessage.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/26.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATEvent.h"
+
+/**
+ * 经过渲染的埋点内部消息对象
+ */
+@interface MPaaSATMessage : NSObject
+@property (nonatomic, strong) ATEvent *event;    /**< 埋点参数对象*/
+@property (nonatomic, strong) NSString *content; /**< 埋点内容字符串*/
+@end

+ 33 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMigrator.h

@@ -0,0 +1,33 @@
+//
+//  ATMigrator.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/6/14.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "ATContext.h"
+#import "ATConfigMgr.h"
+#import "ATBehaviorLogger.h"
+
+@interface ATMigrator : NSObject
+#ifdef SDK_IS4_ALIPAY
+<AntLogInterface>
+#endif
+
++ (ATMigrator *)sharedInstance;
+
+#ifdef SDK_IS4_ALIPAY
+
+@property (nonatomic, strong) id<AntLogInterceptor> interceptor;
+@property (nonatomic, strong) id<AutoTrackerObserver> observer;
+@property (nonatomic, strong) id<ABTestInfoProvider> provider;
+#endif
+
+- (void)setupPeriodExecutionTimer;
+
+- (void)addPeriodicallyExecutedBlock:(void (^)(void))block;
+
+@end
+

+ 46 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMonitor.h

@@ -0,0 +1,46 @@
+//
+//  ATMonitor.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/4.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATEvent.h"
+
+/**
+ * 性能管理日志模型
+ */
+@interface ATMonitor : ATEvent
+
+@property (nonatomic, strong) NSString *header;       /**< 字段1,日志头,默认D-VM*/
+@property (nonatomic, strong) NSDate   *timestamp;    /**< 字段2,客户端日志时间*/
+@property (nonatomic, strong) NSString *platformId;   /**< 字段3,客户端ProductID. 如 IPHONE_1ND*/
+@property (nonatomic, strong) NSString *clientVersion;/**< 字段4,客户端版本*/
+@property (nonatomic, strong) NSString *logVersion;   /**< 字段5,客户端日志模型版本号*/
+@property (nonatomic, strong) NSString *clientId;     /**< 字段6,[imei]|[imsi] 客户端ID*/
+@property (nonatomic, strong) NSString *userId;       /**< 字段7,用户ID*/
+@property (nonatomic, strong) NSString *networkType;  /**< 字段8,网络类型*/
+@property (nonatomic, strong) NSString *deviceModel;  /**< 字段9,手机型号*/
+@property (nonatomic, strong) NSString *systemVersion;/**< 字段10,操作系统版本号*/
+@property (nonatomic, strong) NSString *innerVersion; /**< 字段11,内部版本号*/
+@property (nonatomic, strong) NSString *channelId;    /**< 字段12,渠道ID*/
+@property (nonatomic, strong) NSString *packageType;  /**< 字段13,包类型*/
+@property (nonatomic, strong) NSString *appId;        /**< 字段14,子应用ID*/
+@property (nonatomic, strong) NSString *monitorType;  /**< 字段15,subType*/
+@property (nonatomic, strong) NSString *subType;      /**< 字段16,subType*/
+@property (nonatomic, strong) NSDictionary *attachment; /**< 字段17,attachment*/
+@property (nonatomic, strong) NSString *language;     /**< 字段18,App语言*/
+@property (nonatomic, strong) NSString *hpVersion;    /**< 字段19,hotpatch版本号*/
+@property (nonatomic, strong) NSString *cpuCoreNum;   /**< 字段20,Android独有,cpu核数*/
+@property (nonatomic, strong) NSString *cpuMaxFreq;   /**< 字段21.Android独有,CPU MaxFreq,单位MHz*/
+@property (nonatomic, strong) NSString *totalMem;     /**< 字段22.Android独有,TotalMem,单位MB*/
+@property (nonatomic, strong) NSString *extParam1;    /**< 字段23.扩展字段1,服务端填充IP*/
+@property (nonatomic, strong) NSString *apk;          /**< 字段24.Android独有,apk唯一ID*/
+@property (nonatomic, strong) NSString *processName;  /**< 字段25,Android独有,进程名*/
+@property (nonatomic, strong) NSString *utdid;        /**< 字段26,utdid设备ID*/
+@property (nonatomic, strong) NSString *foundationExtended; /**< 字段27.全局扩展字段*/
+@property (nonatomic, strong) NSString *logSequenceId;/**< 字段28,日志序列号*/
+@property (nonatomic, strong) NSString *logIDFA;      /**< 字段29,IDFA值*/
+
+@end

+ 19 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMonitorLayout.h

@@ -0,0 +1,19 @@
+//
+//  ATMonitorLayout.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/4.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLayout.h"
+
+extern NSString *const kDefaultMonitorHeader; /**< 默认性能管理埋点Header: D-EM*/
+extern NSString *const kMonitorLogVersion;    /**< 性能管理埋点版本*/
+
+/**
+ * 性能管理Layout
+ */
+@interface ATMonitorLayout : ATLayout
+
+@end

+ 36 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATMonitorLogger.h

@@ -0,0 +1,36 @@
+//
+//  ATMonitorLogger.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/7/4.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLogger.h"
+#import "ATMonitor.h"
+
+/**
+ * 性能管理Logger
+ */
+@interface ATMonitorLogger : ATLogger
+
+/**
+ * 性能管理埋点
+ * @param monitor 性能管理参数对象 @see \c ATMonitor
+ */
+- (void)monitor:(ATMonitor *)monitor;
+
+@end
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+    /**
+     * 获取性能管理Logger实例
+     */
+    ATMonitorLogger * ATMonitorLoggerGet();
+    
+#ifdef __cplusplus
+}
+#endif

+ 56 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATNetEnvUtil.h

@@ -0,0 +1,56 @@
+//
+//  ATNetEnvUtil.h
+//  AntLog
+//
+//  Created by 卡迩 on 2017/2/20.
+//  Copyright © 2017年 Alipay. All rights reserved.
+//
+#import <Foundation/Foundation.h>
+/**
+ 详细的网络类型.
+ */
+typedef NS_ENUM(NSInteger, ATNetEnv) {
+    ATNetEnvUnknown         = -1, //未知网络环境
+    ATNetEnvNotReachable    = 0,  //无连接
+    ATNetEnvGPRS,
+    ATNetEnvEdge,
+    ATNetEnvWCDMA,
+    ATNetEnvHSDPA,
+    ATNetEnvHSUPA,
+    ATNetEnvCDMA1x,
+    ATNetEnvCDMAEVDOREV0,
+    ATNetEnvCDMAEVDOREVA,
+    ATNetEnvCDMAEVDOREVB,
+    ATNetEnvHRPD,
+    ATNetEnvLTE,
+    ATNetEnvWWAN,
+    ATNetEnvWiFi
+};
+
+/**
+ 粗粒度的网络类型.
+ */
+typedef NS_ENUM(NSInteger, ATNetEnvRaw) {
+    ATNetEnvRawUnknown = -1,
+    ATNetEnvRawNotReachable,
+    ATNetEnvRaw2G,
+    ATNetEnvRaw3G,
+    ATNetEnvRaw4G,
+    ATNetEnvRawWIFI
+};
+
+@interface ATNetEnvUtil : NSObject
+
++ (void)setup;
+
++ (ATNetEnv)currentNetEnv;
+
++ (NSString *)currentNetEnvString;
+
++ (ATNetEnvRaw)currentNetEnvRaw;
+
++ (NSString *)currentNetEnvRawString;
+
++ (NSString *)currentCarrierName;
+
+@end

+ 137 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATParameters.h

@@ -0,0 +1,137 @@
+//
+//  ATParameters.h
+//  ATrack
+//
+//  Created by 卡迩 on 2018/4/23.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+extern NSString *const ATUserIdDidChangeNotification;                  /**< 用户切换通知名*/
+extern NSString *const ATUserIdDidChangeNotificationInfoOldUserIdKey;  /**< 用户切换通知userInfo中老的userId key值*/
+extern NSString *const ATUserIdDidChangeNotificationInfoNewUserIdKey;  /**< 用户切换通知userInfo中新的userId key值*/
+
+/**
+ * 全局参数
+ */
+@interface ATParameters : NSObject
+
+/**
+ * 设置全局参数,仅内存缓存. 有全局参数透传需要时可使用.
+ * @param obj 参数值
+ * @param key 参数key
+ */
+- (void)setParameter:(id)obj forKey:(NSString *)key;
+
+/**
+ * 获取key对应的全局参数值
+ * @param key 参数key值
+ */
+- (id)parameterForKey:(NSString *)key;
+
+@end
+
+@interface ATParameters (/**DeviceInfo*/)
+
+@property (nonatomic, strong) NSString *utdid;          /**< 设备ID*/
+
+@property (nonatomic, strong) NSString *deviceModel;    /**< 设备类型*/
+
+@property (nonatomic, strong) NSString *systemName;     /**< 系统类型*/
+
+@property (nonatomic, strong) NSString *systemVersion;  /**< 系统版本*/
+
+@property (nonatomic, strong) NSString *networkType;    /**< 网络类型*/
+
+@property (nonatomic, strong) NSString *language;       /**< App语言*/
+
+@property (nonatomic, strong) NSString *hpVersion;      /**< 已安装的Hotpatch版本*/
+
+@property (nonatomic, strong) NSString *resolution;     /**< 设备屏幕分辨率*/
+
+@property (nonatomic, strong) NSString* appSession;       /**< App前后台状态*/
+
+@end
+
+@interface ATParameters (/**GlobalState*/)
+
+@property (atomic, copy) NSString *appState;       /**< App前后台状态*/
+
+@property (atomic, copy) NSString *sessionId;      /**< 会话ID*/
+
+@property (atomic, copy) NSString *pageSerialNo;   /**< 页面序列号*/
+
+@property (atomic, copy) NSString *lastViewId;     /**< 上一个页面ID*/
+
+@property (atomic, copy) NSString *currentViewId;  /**< 当前页面ID*/
+
+@property (atomic, copy) NSString *lastPageTitle;  /**< 上一个页面title*/
+
+@property (atomic, copy) NSString *currentPageTitle;/**< 当前页面title*/
+
+@property (atomic, copy) NSString *currentTrackId; /**< 最近一次点击事件ID*/
+
+@property (atomic, copy) NSString *currentTrackToken;/**< 最近一次点击事件token*/
+
+@property (nonatomic, assign) unsigned long long tokenTimestamp;/**< 最近一次点击事件时间戳*/
+
+@property (atomic, copy) NSString *lastAppId;       /**< 上一个microApp ID*/
+
+@property (atomic, copy) NSString *currentAppId;    /**< 当前microApp ID*/
+
+@property (nonatomic, strong) NSString *currentAutoRefer;/**< 当前自动化埋点维护的refer*/
+
+@property (nonatomic, strong) NSString *foundationExtended;/**< 基础扩展*/
+
+@property (nonatomic, strong) NSString *sourceId;       /**< 营销来源ID*/
+
+@end
+
+@interface ATParameters (/**Customizable*/)
+
+@property (nonatomic, strong) NSString *platformId;     /**< ProductID,默认取InfoPlist中的"Product ID",需向埋点平台申请*/
+
+@property (nonatomic, strong) NSString *clientVersion;  /**< App版本号,默认取InfoPlist中的@"Product Version"*/
+
+@property (nonatomic, strong) NSString *clientId;       /**< 默认实现为从APMobileIdentifier获取,如果没有APMobileIdentifier,会返回@""*/
+
+@property (nonatomic, strong) NSString *userId;         /**< 用户ID,修改该值会触发ATUserIdDidChangeNotification通知*/
+
+@property (nonatomic, strong) NSString *idfa;           /**< IDFA值,默认返回nil*/
+
+@property (nonatomic, strong) NSString *uploadUrl;      /**< 埋点上报地址,默认@"https://mdap.alipay.com/loggw/logUpload.do"*/
+
+@property (nonatomic, strong) NSString *configUrl;      /**< 埋点配置拉取地址,默认@"https://mdap.alipay.com/loggw/logConfig.do"*/
+
+@property (nonatomic, assign) NSUInteger maxLengthOfLine;/**< 单行日志最大长度,默认16K*/
+
+@property (nonatomic, assign) NSUInteger maxSizeOfLog;  /**< 本地log文件占用最大大小,超过大小后清理所有文件的1/4,默认30MB*/
+
+@property (nonatomic, assign) NSUInteger maxLengthOfCustom; /**< 单行自定义日志最大长度,默认256K*/
+
+#ifdef SDK_IS4_ALIPAY
+@property (nonatomic, strong) NSDictionary *configABTestInfo; /**<APConfig ABTestInfo 默认返回nil */
+@property (nonatomic, strong) NSDictionary *currentApplicationParams;
+#endif
+
+@end
+
+@interface ATParameters()
+@property (nonatomic, assign) CFAbsoluteTime lastUUIDUpdateTime;/**< 最近一个更新sessionId的时间戳*/
+
+@end
+
+@interface ATParameters (/**Update*/)
+
+/**
+ * 通知\c ATParameters 页面即将打开
+ * @param viewId 页面ID
+ * @param appId microAppID
+ * @param title 页面title
+ */
+- (void)viewWillAppear:(NSString *)viewId
+                 appId:(NSString *)appId
+                 title:(NSString *)title;
+
+@end

+ 18 - 0
nativeplugins/Mpaas-Scan/ios/APRemoteLogging.framework/Headers/ATPerformanceLayout.h

@@ -0,0 +1,18 @@
+//
+//  ATPerformanceLayout.h
+//  APRemoteLogging
+//
+//  Created by 卡迩 on 2018/6/26.
+//  Copyright © 2018年 Alipay. All rights reserved.
+//
+
+#import "ATLayout.h"
+extern NSString *const kDefaultPerfHeader;/**< 默认性能埋点Header: D-MM*/
+extern NSString *const kPerfLogVersion;   /**< 性能埋点版本*/
+
+/**
+ * 性能埋点Layout
+ */
+@interface ATPerformanceLayout : ATLayout
+
+@end

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików