├── confuse.sh ├── func.list ├── symbols ├── tongji.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── zhangpeng.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ └── xcschememanagement.plist ├── tongji ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── PickerView.h ├── PickerView.m ├── PickerView.xib ├── PrefixHeader.pch ├── ViewController.h ├── ViewController.m ├── codeObfuscation.h ├── iOS │ ├── analytics │ │ └── analytics_ios_5.5.0 │ │ │ └── UMAnalytics.framework │ │ │ ├── 5.5.0_443a85fb47_20180329145809 │ │ │ ├── Headers │ │ │ ├── UMAnalytics │ │ │ └── Versions │ │ │ ├── A │ │ │ ├── Headers │ │ │ │ ├── DplusMobClick.h │ │ │ │ ├── MobClick.h │ │ │ │ └── MobClickGameAnalytics.h │ │ │ └── UMAnalytics │ │ │ └── Current │ ├── common │ │ └── common_ios_1.5.0 │ │ │ └── normal │ │ │ └── UMCommon.framework │ │ │ ├── 1.5.0_a340324cb9_20180329145728 │ │ │ ├── Headers │ │ │ ├── UMCommon │ │ │ └── Versions │ │ │ ├── A │ │ │ ├── Headers │ │ │ │ ├── UMCommon.h │ │ │ │ └── UMConfigure.h │ │ │ └── UMCommon │ │ │ └── Current │ ├── thirdparties │ │ └── thirdparties_ios_1.0.5 │ │ │ ├── SecurityEnvSDK.framework │ │ │ ├── 1.0.5_7e4af54c27fe03856bc628f6c86e7c3020180108 │ │ │ ├── Headers │ │ │ │ ├── EnvExport.h │ │ │ │ ├── ISecurityEnvInitListener.h │ │ │ │ └── SecurityEnvSDK.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ └── SecurityEnvSDK │ │ │ └── UTDID.framework │ │ │ ├── 1.1.0_284361e9aad9bf95a33916c655ecefb720180108 │ │ │ ├── Headers │ │ │ ├── Resources │ │ │ ├── UTDID │ │ │ └── Versions │ │ │ ├── A │ │ │ ├── Headers │ │ │ │ ├── AidProtocol.h │ │ │ │ └── UTDevice.h │ │ │ ├── Resources │ │ │ │ └── Info.plist │ │ │ └── UTDID │ │ │ └── Current │ └── umcommonlog │ │ └── umcommonlog_ios_1.0.0 │ │ ├── UMCommonLog.bundle │ │ ├── en.lproj │ │ │ ├── UMAnalyticsLog.strings │ │ │ ├── UMCommonLog.strings │ │ │ ├── UMPushLog.strings │ │ │ └── UMSocialPromptLocalizable.strings │ │ └── zh-Hans.lproj │ │ │ ├── UMAnalyticsLog.strings │ │ │ ├── UMCommonLog.strings │ │ │ ├── UMPushLog.strings │ │ │ └── UMSocialPromptLocalizable.strings │ │ └── UMCommonLog.framework │ │ ├── 1.0.0_6583d2489a_20180404113346 │ │ ├── Headers │ │ ├── UMCommonLogHeaders.h │ │ └── UMCommonLogManager.h │ │ ├── Info.plist │ │ ├── Modules │ │ └── module.modulemap │ │ └── UMCommonLog └── main.m ├── tongjiTests ├── Info.plist └── tongjiTests.m └── tongjiUITests ├── Info.plist └── tongjiUITests.m /confuse.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | TABLENAME=symbols 4 | SYMBOL_DB_FILE="symbols" 5 | STRING_SYMBOL_FILE="func.list" 6 | HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.h" 7 | export LC_CTYPE=C 8 | 9 | #维护数据库方便日后作排重 10 | createTable() 11 | { 12 | echo "create table $TABLENAME(src text, des text);" | sqlite3 $SYMBOL_DB_FILE 13 | } 14 | 15 | insertValue() 16 | { 17 | echo "insert into $TABLENAME values('$1' ,'$2');" | sqlite3 $SYMBOL_DB_FILE 18 | } 19 | 20 | query() 21 | { 22 | echo "select * from $TABLENAME where src='$1';" | sqlite3 $SYMBOL_DB_FILE 23 | } 24 | 25 | ramdomString() 26 | { 27 | openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 16 28 | } 29 | 30 | rm -f $SYMBOL_DB_FILE 31 | rm -f $HEAD_FILE 32 | createTable 33 | 34 | touch $HEAD_FILE 35 | echo '#ifndef Demo_codeObfuscation_h 36 | #define Demo_codeObfuscation_h' >> $HEAD_FILE 37 | echo "//confuse string at `date`" >> $HEAD_FILE 38 | cat "$STRING_SYMBOL_FILE" | while read -ra line; do 39 | if [[ ! -z "$line" ]]; then 40 | ramdom=`ramdomString` 41 | echo $line $ramdom 42 | insertValue $line $ramdom 43 | echo "#define $line $ramdom" >> $HEAD_FILE 44 | fi 45 | done 46 | echo "#endif" >> $HEAD_FILE 47 | 48 | 49 | sqlite3 $SYMBOL_DB_FILE .dump 50 | 51 | 52 | -------------------------------------------------------------------------------- /func.list: -------------------------------------------------------------------------------- 1 | SureBlock 2 | picker 3 | selectedIndex 4 | selectedValue 5 | CancelBlock 6 | titleLabel 7 | doneButton 8 | cancelButton 9 | dataPickerView 10 | backView 11 | recognizer 12 | dataArray 13 | sureBlock 14 | cancelBlock 15 | showDataArray 16 | array 17 | title 18 | titleStr 19 | completedHandle 20 | complete 21 | cancelButtonAction 22 | sender 23 | doneButtonAction 24 | configuraView 25 | disMissPickView 26 | 27 | pickerView 28 | rowHeightForComponent 29 | component 30 | numberOfComponentsInPickerView 31 | numberOfRowsInComponent 32 | titleForRow 33 | forComponent 34 | row 35 | viewForRow 36 | reusingView 37 | view 38 | -------------------------------------------------------------------------------- /symbols: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/symbols -------------------------------------------------------------------------------- /tongji.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6E5A98EA20A00BCB00405EAD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A98E920A00BCB00405EAD /* AppDelegate.m */; }; 11 | 6E5A98ED20A00BCB00405EAD /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A98EC20A00BCB00405EAD /* ViewController.m */; }; 12 | 6E5A98F020A00BCB00405EAD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E5A98EE20A00BCB00405EAD /* Main.storyboard */; }; 13 | 6E5A98F220A00BCC00405EAD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E5A98F120A00BCC00405EAD /* Assets.xcassets */; }; 14 | 6E5A98F520A00BCD00405EAD /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E5A98F320A00BCC00405EAD /* LaunchScreen.storyboard */; }; 15 | 6E5A98F820A00BCD00405EAD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A98F720A00BCD00405EAD /* main.m */; }; 16 | 6E5A990220A00BCD00405EAD /* tongjiTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A990120A00BCD00405EAD /* tongjiTests.m */; }; 17 | 6E5A990D20A00BCD00405EAD /* tongjiUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E5A990C20A00BCD00405EAD /* tongjiUITests.m */; }; 18 | 6E5A991E20A00C7B00405EAD /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A991D20A00C7B00405EAD /* CoreTelephony.framework */; }; 19 | 6E5A992020A00C8900405EAD /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A991F20A00C8900405EAD /* SystemConfiguration.framework */; }; 20 | 6E5A992220A00C9D00405EAD /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A992120A00C9D00405EAD /* libsqlite3.tbd */; }; 21 | 6E5A992420A00CAE00405EAD /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A992320A00CAE00405EAD /* libz.tbd */; }; 22 | 6E5A999420A0244900405EAD /* UMCommonLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A998720A0244800405EAD /* UMCommonLog.framework */; }; 23 | 6E5A999520A0244900405EAD /* UMCommonLog.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 6E5A998820A0244800405EAD /* UMCommonLog.bundle */; }; 24 | 6E5A999620A0244900405EAD /* UTDID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A998B20A0244900405EAD /* UTDID.framework */; }; 25 | 6E5A999720A0244900405EAD /* SecurityEnvSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A998C20A0244900405EAD /* SecurityEnvSDK.framework */; }; 26 | 6E5A999820A0244900405EAD /* UMCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A999020A0244900405EAD /* UMCommon.framework */; }; 27 | 6E5A999920A0244900405EAD /* UMAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E5A999320A0244900405EAD /* UMAnalytics.framework */; }; 28 | 6EC75E1120B6876D007513FC /* func.list in Resources */ = {isa = PBXBuildFile; fileRef = 6EC75E0F20B6876D007513FC /* func.list */; }; 29 | 6EC75E1220B6876D007513FC /* confuse.sh in Resources */ = {isa = PBXBuildFile; fileRef = 6EC75E1020B6876D007513FC /* confuse.sh */; }; 30 | 6EEEA9B420B0012B00EBA09D /* PickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EEEA9B320B0012B00EBA09D /* PickerView.m */; }; 31 | 6EEEA9B620B0013900EBA09D /* PickerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6EEEA9B520B0013900EBA09D /* PickerView.xib */; }; 32 | /* End PBXBuildFile section */ 33 | 34 | /* Begin PBXContainerItemProxy section */ 35 | 6E5A98FE20A00BCD00405EAD /* PBXContainerItemProxy */ = { 36 | isa = PBXContainerItemProxy; 37 | containerPortal = 6E5A98DD20A00BCB00405EAD /* Project object */; 38 | proxyType = 1; 39 | remoteGlobalIDString = 6E5A98E420A00BCB00405EAD; 40 | remoteInfo = tongji; 41 | }; 42 | 6E5A990920A00BCD00405EAD /* PBXContainerItemProxy */ = { 43 | isa = PBXContainerItemProxy; 44 | containerPortal = 6E5A98DD20A00BCB00405EAD /* Project object */; 45 | proxyType = 1; 46 | remoteGlobalIDString = 6E5A98E420A00BCB00405EAD; 47 | remoteInfo = tongji; 48 | }; 49 | /* End PBXContainerItemProxy section */ 50 | 51 | /* Begin PBXFileReference section */ 52 | 6E5A98E520A00BCB00405EAD /* tongji.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tongji.app; sourceTree = BUILT_PRODUCTS_DIR; }; 53 | 6E5A98E820A00BCB00405EAD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 54 | 6E5A98E920A00BCB00405EAD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 55 | 6E5A98EB20A00BCB00405EAD /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 56 | 6E5A98EC20A00BCB00405EAD /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 57 | 6E5A98EF20A00BCB00405EAD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 58 | 6E5A98F120A00BCC00405EAD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 59 | 6E5A98F420A00BCD00405EAD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 60 | 6E5A98F620A00BCD00405EAD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 61 | 6E5A98F720A00BCD00405EAD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 62 | 6E5A98FD20A00BCD00405EAD /* tongjiTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = tongjiTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 63 | 6E5A990120A00BCD00405EAD /* tongjiTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = tongjiTests.m; sourceTree = ""; }; 64 | 6E5A990320A00BCD00405EAD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 65 | 6E5A990820A00BCD00405EAD /* tongjiUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = tongjiUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 66 | 6E5A990C20A00BCD00405EAD /* tongjiUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = tongjiUITests.m; sourceTree = ""; }; 67 | 6E5A990E20A00BCD00405EAD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 68 | 6E5A991D20A00C7B00405EAD /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 69 | 6E5A991F20A00C8900405EAD /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; 70 | 6E5A992120A00C9D00405EAD /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; 71 | 6E5A992320A00CAE00405EAD /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 72 | 6E5A998720A0244800405EAD /* UMCommonLog.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMCommonLog.framework; sourceTree = ""; }; 73 | 6E5A998820A0244800405EAD /* UMCommonLog.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = UMCommonLog.bundle; sourceTree = ""; }; 74 | 6E5A998B20A0244900405EAD /* UTDID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UTDID.framework; sourceTree = ""; }; 75 | 6E5A998C20A0244900405EAD /* SecurityEnvSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SecurityEnvSDK.framework; sourceTree = ""; }; 76 | 6E5A999020A0244900405EAD /* UMCommon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMCommon.framework; sourceTree = ""; }; 77 | 6E5A999320A0244900405EAD /* UMAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMAnalytics.framework; sourceTree = ""; }; 78 | 6EC75E0F20B6876D007513FC /* func.list */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = func.list; sourceTree = ""; }; 79 | 6EC75E1020B6876D007513FC /* confuse.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = confuse.sh; sourceTree = ""; }; 80 | 6EC75E1320B687C5007513FC /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; }; 81 | 6EEEA9B220B0012B00EBA09D /* PickerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PickerView.h; sourceTree = ""; }; 82 | 6EEEA9B320B0012B00EBA09D /* PickerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PickerView.m; sourceTree = ""; }; 83 | 6EEEA9B520B0013900EBA09D /* PickerView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PickerView.xib; sourceTree = ""; }; 84 | /* End PBXFileReference section */ 85 | 86 | /* Begin PBXFrameworksBuildPhase section */ 87 | 6E5A98E220A00BCB00405EAD /* Frameworks */ = { 88 | isa = PBXFrameworksBuildPhase; 89 | buildActionMask = 2147483647; 90 | files = ( 91 | 6E5A992420A00CAE00405EAD /* libz.tbd in Frameworks */, 92 | 6E5A999820A0244900405EAD /* UMCommon.framework in Frameworks */, 93 | 6E5A992220A00C9D00405EAD /* libsqlite3.tbd in Frameworks */, 94 | 6E5A999720A0244900405EAD /* SecurityEnvSDK.framework in Frameworks */, 95 | 6E5A992020A00C8900405EAD /* SystemConfiguration.framework in Frameworks */, 96 | 6E5A991E20A00C7B00405EAD /* CoreTelephony.framework in Frameworks */, 97 | 6E5A999420A0244900405EAD /* UMCommonLog.framework in Frameworks */, 98 | 6E5A999620A0244900405EAD /* UTDID.framework in Frameworks */, 99 | 6E5A999920A0244900405EAD /* UMAnalytics.framework in Frameworks */, 100 | ); 101 | runOnlyForDeploymentPostprocessing = 0; 102 | }; 103 | 6E5A98FA20A00BCD00405EAD /* Frameworks */ = { 104 | isa = PBXFrameworksBuildPhase; 105 | buildActionMask = 2147483647; 106 | files = ( 107 | ); 108 | runOnlyForDeploymentPostprocessing = 0; 109 | }; 110 | 6E5A990520A00BCD00405EAD /* Frameworks */ = { 111 | isa = PBXFrameworksBuildPhase; 112 | buildActionMask = 2147483647; 113 | files = ( 114 | ); 115 | runOnlyForDeploymentPostprocessing = 0; 116 | }; 117 | /* End PBXFrameworksBuildPhase section */ 118 | 119 | /* Begin PBXGroup section */ 120 | 6E5A98DC20A00BCB00405EAD = { 121 | isa = PBXGroup; 122 | children = ( 123 | 6EC75E1020B6876D007513FC /* confuse.sh */, 124 | 6EC75E0F20B6876D007513FC /* func.list */, 125 | 6E5A98E720A00BCB00405EAD /* tongji */, 126 | 6E5A990020A00BCD00405EAD /* tongjiTests */, 127 | 6E5A990B20A00BCD00405EAD /* tongjiUITests */, 128 | 6E5A98E620A00BCB00405EAD /* Products */, 129 | 6E5A991C20A00C7B00405EAD /* Frameworks */, 130 | ); 131 | sourceTree = ""; 132 | }; 133 | 6E5A98E620A00BCB00405EAD /* Products */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 6E5A98E520A00BCB00405EAD /* tongji.app */, 137 | 6E5A98FD20A00BCD00405EAD /* tongjiTests.xctest */, 138 | 6E5A990820A00BCD00405EAD /* tongjiUITests.xctest */, 139 | ); 140 | name = Products; 141 | sourceTree = ""; 142 | }; 143 | 6E5A98E720A00BCB00405EAD /* tongji */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 6E5A998420A0244800405EAD /* iOS */, 147 | 6E5A98E820A00BCB00405EAD /* AppDelegate.h */, 148 | 6E5A98E920A00BCB00405EAD /* AppDelegate.m */, 149 | 6E5A98EB20A00BCB00405EAD /* ViewController.h */, 150 | 6E5A98EC20A00BCB00405EAD /* ViewController.m */, 151 | 6EEEA9B220B0012B00EBA09D /* PickerView.h */, 152 | 6EEEA9B320B0012B00EBA09D /* PickerView.m */, 153 | 6EEEA9B520B0013900EBA09D /* PickerView.xib */, 154 | 6E5A98EE20A00BCB00405EAD /* Main.storyboard */, 155 | 6E5A98F120A00BCC00405EAD /* Assets.xcassets */, 156 | 6E5A98F320A00BCC00405EAD /* LaunchScreen.storyboard */, 157 | 6E5A98F620A00BCD00405EAD /* Info.plist */, 158 | 6E5A98F720A00BCD00405EAD /* main.m */, 159 | 6EC75E1320B687C5007513FC /* PrefixHeader.pch */, 160 | ); 161 | path = tongji; 162 | sourceTree = ""; 163 | }; 164 | 6E5A990020A00BCD00405EAD /* tongjiTests */ = { 165 | isa = PBXGroup; 166 | children = ( 167 | 6E5A990120A00BCD00405EAD /* tongjiTests.m */, 168 | 6E5A990320A00BCD00405EAD /* Info.plist */, 169 | ); 170 | path = tongjiTests; 171 | sourceTree = ""; 172 | }; 173 | 6E5A990B20A00BCD00405EAD /* tongjiUITests */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 6E5A990C20A00BCD00405EAD /* tongjiUITests.m */, 177 | 6E5A990E20A00BCD00405EAD /* Info.plist */, 178 | ); 179 | path = tongjiUITests; 180 | sourceTree = ""; 181 | }; 182 | 6E5A991C20A00C7B00405EAD /* Frameworks */ = { 183 | isa = PBXGroup; 184 | children = ( 185 | 6E5A992320A00CAE00405EAD /* libz.tbd */, 186 | 6E5A992120A00C9D00405EAD /* libsqlite3.tbd */, 187 | 6E5A991F20A00C8900405EAD /* SystemConfiguration.framework */, 188 | 6E5A991D20A00C7B00405EAD /* CoreTelephony.framework */, 189 | ); 190 | name = Frameworks; 191 | sourceTree = ""; 192 | }; 193 | 6E5A998420A0244800405EAD /* iOS */ = { 194 | isa = PBXGroup; 195 | children = ( 196 | 6E5A998520A0244800405EAD /* umcommonlog */, 197 | 6E5A998920A0244900405EAD /* thirdparties */, 198 | 6E5A998D20A0244900405EAD /* common */, 199 | 6E5A999120A0244900405EAD /* analytics */, 200 | ); 201 | path = iOS; 202 | sourceTree = ""; 203 | }; 204 | 6E5A998520A0244800405EAD /* umcommonlog */ = { 205 | isa = PBXGroup; 206 | children = ( 207 | 6E5A998620A0244800405EAD /* umcommonlog_ios_1.0.0 */, 208 | ); 209 | path = umcommonlog; 210 | sourceTree = ""; 211 | }; 212 | 6E5A998620A0244800405EAD /* umcommonlog_ios_1.0.0 */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | 6E5A998720A0244800405EAD /* UMCommonLog.framework */, 216 | 6E5A998820A0244800405EAD /* UMCommonLog.bundle */, 217 | ); 218 | path = umcommonlog_ios_1.0.0; 219 | sourceTree = ""; 220 | }; 221 | 6E5A998920A0244900405EAD /* thirdparties */ = { 222 | isa = PBXGroup; 223 | children = ( 224 | 6E5A998A20A0244900405EAD /* thirdparties_ios_1.0.5 */, 225 | ); 226 | path = thirdparties; 227 | sourceTree = ""; 228 | }; 229 | 6E5A998A20A0244900405EAD /* thirdparties_ios_1.0.5 */ = { 230 | isa = PBXGroup; 231 | children = ( 232 | 6E5A998B20A0244900405EAD /* UTDID.framework */, 233 | 6E5A998C20A0244900405EAD /* SecurityEnvSDK.framework */, 234 | ); 235 | path = thirdparties_ios_1.0.5; 236 | sourceTree = ""; 237 | }; 238 | 6E5A998D20A0244900405EAD /* common */ = { 239 | isa = PBXGroup; 240 | children = ( 241 | 6E5A998E20A0244900405EAD /* common_ios_1.5.0 */, 242 | ); 243 | path = common; 244 | sourceTree = ""; 245 | }; 246 | 6E5A998E20A0244900405EAD /* common_ios_1.5.0 */ = { 247 | isa = PBXGroup; 248 | children = ( 249 | 6E5A998F20A0244900405EAD /* normal */, 250 | ); 251 | path = common_ios_1.5.0; 252 | sourceTree = ""; 253 | }; 254 | 6E5A998F20A0244900405EAD /* normal */ = { 255 | isa = PBXGroup; 256 | children = ( 257 | 6E5A999020A0244900405EAD /* UMCommon.framework */, 258 | ); 259 | path = normal; 260 | sourceTree = ""; 261 | }; 262 | 6E5A999120A0244900405EAD /* analytics */ = { 263 | isa = PBXGroup; 264 | children = ( 265 | 6E5A999220A0244900405EAD /* analytics_ios_5.5.0 */, 266 | ); 267 | path = analytics; 268 | sourceTree = ""; 269 | }; 270 | 6E5A999220A0244900405EAD /* analytics_ios_5.5.0 */ = { 271 | isa = PBXGroup; 272 | children = ( 273 | 6E5A999320A0244900405EAD /* UMAnalytics.framework */, 274 | ); 275 | path = analytics_ios_5.5.0; 276 | sourceTree = ""; 277 | }; 278 | /* End PBXGroup section */ 279 | 280 | /* Begin PBXNativeTarget section */ 281 | 6E5A98E420A00BCB00405EAD /* tongji */ = { 282 | isa = PBXNativeTarget; 283 | buildConfigurationList = 6E5A991120A00BCD00405EAD /* Build configuration list for PBXNativeTarget "tongji" */; 284 | buildPhases = ( 285 | 6E5A98E120A00BCB00405EAD /* Sources */, 286 | 6E5A98E220A00BCB00405EAD /* Frameworks */, 287 | 6E5A98E320A00BCB00405EAD /* Resources */, 288 | 6EC75E1420B6892D007513FC /* ShellScript */, 289 | ); 290 | buildRules = ( 291 | ); 292 | dependencies = ( 293 | ); 294 | name = tongji; 295 | productName = tongji; 296 | productReference = 6E5A98E520A00BCB00405EAD /* tongji.app */; 297 | productType = "com.apple.product-type.application"; 298 | }; 299 | 6E5A98FC20A00BCD00405EAD /* tongjiTests */ = { 300 | isa = PBXNativeTarget; 301 | buildConfigurationList = 6E5A991420A00BCD00405EAD /* Build configuration list for PBXNativeTarget "tongjiTests" */; 302 | buildPhases = ( 303 | 6E5A98F920A00BCD00405EAD /* Sources */, 304 | 6E5A98FA20A00BCD00405EAD /* Frameworks */, 305 | 6E5A98FB20A00BCD00405EAD /* Resources */, 306 | ); 307 | buildRules = ( 308 | ); 309 | dependencies = ( 310 | 6E5A98FF20A00BCD00405EAD /* PBXTargetDependency */, 311 | ); 312 | name = tongjiTests; 313 | productName = tongjiTests; 314 | productReference = 6E5A98FD20A00BCD00405EAD /* tongjiTests.xctest */; 315 | productType = "com.apple.product-type.bundle.unit-test"; 316 | }; 317 | 6E5A990720A00BCD00405EAD /* tongjiUITests */ = { 318 | isa = PBXNativeTarget; 319 | buildConfigurationList = 6E5A991720A00BCD00405EAD /* Build configuration list for PBXNativeTarget "tongjiUITests" */; 320 | buildPhases = ( 321 | 6E5A990420A00BCD00405EAD /* Sources */, 322 | 6E5A990520A00BCD00405EAD /* Frameworks */, 323 | 6E5A990620A00BCD00405EAD /* Resources */, 324 | ); 325 | buildRules = ( 326 | ); 327 | dependencies = ( 328 | 6E5A990A20A00BCD00405EAD /* PBXTargetDependency */, 329 | ); 330 | name = tongjiUITests; 331 | productName = tongjiUITests; 332 | productReference = 6E5A990820A00BCD00405EAD /* tongjiUITests.xctest */; 333 | productType = "com.apple.product-type.bundle.ui-testing"; 334 | }; 335 | /* End PBXNativeTarget section */ 336 | 337 | /* Begin PBXProject section */ 338 | 6E5A98DD20A00BCB00405EAD /* Project object */ = { 339 | isa = PBXProject; 340 | attributes = { 341 | LastUpgradeCheck = 0930; 342 | ORGANIZATIONNAME = c4ibD3; 343 | TargetAttributes = { 344 | 6E5A98E420A00BCB00405EAD = { 345 | CreatedOnToolsVersion = 9.3; 346 | }; 347 | 6E5A98FC20A00BCD00405EAD = { 348 | CreatedOnToolsVersion = 9.3; 349 | TestTargetID = 6E5A98E420A00BCB00405EAD; 350 | }; 351 | 6E5A990720A00BCD00405EAD = { 352 | CreatedOnToolsVersion = 9.3; 353 | TestTargetID = 6E5A98E420A00BCB00405EAD; 354 | }; 355 | }; 356 | }; 357 | buildConfigurationList = 6E5A98E020A00BCB00405EAD /* Build configuration list for PBXProject "tongji" */; 358 | compatibilityVersion = "Xcode 9.3"; 359 | developmentRegion = en; 360 | hasScannedForEncodings = 0; 361 | knownRegions = ( 362 | en, 363 | Base, 364 | ); 365 | mainGroup = 6E5A98DC20A00BCB00405EAD; 366 | productRefGroup = 6E5A98E620A00BCB00405EAD /* Products */; 367 | projectDirPath = ""; 368 | projectRoot = ""; 369 | targets = ( 370 | 6E5A98E420A00BCB00405EAD /* tongji */, 371 | 6E5A98FC20A00BCD00405EAD /* tongjiTests */, 372 | 6E5A990720A00BCD00405EAD /* tongjiUITests */, 373 | ); 374 | }; 375 | /* End PBXProject section */ 376 | 377 | /* Begin PBXResourcesBuildPhase section */ 378 | 6E5A98E320A00BCB00405EAD /* Resources */ = { 379 | isa = PBXResourcesBuildPhase; 380 | buildActionMask = 2147483647; 381 | files = ( 382 | 6EEEA9B620B0013900EBA09D /* PickerView.xib in Resources */, 383 | 6E5A98F520A00BCD00405EAD /* LaunchScreen.storyboard in Resources */, 384 | 6E5A98F220A00BCC00405EAD /* Assets.xcassets in Resources */, 385 | 6E5A98F020A00BCB00405EAD /* Main.storyboard in Resources */, 386 | 6EC75E1220B6876D007513FC /* confuse.sh in Resources */, 387 | 6E5A999520A0244900405EAD /* UMCommonLog.bundle in Resources */, 388 | 6EC75E1120B6876D007513FC /* func.list in Resources */, 389 | ); 390 | runOnlyForDeploymentPostprocessing = 0; 391 | }; 392 | 6E5A98FB20A00BCD00405EAD /* Resources */ = { 393 | isa = PBXResourcesBuildPhase; 394 | buildActionMask = 2147483647; 395 | files = ( 396 | ); 397 | runOnlyForDeploymentPostprocessing = 0; 398 | }; 399 | 6E5A990620A00BCD00405EAD /* Resources */ = { 400 | isa = PBXResourcesBuildPhase; 401 | buildActionMask = 2147483647; 402 | files = ( 403 | ); 404 | runOnlyForDeploymentPostprocessing = 0; 405 | }; 406 | /* End PBXResourcesBuildPhase section */ 407 | 408 | /* Begin PBXShellScriptBuildPhase section */ 409 | 6EC75E1420B6892D007513FC /* ShellScript */ = { 410 | isa = PBXShellScriptBuildPhase; 411 | buildActionMask = 2147483647; 412 | files = ( 413 | ); 414 | inputPaths = ( 415 | ); 416 | outputPaths = ( 417 | ); 418 | runOnlyForDeploymentPostprocessing = 0; 419 | shellPath = /bin/sh; 420 | shellScript = $PROJECT_DIR/confuse.sh; 421 | }; 422 | /* End PBXShellScriptBuildPhase section */ 423 | 424 | /* Begin PBXSourcesBuildPhase section */ 425 | 6E5A98E120A00BCB00405EAD /* Sources */ = { 426 | isa = PBXSourcesBuildPhase; 427 | buildActionMask = 2147483647; 428 | files = ( 429 | 6EEEA9B420B0012B00EBA09D /* PickerView.m in Sources */, 430 | 6E5A98ED20A00BCB00405EAD /* ViewController.m in Sources */, 431 | 6E5A98F820A00BCD00405EAD /* main.m in Sources */, 432 | 6E5A98EA20A00BCB00405EAD /* AppDelegate.m in Sources */, 433 | ); 434 | runOnlyForDeploymentPostprocessing = 0; 435 | }; 436 | 6E5A98F920A00BCD00405EAD /* Sources */ = { 437 | isa = PBXSourcesBuildPhase; 438 | buildActionMask = 2147483647; 439 | files = ( 440 | 6E5A990220A00BCD00405EAD /* tongjiTests.m in Sources */, 441 | ); 442 | runOnlyForDeploymentPostprocessing = 0; 443 | }; 444 | 6E5A990420A00BCD00405EAD /* Sources */ = { 445 | isa = PBXSourcesBuildPhase; 446 | buildActionMask = 2147483647; 447 | files = ( 448 | 6E5A990D20A00BCD00405EAD /* tongjiUITests.m in Sources */, 449 | ); 450 | runOnlyForDeploymentPostprocessing = 0; 451 | }; 452 | /* End PBXSourcesBuildPhase section */ 453 | 454 | /* Begin PBXTargetDependency section */ 455 | 6E5A98FF20A00BCD00405EAD /* PBXTargetDependency */ = { 456 | isa = PBXTargetDependency; 457 | target = 6E5A98E420A00BCB00405EAD /* tongji */; 458 | targetProxy = 6E5A98FE20A00BCD00405EAD /* PBXContainerItemProxy */; 459 | }; 460 | 6E5A990A20A00BCD00405EAD /* PBXTargetDependency */ = { 461 | isa = PBXTargetDependency; 462 | target = 6E5A98E420A00BCB00405EAD /* tongji */; 463 | targetProxy = 6E5A990920A00BCD00405EAD /* PBXContainerItemProxy */; 464 | }; 465 | /* End PBXTargetDependency section */ 466 | 467 | /* Begin PBXVariantGroup section */ 468 | 6E5A98EE20A00BCB00405EAD /* Main.storyboard */ = { 469 | isa = PBXVariantGroup; 470 | children = ( 471 | 6E5A98EF20A00BCB00405EAD /* Base */, 472 | ); 473 | name = Main.storyboard; 474 | sourceTree = ""; 475 | }; 476 | 6E5A98F320A00BCC00405EAD /* LaunchScreen.storyboard */ = { 477 | isa = PBXVariantGroup; 478 | children = ( 479 | 6E5A98F420A00BCD00405EAD /* Base */, 480 | ); 481 | name = LaunchScreen.storyboard; 482 | sourceTree = ""; 483 | }; 484 | /* End PBXVariantGroup section */ 485 | 486 | /* Begin XCBuildConfiguration section */ 487 | 6E5A990F20A00BCD00405EAD /* Debug */ = { 488 | isa = XCBuildConfiguration; 489 | buildSettings = { 490 | ALWAYS_SEARCH_USER_PATHS = NO; 491 | CLANG_ANALYZER_NONNULL = YES; 492 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 493 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 494 | CLANG_CXX_LIBRARY = "libc++"; 495 | CLANG_ENABLE_MODULES = YES; 496 | CLANG_ENABLE_OBJC_ARC = YES; 497 | CLANG_ENABLE_OBJC_WEAK = YES; 498 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 499 | CLANG_WARN_BOOL_CONVERSION = YES; 500 | CLANG_WARN_COMMA = YES; 501 | CLANG_WARN_CONSTANT_CONVERSION = YES; 502 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 503 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 504 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 505 | CLANG_WARN_EMPTY_BODY = YES; 506 | CLANG_WARN_ENUM_CONVERSION = YES; 507 | CLANG_WARN_INFINITE_RECURSION = YES; 508 | CLANG_WARN_INT_CONVERSION = YES; 509 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 510 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 511 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 512 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 513 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 514 | CLANG_WARN_STRICT_PROTOTYPES = YES; 515 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 516 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 517 | CLANG_WARN_UNREACHABLE_CODE = YES; 518 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 519 | CODE_SIGN_IDENTITY = "iPhone Developer"; 520 | COPY_PHASE_STRIP = NO; 521 | DEBUG_INFORMATION_FORMAT = dwarf; 522 | ENABLE_STRICT_OBJC_MSGSEND = YES; 523 | ENABLE_TESTABILITY = YES; 524 | GCC_C_LANGUAGE_STANDARD = gnu11; 525 | GCC_DYNAMIC_NO_PIC = NO; 526 | GCC_NO_COMMON_BLOCKS = YES; 527 | GCC_OPTIMIZATION_LEVEL = 0; 528 | GCC_PREPROCESSOR_DEFINITIONS = ( 529 | "DEBUG=1", 530 | "$(inherited)", 531 | ); 532 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 533 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 534 | GCC_WARN_UNDECLARED_SELECTOR = YES; 535 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 536 | GCC_WARN_UNUSED_FUNCTION = YES; 537 | GCC_WARN_UNUSED_VARIABLE = YES; 538 | IPHONEOS_DEPLOYMENT_TARGET = 11.3; 539 | MTL_ENABLE_DEBUG_INFO = YES; 540 | ONLY_ACTIVE_ARCH = YES; 541 | SDKROOT = iphoneos; 542 | }; 543 | name = Debug; 544 | }; 545 | 6E5A991020A00BCD00405EAD /* Release */ = { 546 | isa = XCBuildConfiguration; 547 | buildSettings = { 548 | ALWAYS_SEARCH_USER_PATHS = NO; 549 | CLANG_ANALYZER_NONNULL = YES; 550 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 551 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 552 | CLANG_CXX_LIBRARY = "libc++"; 553 | CLANG_ENABLE_MODULES = YES; 554 | CLANG_ENABLE_OBJC_ARC = YES; 555 | CLANG_ENABLE_OBJC_WEAK = YES; 556 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 557 | CLANG_WARN_BOOL_CONVERSION = YES; 558 | CLANG_WARN_COMMA = YES; 559 | CLANG_WARN_CONSTANT_CONVERSION = YES; 560 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 561 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 562 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 563 | CLANG_WARN_EMPTY_BODY = YES; 564 | CLANG_WARN_ENUM_CONVERSION = YES; 565 | CLANG_WARN_INFINITE_RECURSION = YES; 566 | CLANG_WARN_INT_CONVERSION = YES; 567 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 568 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 569 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 570 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 571 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 572 | CLANG_WARN_STRICT_PROTOTYPES = YES; 573 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 574 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 575 | CLANG_WARN_UNREACHABLE_CODE = YES; 576 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 577 | CODE_SIGN_IDENTITY = "iPhone Developer"; 578 | COPY_PHASE_STRIP = NO; 579 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 580 | ENABLE_NS_ASSERTIONS = NO; 581 | ENABLE_STRICT_OBJC_MSGSEND = YES; 582 | GCC_C_LANGUAGE_STANDARD = gnu11; 583 | GCC_NO_COMMON_BLOCKS = YES; 584 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 585 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 586 | GCC_WARN_UNDECLARED_SELECTOR = YES; 587 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 588 | GCC_WARN_UNUSED_FUNCTION = YES; 589 | GCC_WARN_UNUSED_VARIABLE = YES; 590 | IPHONEOS_DEPLOYMENT_TARGET = 11.3; 591 | MTL_ENABLE_DEBUG_INFO = NO; 592 | SDKROOT = iphoneos; 593 | VALIDATE_PRODUCT = YES; 594 | }; 595 | name = Release; 596 | }; 597 | 6E5A991220A00BCD00405EAD /* Debug */ = { 598 | isa = XCBuildConfiguration; 599 | buildSettings = { 600 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 601 | CODE_SIGN_STYLE = Automatic; 602 | DEVELOPMENT_TEAM = Y8Z77UB4PH; 603 | FRAMEWORK_SEARCH_PATHS = ( 604 | "$(inherited)", 605 | "$(PROJECT_DIR)/tongji", 606 | "$(PROJECT_DIR)/tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0", 607 | "$(PROJECT_DIR)/tongji/iOS/thirdparties/thirdparties_ios_1.0.5", 608 | "$(PROJECT_DIR)/tongji/iOS/common/common_ios_1.5.0/normal", 609 | "$(PROJECT_DIR)/tongji/iOS/analytics/analytics_ios_5.5.0", 610 | ); 611 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 612 | GCC_PREFIX_HEADER = tongji/PrefixHeader.pch; 613 | INFOPLIST_FILE = tongji/Info.plist; 614 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 615 | LD_RUNPATH_SEARCH_PATHS = ( 616 | "$(inherited)", 617 | "@executable_path/Frameworks", 618 | ); 619 | PRODUCT_BUNDLE_IDENTIFIER = com.C4ibD3.tongji; 620 | PRODUCT_NAME = "$(TARGET_NAME)"; 621 | TARGETED_DEVICE_FAMILY = "1,2"; 622 | }; 623 | name = Debug; 624 | }; 625 | 6E5A991320A00BCD00405EAD /* Release */ = { 626 | isa = XCBuildConfiguration; 627 | buildSettings = { 628 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 629 | CODE_SIGN_STYLE = Automatic; 630 | DEVELOPMENT_TEAM = Y8Z77UB4PH; 631 | FRAMEWORK_SEARCH_PATHS = ( 632 | "$(inherited)", 633 | "$(PROJECT_DIR)/tongji", 634 | "$(PROJECT_DIR)/tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0", 635 | "$(PROJECT_DIR)/tongji/iOS/thirdparties/thirdparties_ios_1.0.5", 636 | "$(PROJECT_DIR)/tongji/iOS/common/common_ios_1.5.0/normal", 637 | "$(PROJECT_DIR)/tongji/iOS/analytics/analytics_ios_5.5.0", 638 | ); 639 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 640 | GCC_PREFIX_HEADER = tongji/PrefixHeader.pch; 641 | INFOPLIST_FILE = tongji/Info.plist; 642 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 643 | LD_RUNPATH_SEARCH_PATHS = ( 644 | "$(inherited)", 645 | "@executable_path/Frameworks", 646 | ); 647 | PRODUCT_BUNDLE_IDENTIFIER = com.C4ibD3.tongji; 648 | PRODUCT_NAME = "$(TARGET_NAME)"; 649 | TARGETED_DEVICE_FAMILY = "1,2"; 650 | }; 651 | name = Release; 652 | }; 653 | 6E5A991520A00BCD00405EAD /* Debug */ = { 654 | isa = XCBuildConfiguration; 655 | buildSettings = { 656 | BUNDLE_LOADER = "$(TEST_HOST)"; 657 | CODE_SIGN_STYLE = Automatic; 658 | DEVELOPMENT_TEAM = Y8Z77UB4PH; 659 | INFOPLIST_FILE = tongjiTests/Info.plist; 660 | LD_RUNPATH_SEARCH_PATHS = ( 661 | "$(inherited)", 662 | "@executable_path/Frameworks", 663 | "@loader_path/Frameworks", 664 | ); 665 | PRODUCT_BUNDLE_IDENTIFIER = com.C4ibD3.tongjiTests; 666 | PRODUCT_NAME = "$(TARGET_NAME)"; 667 | TARGETED_DEVICE_FAMILY = "1,2"; 668 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/tongji.app/tongji"; 669 | }; 670 | name = Debug; 671 | }; 672 | 6E5A991620A00BCD00405EAD /* Release */ = { 673 | isa = XCBuildConfiguration; 674 | buildSettings = { 675 | BUNDLE_LOADER = "$(TEST_HOST)"; 676 | CODE_SIGN_STYLE = Automatic; 677 | DEVELOPMENT_TEAM = Y8Z77UB4PH; 678 | INFOPLIST_FILE = tongjiTests/Info.plist; 679 | LD_RUNPATH_SEARCH_PATHS = ( 680 | "$(inherited)", 681 | "@executable_path/Frameworks", 682 | "@loader_path/Frameworks", 683 | ); 684 | PRODUCT_BUNDLE_IDENTIFIER = com.C4ibD3.tongjiTests; 685 | PRODUCT_NAME = "$(TARGET_NAME)"; 686 | TARGETED_DEVICE_FAMILY = "1,2"; 687 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/tongji.app/tongji"; 688 | }; 689 | name = Release; 690 | }; 691 | 6E5A991820A00BCD00405EAD /* Debug */ = { 692 | isa = XCBuildConfiguration; 693 | buildSettings = { 694 | CODE_SIGN_STYLE = Automatic; 695 | DEVELOPMENT_TEAM = Y8Z77UB4PH; 696 | INFOPLIST_FILE = tongjiUITests/Info.plist; 697 | LD_RUNPATH_SEARCH_PATHS = ( 698 | "$(inherited)", 699 | "@executable_path/Frameworks", 700 | "@loader_path/Frameworks", 701 | ); 702 | PRODUCT_BUNDLE_IDENTIFIER = com.C4ibD3.tongjiUITests; 703 | PRODUCT_NAME = "$(TARGET_NAME)"; 704 | TARGETED_DEVICE_FAMILY = "1,2"; 705 | TEST_TARGET_NAME = tongji; 706 | }; 707 | name = Debug; 708 | }; 709 | 6E5A991920A00BCD00405EAD /* Release */ = { 710 | isa = XCBuildConfiguration; 711 | buildSettings = { 712 | CODE_SIGN_STYLE = Automatic; 713 | DEVELOPMENT_TEAM = Y8Z77UB4PH; 714 | INFOPLIST_FILE = tongjiUITests/Info.plist; 715 | LD_RUNPATH_SEARCH_PATHS = ( 716 | "$(inherited)", 717 | "@executable_path/Frameworks", 718 | "@loader_path/Frameworks", 719 | ); 720 | PRODUCT_BUNDLE_IDENTIFIER = com.C4ibD3.tongjiUITests; 721 | PRODUCT_NAME = "$(TARGET_NAME)"; 722 | TARGETED_DEVICE_FAMILY = "1,2"; 723 | TEST_TARGET_NAME = tongji; 724 | }; 725 | name = Release; 726 | }; 727 | /* End XCBuildConfiguration section */ 728 | 729 | /* Begin XCConfigurationList section */ 730 | 6E5A98E020A00BCB00405EAD /* Build configuration list for PBXProject "tongji" */ = { 731 | isa = XCConfigurationList; 732 | buildConfigurations = ( 733 | 6E5A990F20A00BCD00405EAD /* Debug */, 734 | 6E5A991020A00BCD00405EAD /* Release */, 735 | ); 736 | defaultConfigurationIsVisible = 0; 737 | defaultConfigurationName = Release; 738 | }; 739 | 6E5A991120A00BCD00405EAD /* Build configuration list for PBXNativeTarget "tongji" */ = { 740 | isa = XCConfigurationList; 741 | buildConfigurations = ( 742 | 6E5A991220A00BCD00405EAD /* Debug */, 743 | 6E5A991320A00BCD00405EAD /* Release */, 744 | ); 745 | defaultConfigurationIsVisible = 0; 746 | defaultConfigurationName = Release; 747 | }; 748 | 6E5A991420A00BCD00405EAD /* Build configuration list for PBXNativeTarget "tongjiTests" */ = { 749 | isa = XCConfigurationList; 750 | buildConfigurations = ( 751 | 6E5A991520A00BCD00405EAD /* Debug */, 752 | 6E5A991620A00BCD00405EAD /* Release */, 753 | ); 754 | defaultConfigurationIsVisible = 0; 755 | defaultConfigurationName = Release; 756 | }; 757 | 6E5A991720A00BCD00405EAD /* Build configuration list for PBXNativeTarget "tongjiUITests" */ = { 758 | isa = XCConfigurationList; 759 | buildConfigurations = ( 760 | 6E5A991820A00BCD00405EAD /* Debug */, 761 | 6E5A991920A00BCD00405EAD /* Release */, 762 | ); 763 | defaultConfigurationIsVisible = 0; 764 | defaultConfigurationName = Release; 765 | }; 766 | /* End XCConfigurationList section */ 767 | }; 768 | rootObject = 6E5A98DD20A00BCB00405EAD /* Project object */; 769 | } 770 | -------------------------------------------------------------------------------- /tongji.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tongji.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /tongji.xcodeproj/xcuserdata/zhangpeng.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tongji.xcodeproj/xcuserdata/zhangpeng.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | tongji.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | tongji.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 0 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /tongji/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /tongji/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import 11 | #import 12 | #import 13 | 14 | 15 | @interface AppDelegate () 16 | 17 | @end 18 | 19 | @implementation AppDelegate 20 | 21 | 22 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 23 | // Override point for customization after application launch. 24 | 25 | 26 | [UMCommonLogManager setUpUMCommonLogManager]; 27 | 28 | [UMConfigure setLogEnabled:YES]; 29 | [UMConfigure initWithAppkey:@"" channel:@"App Store"]; 30 | [MobClick setScenarioType:E_UM_NORMAL]; 31 | 32 | 33 | return YES; 34 | } 35 | 36 | 37 | - (void)applicationWillResignActive:(UIApplication *)application { 38 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 39 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 40 | } 41 | 42 | 43 | - (void)applicationDidEnterBackground:(UIApplication *)application { 44 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 45 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 46 | } 47 | 48 | 49 | - (void)applicationWillEnterForeground:(UIApplication *)application { 50 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 51 | } 52 | 53 | 54 | - (void)applicationDidBecomeActive:(UIApplication *)application { 55 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 56 | } 57 | 58 | 59 | - (void)applicationWillTerminate:(UIApplication *)application { 60 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 61 | } 62 | 63 | 64 | @end 65 | -------------------------------------------------------------------------------- /tongji/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /tongji/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /tongji/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tongji/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tongji/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | NSAppTransportSecurity 38 | 39 | NSAllowsArbitraryLoads 40 | 41 | 42 | UISupportedInterfaceOrientations~ipad 43 | 44 | UIInterfaceOrientationPortrait 45 | UIInterfaceOrientationPortraitUpsideDown 46 | UIInterfaceOrientationLandscapeLeft 47 | UIInterfaceOrientationLandscapeRight 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /tongji/PickerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerView.h 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/19. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import 10 | @class PickerView; 11 | typedef void (^SureBlock)(PickerView *picker, NSInteger selectedIndex,id selectedValue); 12 | typedef void (^CancelBlock)(PickerView *picker); 13 | 14 | @interface PickerView : UIView 15 | 16 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel; 17 | @property (weak, nonatomic) IBOutlet UIButton *doneButton; 18 | @property (weak, nonatomic) IBOutlet UIButton *cancelButton; 19 | @property (weak, nonatomic) IBOutlet UIPickerView *dataPickerView; 20 | 21 | @property (nonatomic, strong) UIView *backView; 22 | @property (nonatomic, strong) UITapGestureRecognizer *recognizer; 23 | @property (nonatomic, strong) NSArray *dataArray; 24 | @property (nonatomic, copy) SureBlock sureBlock; 25 | @property (nonatomic, copy) CancelBlock cancelBlock; 26 | +(void)showDataArray:(NSArray *)array title:(NSString *)titleStr completedHandle:(SureBlock)complete; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /tongji/PickerView.m: -------------------------------------------------------------------------------- 1 | // 2 | // PickerView.m 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/19. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import "PickerView.h" 10 | 11 | @implementation PickerView 12 | - (IBAction)cancelButtonAction:(id)sender { 13 | 14 | [self disMissPickView]; 15 | } 16 | - (IBAction)doneButtonAction:(id)sender { 17 | id selectedValue = self.dataArray[[self.dataPickerView selectedRowInComponent:0]]; 18 | if (self.sureBlock) { 19 | self.sureBlock(self,[self.dataPickerView selectedRowInComponent:0],selectedValue); 20 | } 21 | [self disMissPickView]; 22 | } 23 | 24 | - (void)configuraView{ 25 | [self.dataPickerView reloadAllComponents]; 26 | self.recognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(disMissPickView)]; 27 | if (self.backView != nil) { 28 | [self.backView removeFromSuperview]; 29 | } 30 | self.backView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)]; 31 | self.backView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3]; 32 | [self.backView addGestureRecognizer:self.recognizer]; 33 | self.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width, 185); 34 | [self.backView addSubview:self]; 35 | [[UIApplication sharedApplication].keyWindow addSubview:self.backView]; 36 | 37 | [UIView animateWithDuration:0.25 animations:^{ 38 | self.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height -185, [UIScreen mainScreen].bounds.size.width, 185); 39 | }]; 40 | 41 | } 42 | -(void)disMissPickView{ 43 | [UIView animateWithDuration:0.25 animations:^{ 44 | self.frame = CGRectMake(0, self.backView.frame.size.height, self.backView.frame.size.width, 185); 45 | } completion:^(BOOL finished) { 46 | [self.backView removeGestureRecognizer:self.recognizer]; 47 | [self.backView removeFromSuperview]; 48 | }]; 49 | } 50 | 51 | +(void)showDataArray:(NSArray *)array title:(NSString *)titleStr completedHandle:(SureBlock)complete{ 52 | PickerView *pickerView = [[NSBundle mainBundle] loadNibNamed:@"PickerView" owner:self options:nil].firstObject; 53 | pickerView.dataArray = array; 54 | pickerView.titleLabel.text = titleStr; 55 | pickerView.sureBlock = complete; 56 | [pickerView configuraView]; 57 | } 58 | #pragma mark - PickerView 59 | -(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{ 60 | return 45.0; 61 | } 62 | - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ 63 | return 1; 64 | } 65 | - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 66 | return self.dataArray.count; 67 | } 68 | - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 69 | return self.dataArray[row]; 70 | } 71 | -(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ 72 | UILabel *pickerLabel = (UILabel *)view; 73 | if (!pickerLabel) { 74 | pickerLabel = [[UILabel alloc]init]; 75 | pickerLabel.minimumFontSize = 8; 76 | pickerLabel.adjustsFontSizeToFitWidth = YES; 77 | [pickerLabel setTextAlignment:NSTextAlignmentCenter]; 78 | [pickerLabel setBackgroundColor:[UIColor clearColor]]; 79 | [pickerLabel setTextColor:[UIColor blackColor]]; 80 | [pickerLabel setFont:[UIFont boldSystemFontOfSize:25]]; 81 | } 82 | pickerLabel.text = [self pickerView:pickerView titleForRow:row forComponent:component]; 83 | return pickerLabel; 84 | } 85 | @end 86 | -------------------------------------------------------------------------------- /tongji/PickerView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 34 | 45 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /tongji/PrefixHeader.pch: -------------------------------------------------------------------------------- 1 | // 2 | // PrefixHeader.pch 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/24. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #ifndef PrefixHeader_pch 10 | #define PrefixHeader_pch 11 | 12 | // Include any system framework and library headers here that should be included in all compilation units. 13 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. 14 | //#ifdef __OBJC__ 15 | #import 16 | #import 17 | #import "codeObfuscation.h" 18 | //#endif 19 | #endif /* PrefixHeader_pch */ 20 | -------------------------------------------------------------------------------- /tongji/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /tongji/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "PickerView.h" 11 | @interface ViewController () 12 | @property (weak, nonatomic) IBOutlet UIView *view1; 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | - (IBAction)buttonAction:(id)sender { 18 | [PickerView showDataArray:@[@"1",@"2",@"3"] title:@"123" completedHandle:^(PickerView *picker, NSInteger selectedIndex, id selectedValue) { 19 | NSLog(@"%ld",(long)selectedIndex); 20 | NSLog(@"%@",selectedValue); 21 | 22 | }]; 23 | 24 | } 25 | 26 | - (void)viewDidLoad { 27 | [super viewDidLoad]; 28 | // Do any additional setup after loading the view, typically from a nib. 29 | BOOL abc = [self MatchLetter:@"11010519831324117x"]; 30 | 31 | if (abc) { 32 | NSLog(@"是身份证"); 33 | }else{ 34 | NSLog(@"不是身份证"); 35 | } 36 | 37 | } 38 | -(BOOL)MatchLetter:(NSString *)str 39 | { 40 | //判断是否以字母开头 41 | NSString *ZIMU = @"(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx]$)"; 42 | 43 | NSPredicate *idCard = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",ZIMU]; 44 | return [idCard evaluateWithObject:str]; 45 | } 46 | 47 | - (void)didReceiveMemoryWarning { 48 | [super didReceiveMemoryWarning]; 49 | // Dispose of any resources that can be recreated. 50 | } 51 | #pragma mark ========== 身份证号全校验 ========== 52 | - (BOOL)verifyIDCardNumber:(NSString *)IDCardNumber 53 | { 54 | IDCardNumber = [IDCardNumber stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 55 | if ([IDCardNumber length] != 18) 56 | { 57 | return NO; 58 | } 59 | NSString *mmdd = @"(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8])))"; 60 | NSString *leapMmdd = @"0229"; 61 | NSString *year = @"(19|20)[0-9]{2}"; 62 | NSString *leapYear = @"(19|20)(0[48]|[2468][048]|[13579][26])"; 63 | NSString *yearMmdd = [NSString stringWithFormat:@"%@%@", year, mmdd]; 64 | NSString *leapyearMmdd = [NSString stringWithFormat:@"%@%@", leapYear, leapMmdd]; 65 | NSString *yyyyMmdd = [NSString stringWithFormat:@"((%@)|(%@)|(%@))", yearMmdd, leapyearMmdd, @"20000229"]; 66 | NSString *area = @"(1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5]|82|[7-9]1)[0-9]{4}"; 67 | NSString *regex = [NSString stringWithFormat:@"%@%@%@", area, yyyyMmdd , @"[0-9]{3}[0-9Xx]"]; 68 | 69 | NSPredicate *regexTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 70 | if (![regexTest evaluateWithObject:IDCardNumber]) 71 | { 72 | return NO; 73 | } 74 | int summary = ([IDCardNumber substringWithRange:NSMakeRange(0,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(10,1)].intValue) *7 75 | + ([IDCardNumber substringWithRange:NSMakeRange(1,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(11,1)].intValue) *9 76 | + ([IDCardNumber substringWithRange:NSMakeRange(2,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(12,1)].intValue) *10 77 | + ([IDCardNumber substringWithRange:NSMakeRange(3,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(13,1)].intValue) *5 78 | + ([IDCardNumber substringWithRange:NSMakeRange(4,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(14,1)].intValue) *8 79 | + ([IDCardNumber substringWithRange:NSMakeRange(5,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(15,1)].intValue) *4 80 | + ([IDCardNumber substringWithRange:NSMakeRange(6,1)].intValue + [IDCardNumber substringWithRange:NSMakeRange(16,1)].intValue) *2 81 | + [IDCardNumber substringWithRange:NSMakeRange(7,1)].intValue *1 + [IDCardNumber substringWithRange:NSMakeRange(8,1)].intValue *6 82 | + [IDCardNumber substringWithRange:NSMakeRange(9,1)].intValue *3; 83 | NSInteger remainder = summary % 11; 84 | NSString *checkBit = @""; 85 | NSString *checkString = @"10X98765432"; 86 | checkBit = [checkString substringWithRange:NSMakeRange(remainder,1)];// 判断校验位 87 | return [checkBit isEqualToString:[[IDCardNumber substringWithRange:NSMakeRange(17,1)] uppercaseString]]; 88 | } 89 | 90 | 91 | @end 92 | -------------------------------------------------------------------------------- /tongji/codeObfuscation.h: -------------------------------------------------------------------------------- 1 | #ifndef Demo_codeObfuscation_h 2 | #define Demo_codeObfuscation_h 3 | //confuse string at Wed Jul 4 15:39:33 CST 2018 4 | #define SureBlock XmAcpafxpUTWbCAF 5 | #define picker YfRotmcCRiiOtQdW 6 | #define selectedIndex ovyfIOoyzIrgsdvN 7 | #define selectedValue ZWyxLUFedOFDYlQP 8 | #define CancelBlock OnjUWfwtlkppTMIY 9 | #define titleLabel jbvJnxSnnZeaxKTr 10 | #define doneButton lUYCzmKwZbyLPZfd 11 | #define cancelButton MVVSQCnElRMhdPDs 12 | #define dataPickerView CGgVuryxzveTsXBz 13 | #define backView gvQRJDZVbzLkzSrI 14 | #define recognizer vfUARIEcmpXYywdj 15 | #define dataArray HaCoONVCuQYCDIMU 16 | #define sureBlock yFtjSqFnzsEWCUcn 17 | #define cancelBlock dHLRWeuzLwHNSNxW 18 | #define showDataArray UbjxAlAxDnKWBfJW 19 | #define array rOCldvbLnGnTnqpQ 20 | #define title ujTzFGaSBKWpHYxc 21 | #define titleStr vCuCRMxgqUeNiLTI 22 | #define completedHandle OGjbUYlCMwDmxKAe 23 | #define complete FvbiqCrzmNksQxzH 24 | #define cancelButtonAction zkQycUWpFYOftuSt 25 | #define sender dCWcMaPTPTJjsVus 26 | #define doneButtonAction IkyjohulMwwNxpuR 27 | #define configuraView amlSPHoCMCjrmSdj 28 | #define disMissPickView joivzjvJAbiiYOfD 29 | #define pickerView oWSoZTYMTwApPZMg 30 | #define rowHeightForComponent gVgAcYCCsBAjycQY 31 | #define component MsspSOLiVtKHXcLv 32 | #define numberOfComponentsInPickerView ZZqeTjBAfkYLEpxc 33 | #define numberOfRowsInComponent QeSWLIPZUrgjfyGO 34 | #define titleForRow pDsRtBMeRiciPyKf 35 | #define forComponent bceZTjDHokLWTbpC 36 | #define row MlOWsfgjexJFknkM 37 | #define viewForRow ULrSQKyaTqPNOSLY 38 | #define reusingView HgsOibfehkJPkfsB 39 | #define view dTKxkNWSUTVqVqAV 40 | #endif 41 | -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/5.5.0_443a85fb47_20180329145809: -------------------------------------------------------------------------------- 1 | 5.5.0 2 | -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/UMAnalytics: -------------------------------------------------------------------------------- 1 | Versions/Current/UMAnalytics -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Versions/A/Headers/DplusMobClick.h: -------------------------------------------------------------------------------- 1 | // 2 | // DplusMobClick.h 3 | // Analytics 4 | // 5 | // Copyright (C) 2010-2016 Umeng.com . All rights reserved. 6 | 7 | #import 8 | #import 9 | 10 | @interface DplusMobClick : NSObject 11 | 12 | /** Dplus增加事件 13 | @param eventName 事件名 14 | @param property 自定义属性 15 | */ 16 | +(void) track:(NSString *)eventName; 17 | +(void) track:(NSString *)eventName property:(NSDictionary *) property; 18 | 19 | /** 20 | * 设置属性 键值对 会覆盖同名的key 21 | * 将该函数指定的key-value写入dplus专用文件;APP启动时会自动读取该文件的所有key-value,并将key-value自动作为后续所有track事件的属性。 22 | */ 23 | +(void) registerSuperProperty:(NSDictionary *)property; 24 | 25 | /** 26 | * 27 | * 从dplus专用文件中删除指定key-value 28 | @param key 29 | */ 30 | +(void) unregisterSuperProperty:(NSString *)propertyName; 31 | 32 | /** 33 | * 34 | * 返回dplus专用文件中key对应的value;如果不存在,则返回空。 35 | @param key 36 | @return void 37 | */ 38 | +(NSString *)getSuperProperty:(NSString *)propertyName; 39 | 40 | /** 41 | * 返回Dplus专用文件中的所有key-value;如果不存在,则返回空。 42 | */ 43 | +(NSDictionary *)getSuperProperties; 44 | 45 | /** 46 | *清空Dplus专用文件中的所有key-value。 47 | */ 48 | +(void)clearSuperProperties; 49 | 50 | /** 51 | * 设置预置事件属性 键值对 会覆盖同名的key 52 | */ 53 | +(void) registerPreProperties:(NSDictionary *)property; 54 | 55 | /** 56 | * 57 | * 删除指定预置事件属性 58 | @param key 59 | */ 60 | +(void) unregisterPreProperty:(NSString *)propertyName; 61 | 62 | /** 63 | * 获取预置事件所有属性;如果不存在,则返回空。 64 | */ 65 | +(NSDictionary *)getPreProperties; 66 | 67 | /** 68 | *清空所有预置事件属性。 69 | */ 70 | +(void)clearPreProperties; 71 | 72 | 73 | /** 74 | * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效 75 | */ 76 | +(void)setFirstLaunchEvent:(NSArray *)eventList; 77 | @end 78 | -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Versions/A/Headers/MobClick.h: -------------------------------------------------------------------------------- 1 | // 2 | // MobClick.h 3 | // Analytics 4 | // 5 | // Copyright (C) 2010-2017 Umeng.com . All rights reserved. 6 | 7 | #import 8 | #import 9 | 10 | typedef void(^CallbackBlock)(); 11 | 12 | /** 13 | 统计的场景类别,默认为普通统计;若使用游戏统计API,则需选择游戏场景类别,如E_UM_GAME。 14 | */ 15 | typedef NS_ENUM (NSUInteger, eScenarioType) 16 | { 17 | E_UM_NORMAL = 0, // default value 18 | E_UM_GAME = 1, // game 19 | E_UM_DPLUS = 4 // DPlus 20 | }; 21 | 22 | @class CLLocation; 23 | @interface MobClick : NSObject 24 | 25 | #pragma mark basics 26 | 27 | ///--------------------------------------------------------------------------------------- 28 | /// @name 设置 29 | ///--------------------------------------------------------------------------------------- 30 | 31 | /** 设置 统计场景类型,默认为普通应用统计:E_UM_NORMAL 32 | @param 游戏统计必须设置为:E_UM_GAME. 33 | @return void. 34 | */ 35 | + (void)setScenarioType:(eScenarioType)eSType; 36 | 37 | /** 开启CrashReport收集, 默认YES(开启状态). 38 | @param value 设置为NO,可关闭友盟CrashReport收集功能. 39 | @return void. 40 | */ 41 | + (void)setCrashReportEnabled:(BOOL)value; 42 | 43 | #pragma mark event logs 44 | ///--------------------------------------------------------------------------------------- 45 | /// @name 页面计时 46 | ///--------------------------------------------------------------------------------------- 47 | 48 | /** 手动页面时长统计, 记录某个页面展示的时长. 49 | @param pageName 统计的页面名称. 50 | @param seconds 单位为秒,int型. 51 | @return void. 52 | */ 53 | + (void)logPageView:(NSString *)pageName seconds:(int)seconds; 54 | 55 | /** 自动页面时长统计, 开始记录某个页面展示时长. 56 | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 57 | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: 58 | @param pageName 统计的页面名称. 59 | @return void. 60 | */ 61 | + (void)beginLogPageView:(NSString *)pageName; 62 | 63 | /** 自动页面时长统计, 结束记录某个页面展示时长. 64 | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 65 | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: 66 | @param pageName 统计的页面名称. 67 | @return void. 68 | */ 69 | + (void)endLogPageView:(NSString *)pageName; 70 | 71 | 72 | ///--------------------------------------------------------------------------------------- 73 | /// @name 事件统计 74 | ///--------------------------------------------------------------------------------------- 75 | 76 | /** 自定义事件,数量统计. 77 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID 78 | 79 | @param eventId 网站上注册的事件Id. 80 | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. 81 | @param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。 82 | @return void. 83 | */ 84 | + (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId; 85 | /** 自定义事件,数量统计. 86 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID 87 | */ 88 | + (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId; 89 | 90 | /** 自定义事件,数量统计. 91 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID 92 | */ 93 | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes; 94 | 95 | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number; 96 | 97 | /** 自定义事件,时长统计. 98 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 99 | beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来 100 | 101 | @param eventId 网站上注册的事件Id. 102 | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. 103 | @param primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey 104 | @param millisecond 自己计时需要的话需要传毫秒进来 105 | @return void. 106 | 107 | @warning 每个event的attributes不能超过10个 108 | eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符) 109 | id, ts, du是保留字段,不能作为eventId及key的名称 110 | */ 111 | + (void)beginEvent:(NSString *)eventId; 112 | 113 | /** 自定义事件,时长统计. 114 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 115 | */ 116 | 117 | + (void)endEvent:(NSString *)eventId; 118 | /** 自定义事件,时长统计. 119 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 120 | */ 121 | 122 | + (void)beginEvent:(NSString *)eventId label:(NSString *)label; 123 | /** 自定义事件,时长统计. 124 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 125 | */ 126 | 127 | + (void)endEvent:(NSString *)eventId label:(NSString *)label; 128 | /** 自定义事件,时长统计. 129 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 130 | */ 131 | 132 | + (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes; 133 | /** 自定义事件,时长统计. 134 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 135 | */ 136 | 137 | + (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName; 138 | /** 自定义事件,时长统计. 139 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 140 | */ 141 | 142 | + (void)event:(NSString *)eventId durations:(int)millisecond; 143 | /** 自定义事件,时长统计. 144 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 145 | */ 146 | 147 | + (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond; 148 | /** 自定义事件,时长统计. 149 | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. 150 | */ 151 | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond; 152 | 153 | 154 | #pragma mark - user methods 155 | /** active user sign-in. 156 | 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数 157 | @param puid : user's ID 158 | @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。 159 | @return void. 160 | */ 161 | + (void)profileSignInWithPUID:(NSString *)puid; 162 | + (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider; 163 | 164 | /** active user sign-off. 165 | 停止sign-in PUID的统计 166 | @return void. 167 | */ 168 | + (void)profileSignOff; 169 | 170 | ///--------------------------------------------------------------------------------------- 171 | /// @name 地理位置设置 172 | /// 需要链接 CoreLocation.framework 并且 #import 173 | ///--------------------------------------------------------------------------------------- 174 | 175 | /** 设置经纬度信息 176 | @param latitude 纬度. 177 | @param longitude 经度. 178 | @return void 179 | */ 180 | + (void)setLatitude:(double)latitude longitude:(double)longitude; 181 | 182 | /** 设置经纬度信息 183 | @param location CLLocation 经纬度信息 184 | @return void 185 | */ 186 | + (void)setLocation:(CLLocation *)location; 187 | 188 | ///--------------------------------------------------------------------------------------- 189 | /// @name Utility函数 190 | ///--------------------------------------------------------------------------------------- 191 | 192 | /** 判断设备是否越狱,依据是否存在apt和Cydia.app 193 | */ 194 | + (BOOL)isJailbroken; 195 | 196 | /** 判断App是否被破解 197 | */ 198 | + (BOOL)isPirated; 199 | 200 | /** 设置 app secret 201 | @param secret string 202 | @return void. 203 | */ 204 | + (void)setSecret:(NSString *)secret; 205 | 206 | + (void)setCrashCBBlock:(CallbackBlock)cbBlock; 207 | 208 | /** DeepLink事件 209 | @param link 唤起应用的link 210 | @return void. 211 | */ 212 | + (void)onDeepLinkReceived:(NSURL *)link; 213 | 214 | @end 215 | -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Versions/A/Headers/MobClickGameAnalytics.h: -------------------------------------------------------------------------------- 1 | // 2 | // MobClickGameAnalytics.h 3 | // Analytics 4 | // 5 | // Copyright (C) 2010-2014 Umeng.com . All rights reserved. 6 | 7 | @interface MobClickGameAnalytics : NSObject 8 | 9 | #pragma mark - account function 10 | /** active user sign-in. 11 | 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数 12 | @param puid : user's ID 13 | @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。 14 | @return void. 15 | */ 16 | + (void)profileSignInWithPUID:(NSString *)puid; 17 | + (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider; 18 | 19 | /** active user sign-off. 20 | 停止sign-in PUID的统计 21 | @return void. 22 | */ 23 | + (void)profileSignOff; 24 | 25 | #pragma mark GameLevel methods 26 | ///--------------------------------------------------------------------------------------- 27 | /// @name set game level 28 | ///--------------------------------------------------------------------------------------- 29 | 30 | /** 设置玩家的等级. 31 | */ 32 | 33 | /** 设置玩家等级属性. 34 | @param level 玩家等级 35 | @return void 36 | */ 37 | + (void)setUserLevelId:(int)level; 38 | 39 | ///--------------------------------------------------------------------------------------- 40 | /// @name 关卡统计 41 | ///--------------------------------------------------------------------------------------- 42 | 43 | /** 记录玩家进入关卡,通过关卡及失败的情况. 44 | */ 45 | 46 | 47 | /** 进入关卡. 48 | @param level 关卡 49 | @return void 50 | */ 51 | + (void)startLevel:(NSString *)level; 52 | 53 | /** 通过关卡. 54 | @param level 关卡,如果level == nil 则为当前关卡 55 | @return void 56 | */ 57 | + (void)finishLevel:(NSString *)level; 58 | 59 | /** 未通过关卡. 60 | @param level 关卡,如果level == nil 则为当前关卡 61 | @return void 62 | */ 63 | 64 | + (void)failLevel:(NSString *)level; 65 | 66 | 67 | #pragma mark - 68 | #pragma mark Pay methods 69 | 70 | ///--------------------------------------------------------------------------------------- 71 | /// @name 支付统计 72 | ///--------------------------------------------------------------------------------------- 73 | 74 | /** 记录玩家交易兑换货币的情况 75 | @param currencyAmount 现金或等价物总额 76 | @param currencyType 为ISO4217定义的3位字母代码,如CNY,USD等(如使用其它自定义等价物作为现金,可使用ISO4217中未定义的3位字母组合传入货币类型) 77 | @param virtualAmount 虚拟币数量 78 | @param channel 支付渠道 79 | @param orderId 交易订单ID 80 | @return void 81 | */ 82 | + (void)exchange:(NSString *)orderId currencyAmount:(double)currencyAmount currencyType:(NSString *)currencyType virtualCurrencyAmount:(double)virtualAmount paychannel:(int)channel; 83 | 84 | /** 玩家支付货币兑换虚拟币. 85 | @param cash 真实货币数量 86 | @param source 支付渠道 87 | @param coin 虚拟币数量 88 | @return void 89 | */ 90 | 91 | + (void)pay:(double)cash source:(int)source coin:(double)coin; 92 | 93 | /** 玩家支付货币购买道具. 94 | @param cash 真实货币数量 95 | @param source 支付渠道 96 | @param item 道具名称 97 | @param amount 道具数量 98 | @param price 道具单价 99 | @return void 100 | */ 101 | + (void)pay:(double)cash source:(int)source item:(NSString *)item amount:(int)amount price:(double)price; 102 | 103 | 104 | #pragma mark - 105 | #pragma mark Buy methods 106 | 107 | ///--------------------------------------------------------------------------------------- 108 | /// @name 虚拟币购买统计 109 | ///--------------------------------------------------------------------------------------- 110 | 111 | /** 记录玩家使用虚拟币的消费情况 112 | */ 113 | 114 | 115 | /** 玩家使用虚拟币购买道具 116 | @param item 道具名称 117 | @param amount 道具数量 118 | @param price 道具单价 119 | @return void 120 | */ 121 | + (void)buy:(NSString *)item amount:(int)amount price:(double)price; 122 | 123 | 124 | #pragma mark - 125 | #pragma mark Use methods 126 | 127 | 128 | ///--------------------------------------------------------------------------------------- 129 | /// @name 道具消耗统计 130 | ///--------------------------------------------------------------------------------------- 131 | 132 | /** 记录玩家道具消费情况 133 | */ 134 | 135 | 136 | /** 玩家使用虚拟币购买道具 137 | @param item 道具名称 138 | @param amount 道具数量 139 | @param price 道具单价 140 | @return void 141 | */ 142 | 143 | + (void)use:(NSString *)item amount:(int)amount price:(double)price; 144 | 145 | 146 | #pragma mark - 147 | #pragma mark Bonus methods 148 | 149 | 150 | ///--------------------------------------------------------------------------------------- 151 | /// @name 虚拟币及道具奖励统计 152 | ///--------------------------------------------------------------------------------------- 153 | 154 | /** 记录玩家获赠虚拟币及道具的情况 155 | */ 156 | 157 | 158 | /** 玩家获虚拟币奖励 159 | @param coin 虚拟币数量 160 | @param source 奖励方式 161 | @return void 162 | */ 163 | 164 | + (void)bonus:(double)coin source:(int)source; 165 | 166 | /** 玩家获道具奖励 167 | @param item 道具名称 168 | @param amount 道具数量 169 | @param price 道具单价 170 | @param source 奖励方式 171 | @return void 172 | */ 173 | 174 | + (void)bonus:(NSString *)item amount:(int)amount price:(double)price source:(int)source; 175 | 176 | #pragma mark DEPRECATED 177 | 178 | //已经被新的setUserLevelId:方法替代,请使用新的API。 179 | + (void)setUserLevel:(NSString *)level; 180 | 181 | //已经被新的active user方法替代,请使用新的API。 182 | + (void)setUserID:(NSString *)userId sex:(int)sex age:(int)age platform:(NSString *)platform; 183 | 184 | @end 185 | -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Versions/A/UMAnalytics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Versions/A/UMAnalytics -------------------------------------------------------------------------------- /tongji/iOS/analytics/analytics_ios_5.5.0/UMAnalytics.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/1.5.0_a340324cb9_20180329145728: -------------------------------------------------------------------------------- 1 | 1.5.0 2 | -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/UMCommon: -------------------------------------------------------------------------------- 1 | Versions/Current/UMCommon -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/Versions/A/Headers/UMCommon.h: -------------------------------------------------------------------------------- 1 | // 2 | // UMCommon.h 3 | // UMCommon 4 | // 5 | // Created by San Zhang on 11/2/16. 6 | // Copyright © 2016 UMeng. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for UMCommon. 12 | FOUNDATION_EXPORT double UMCommonVersionNumber; 13 | 14 | //! Project version string for UMCommon. 15 | FOUNDATION_EXPORT const unsigned char UMCommonVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | #import 20 | -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/Versions/A/Headers/UMConfigure.h: -------------------------------------------------------------------------------- 1 | // 2 | // UMConfigure.h 3 | // UMCommon 4 | // 5 | // Created by San Zhang on 9/6/16. 6 | // Copyright © 2016 UMeng. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UMConfigure : NSObject 12 | 13 | /** 初始化友盟所有组件产品 14 | @param appKey 开发者在友盟官网申请的appkey. 15 | @param channel 渠道标识,可设置nil表示"App Store". 16 | */ 17 | + (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel; 18 | 19 | /** 设置是否在console输出sdk的log信息. 20 | @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO. 21 | */ 22 | + (void)setLogEnabled:(BOOL)bFlag; 23 | 24 | /** 设置是否对日志信息进行加密, 默认NO(不加密). 25 | @param value 设置为YES, umeng SDK 会将日志信息做加密处理 26 | */ 27 | + (void)setEncryptEnabled:(BOOL)value; 28 | 29 | + (NSString *)umidString; 30 | 31 | /** 32 | 集成测试需要device_id 33 | */ 34 | + (NSString*)deviceIDForIntegration; 35 | 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/Versions/A/UMCommon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/Versions/A/UMCommon -------------------------------------------------------------------------------- /tongji/iOS/common/common_ios_1.5.0/normal/UMCommon.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/1.0.5_7e4af54c27fe03856bc628f6c86e7c3020180108: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/1.0.5_7e4af54c27fe03856bc628f6c86e7c3020180108 -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/Headers/EnvExport.h: -------------------------------------------------------------------------------- 1 | // 2 | // EnvExport.h 3 | // SecurityEnvTest 4 | // 5 | // Created by asherli on 17/9/1. 6 | // Copyright © 2017年 alibaba. All rights reserved. 7 | // 8 | 9 | #ifndef EnvExport_h 10 | #define EnvExport_h 11 | 12 | #define SEC_ERROR_UMID_OK 0 13 | #define SEC_ERROR_UMID_UNKNOWN_ERR 1 14 | 15 | #endif /* EnvExport_h */ 16 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/Headers/ISecurityEnvInitListener.h: -------------------------------------------------------------------------------- 1 | // 2 | // ISecurityEnvInitListener.h 3 | // SecurityEnvSDK 4 | // 5 | // Created by asherli on 17/9/1. 6 | // Copyright © 2017年 alibaba. All rights reserved. 7 | // 8 | 9 | #ifndef SECURITYENV_ISECURITY_ENV_INITLISTENER_H 10 | #define SECURITYENV_ISECURITY_ENV_INITLISTENER_H 11 | 12 | #import 13 | #include "EnvExport.h" 14 | 15 | @interface ISecurityEnvInitListener : NSObject 16 | 17 | - (void) onUMIDInitFinished : (const char *) strToken : (int) status; 18 | 19 | @end 20 | 21 | #endif /* SECURITYENV_ISECURITY_ENV_INITLISTENER_H */ 22 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/Headers/SecurityEnvSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // SecurityEnvSDK.h 3 | // SecurityGuardMain 4 | // 5 | // Created by asherli on 2017/07/12. 6 | // Copyright © 2016年 alibaba. All rights reserved. 7 | // 8 | 9 | #ifndef SECURITYENV_SECURITY_ENV_SDK_H 10 | #define SECURITYENV_SECURITY_ENV_SDK_H 11 | 12 | #import 13 | #import "ISecurityEnvInitListener.h" 14 | 15 | @interface SecurityEnvSDK : NSObject 16 | 17 | - (NSInteger) initSync; 18 | 19 | - (void) initASync : (ISecurityEnvInitListener *) listener; 20 | 21 | - (NSString*) getToken; 22 | 23 | // build by mtl 24 | 25 | @end 26 | 27 | #endif /* SECURITYENV_SECURITY_ENV_SDK_H */ 28 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.alimobilesec.SecurityEnvSDK 7 | CFBundleName 8 | SecurityEnvSDK 9 | CFBundleShortVersionString 10 | 1.0 11 | 12 | 13 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module SecurityEnvSDK { 2 | umbrella header "SecurityEnvSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/SecurityEnvSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/thirdparties/thirdparties_ios_1.0.5/SecurityEnvSDK.framework/SecurityEnvSDK -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/1.1.0_284361e9aad9bf95a33916c655ecefb720180108: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/1.1.0_284361e9aad9bf95a33916c655ecefb720180108 -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/UTDID: -------------------------------------------------------------------------------- 1 | Versions/Current/UTDID -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/A/Headers/AidProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // AidProtocol.h 3 | // UtdidSDK 4 | // 5 | // Created by ALLEN on 14-12-22. 6 | // Copyright (c) 2014年 Alvin. All rights reserved. 7 | // 8 | 9 | #ifndef AidProtocol_h 10 | #define AidProtocol_h 11 | 12 | #define EVENT_REQUEST_STARTED 1000 13 | #define EVENT_REQUEST_SUCCESS 1001 14 | #define EVENT_REQUEST_FAILED 1002 15 | #define EVENT_NETWORK_ERROR 1003 16 | 17 | @protocol AidProtocolDelegate 18 | @required 19 | - (void) onAidEventChanged:(NSInteger)eventId 20 | aid:(NSString *)aid; 21 | @end 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/A/Headers/UTDevice.h: -------------------------------------------------------------------------------- 1 | // 2 | // UTDevice.h 3 | // 4 | // 5 | // Created by Alvin on 4/21/13. 6 | // 7 | // 设备信息的分装类:sdk合作开发需要用这个类提供的设备信息接口 8 | 9 | // Version:utdid4all-1.1.0 10 | 11 | #ifndef UTDIDDevice_h 12 | #define UTDIDDevice_h 13 | 14 | #import "AidProtocol.h" 15 | 16 | @interface UTDevice : NSObject 17 | 18 | /** 19 | * @brief 获取SDK生成的设备唯一标识. 20 | * 21 | * @warning 调用说明:这个设备唯一标识是持久的,并且格式安全,iOS6以及以下,多应用互通. 22 | * 23 | * 调用顺序:utdid任意时刻都可以调用. 24 | * 25 | * @return 24字节的设备唯一标识. 26 | */ 27 | +(NSString *) utdid; 28 | 29 | /** 30 | * @brief 同步获得AID. 31 | * 32 | * @warning 调用说明:若本地端没有最新AID,将耗费远程通信时间并阻塞线程,建议将此调用置于非主线程,或使用{@link getAidAsync}异步获得AID。 33 | * 34 | * 调用顺序:aid任意时刻都可以调用. 35 | * 36 | * @return AID. 37 | */ 38 | +(NSString *) aid:(NSString *)appName 39 | token:(NSString *)token; 40 | 41 | /** 42 | * @brief 异步请求AID. 43 | * 44 | * @warning 调用说明:若本地端没有最新AID,将建立异步请求获得AID, 45 | * 46 | * 调用顺序:aidAsync任意时刻都可以调用. 47 | * 48 | * @return AID. 49 | */ 50 | +(void) aidAsync:(NSString *)appName 51 | token:(NSString *)token 52 | aidDelegate:(id)aidDelegate; 53 | 54 | @end 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/A/Resources/Info.plist -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/A/UTDID: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/A/UTDID -------------------------------------------------------------------------------- /tongji/iOS/thirdparties/thirdparties_ios_1.0.5/UTDID.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/en.lproj/UMAnalyticsLog.strings: -------------------------------------------------------------------------------- 1 | /* 2 | UMCommonLog.strings 3 | testUMCommonLog 4 | 5 | Created by 张军华 on 2017/12/11. 6 | Copyright © 2017年 张军华. All rights reserved. 7 | */ 8 | 9 | //init 20000 - 20250 10 | analytics_init_error1 = "[AIE10012]Latitude或者longitude设置错误 https://developer.umeng.com/docs/66632/detail/66999?um_channel=sdk"; 11 | analytics_init_error2 = "[AIE10013]puid 为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 12 | analytics_init_error3 = "[AIE10013]puid 大于64字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 13 | analytics_init_error4 = "[AIE10013]provider 大于32字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 14 | analytics_init_error5 = "[AIE10005]请设置Dplus 场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk"; 15 | analytics_init_error6 = "数据库连接失败"; 16 | analytics_init_error7 = "数据库已经打开"; 17 | analytics_init_error8 = "修改表失败,TABLE %@ with columnName(%@)"; 18 | analytics_init_error9 = "数据库运行失败,sql: %@, error: %s,errorCode:%d"; 19 | analytics_init_error10 = "%@ 表创建失败"; 20 | analytics_init_error11 = "%@ 表删除失败"; 21 | analytics_init_error12 = "sql执行失败 %s"; 22 | analytics_init_error13 = "%@ 表写入失败"; 23 | analytics_init_error14 = "%@ 表修改失败"; 24 | analytics_init_error15 = "[AIE10011]DeepLink url 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk"; 25 | analytics_init_error16 = "[AIE10011]DeepLink eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk"; 26 | analytics_init_error17 = "[AIE10006]%@是SDK保留字段,不能作为eventId使用 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 27 | analytics_init_error18 = "[AIE1006]attributes中value 不能为 NSNull https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk"; 28 | analytics_init_error19 = "[AIE10001]appkey 不能为空 https://developer.umeng.com/docs/66632/detail/66982?um_channel=sdk"; 29 | analytics_init_error20 = "[AIE10005]MobClickGameAnalytics 是游戏API,请先设置游戏场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk"; 30 | analytics_init_error21 = "[AIE10014]MobClickGameAnalytics orderId 不能大于 1024字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 31 | analytics_init_error22 = "[AIE10014]MobClickGameAnalytics currencyType 不能大于 3字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 32 | analytics_init_error23 = "[AIE10005]DplusMobClick 是Dplus API,请先设置Dplus场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk"; 33 | 34 | analytics_init_error24 = "[AIE1008]Dplus key:%@ 是预制字段,不能使用 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk"; 35 | analytics_init_error25 = "[AIE10008]Dplus property value只能使用NSString,NSNumber,NSArray类型 NSArray只能是(NSString,NSNumber)类型且不能为空 https://developer.umeng.com/docs/66993/detail/id?um_channel=sdk"; 36 | analytics_init_error26 = "[AIE10008]Dplus property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 37 | analytics_init_error27 = "[AIE10008]Dplus property的value数组只能是NSString类型或NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 38 | //analytics_init_error27 = "[AIE10027]Dplus array内容只能是NSString 或者 NSNumber类型"; 39 | //analytics_init_error28 = "[AIE10028]Dplus 事件的key和value 必须是string类型,key不能大于%@字节,value不能大于%@字节"; 40 | //analytics_init_error29 = "[AIE10029]Dplus property的value只能是NSString或者NSNumber类型且不能为空"; 41 | analytics_init_error30 = "[AIE10010]Dplus eventList必须是NSArray类型 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 42 | analytics_init_error31 = "[AIE10010]Dplus eventList已存入5个,无法再添加 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 43 | analytics_init_error32 = "[AIE10008]Dplus property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 44 | analytics_init_error33 = "[AIE10008]Dplus propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 45 | 46 | analytics_init_error34 = "[AIE10006]关键字id, ts, du, dplus_st, %@是SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 47 | analytics_init_error35 = "[AIE10006]事件的key和value 必须是string类型,key不能大于%ld字节,value不能大于%ld字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk"; 48 | analytics_init_error36 = "[AIE10008]Dplus eventName为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 49 | analytics_init_error37 = "[AIE10006]关键字id, ts, du, dplus_st是友盟SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 50 | analytics_init_error38 = "make envelope failed code:%d"; 51 | analytics_init_error39 = "获取内容失败"; 52 | analytics_init_error40 = "[AIE10006]eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 53 | analytics_init_error41 = "[AIE10011]DeepLink 请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk"; 54 | analytics_init_error42 = "[AIE10010]Dplus eventList参数错误 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 55 | 56 | analytics_init_error43 = "[AIE10009]Dplus 请检查预置事件参数 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 57 | analytics_init_error44 = "[AIE10009]Dplus 预置事件的key和value 必须是string类型,key不能大于%d字节,value不能大于%d字节 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 58 | analytics_init_error45 = "[AIE10009]Dplus 预置事件property的value只能是NSString或者NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 59 | analytics_init_error46 = "[AIE10009]Dplus 预支事件property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 60 | analytics_init_error47 = "[AIE10009]Dplus 预置事件property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 61 | analytics_init_error48 = "[AIE10009]Dplus 预置事件property为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 62 | analytics_init_error49 = "[AIE10009]Dplus 请检查预置事件property中的key和value是否正确 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 63 | analytics_init_error50 = "[AIE10009]Dplus 预置事件propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 64 | 65 | analytics_init_error51 = "[AIE10007]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk"; 66 | analytics_init_error52 = "[AIE10007]pageName不能为空 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk"; 67 | analytics_init_error53 = "[AIE10008]Dplus property为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 68 | 69 | analytics_init_error54 = "[AIE10006]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 70 | 71 | analytics_init_error55 = "[AIE10014]MobClickGameAnalytics level不能为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 72 | analytics_init_error56 = "[AIE10014]MobClickGameAnalytics 请检查currencyAmount和virtualAmount是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 73 | analytics_init_error57 = "[AIE10014]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 74 | 75 | 76 | 77 | 78 | 79 | 80 | analytics_init_warn1 = "provider 为空"; 81 | analytics_init_warn3 = "错误信息表内容不是jsonString"; 82 | analytics_init_warn5 = "请检查property中的key和value值"; 83 | analytics_init_warn6 = "app已经启动"; 84 | analytics_init_warn7 = "attributes中value 不能为空"; 85 | analytics_init_warn8 = "setUserLevel 方法已下线,请使用setUserLevelId方法"; 86 | analytics_init_warn9 = "setUserID 方法已下线,请使用其他相关User的方法"; 87 | 88 | analytics_init_warn10 = "[AIE10010]Dplus eventList为空 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 89 | analytics_init_warn11 = "Dplus value:%@ 超出限制字节,已被截取到%ld字节"; 90 | analytics_init_warn12 = "Dplus array内容只能是NSString类型"; 91 | analytics_init_warn13 = "Dplus property为空"; 92 | analytics_init_warn14 = "Dplus 请检查property中的key和value是否正确"; 93 | analytics_init_warn15 = "Dplus propertyName在Property中不存在"; 94 | analytics_init_warn16 = "Dplus propertyName在PreProperty中不存在"; 95 | analytics_init_warn17 = "Dplus propertyName在SuperProperty中不存在"; 96 | 97 | analytics_init_warn18 = "event label (%@) 不能大于%d字节"; 98 | analytics_init_warn19 = "event事件在8小时内最多发送%d"; 99 | analytics_init_warn20 = "track事件在8小时内最多发送%d"; 100 | analytics_init_warn21 = "sessionId为空"; 101 | analytics_init_warn22 = "不确定event 类型"; 102 | 103 | analytics_init_warn23 = "[AIE10010]Dplus %@ 过长,截取%ld字节 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | analytics_init_info1 = "超级属性注册成功"; 114 | analytics_init_info2 = "缓存数据存储完成"; 115 | analytics_init_info3 = "session 开始:%@"; 116 | analytics_init_info4 = "session 结束:%@"; 117 | analytics_init_info5 = "Dplus registerPreProperty成功"; 118 | analytics_init_info6 = "Dplus unregisterSuperProperty成功"; 119 | analytics_init_info7 = "Dplus unregisterPreProperty成功"; 120 | analytics_init_info8 = "Dplus getSuperProperty成功"; 121 | analytics_init_info9 = "dladdr(%p, ...) failed"; 122 | analytics_init_info10 = "Invalid Mach-O header magic value: %x"; 123 | analytics_init_info11 = "LC_SEGMENT 0x%08x"; 124 | analytics_init_info12 = "数据过大,进行拆包"; 125 | analytics_init_info13 = "数据过大,进行Dplus拆包"; 126 | analytics_init_info14 = "数据过大,进行analytics拆包"; 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | analytics_init_debug1 = "UMAnalytics sdk版本号:%@,app 版本号:%@"; 139 | analytics_init_debug2 = "UMAnalytics发送配置:sdk_version:%@, device_id:%@, model:%@, os_version:%@, app_version:%@"; 140 | analytics_init_debug3 = "UMAnalytics统计发送内容:active_user:%@, activate_msg:%@, sessions:%@, ekv:%@"; 141 | analytics_init_debug4 = "UMAnalytics游戏统计发送内容:gkv:%@"; 142 | analytics_init_debug5 = "UMAnalytics Dplus发送内容:Dplus:%@"; 143 | analytics_init_debug6 = "UMAnalytics error:%@"; 144 | analytics_init_debug7 = "UMAnalytics event:%@"; 145 | analytics_init_debug8 = "UMAnalytics session:%@"; 146 | analytics_init_debug9 = "UMAnalytics ekv:%@"; 147 | analytics_init_debug10 = "UMAnalytics gkv:%@"; 148 | analytics_init_debug11 = "UMAnalytics app被杀死"; 149 | analytics_init_debug12 = "UMAnalytics pageDuration:%@"; 150 | analytics_init_debug13 = "UMAnalytics pageBegin=%@, beginTime:%@"; 151 | analytics_init_debug14 = "UMAnalytics pageEnd=%@, duration:%lld"; 152 | analytics_init_debug15 = "UMAnalytics eventBegin eventId=%@, label=%@"; 153 | analytics_init_debug16 = "UMAnalytics ekvBegin ekvEvent.id=%@, ekvEvent.key=%@"; 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | analytics_init_verbose1 = "UMAnalytics 发送日志:%@"; 167 | analytics_init_verbose2 = "UIApplicationWillTerminateNotification arrived"; 168 | analytics_init_verbose3 = "app inactivate enter"; 169 | analytics_init_verbose4 = "viewDidAppear is: %@"; 170 | analytics_init_verbose5 = "viewDidDisappear is: %@"; 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/en.lproj/UMCommonLog.strings: -------------------------------------------------------------------------------- 1 | /* 2 | UMCommonLog.strings 3 | testUMCommonLog 4 | 5 | Created by 张军华 on 2017/12/11. 6 | Copyright © 2017年 张军华. All rights reserved. 7 | */ 8 | 9 | 10 | 11 | //////////////////////////////////////////////// 12 | //init begin 13 | //init 20000 - 20250 14 | common_init_error1 = "[CIE10001]用户传入的appKey不合法,请到官网申请appkey,以免影响自己App的统计数据。网址如下:https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk"; 15 | 16 | common_init_warn1 = "当前传入的appkey和用户以前设置过的appkey不一样。"; 17 | common_init_warn2 = "当前传入的channel渠道为空。"; 18 | common_init_warn3 = "检测用户正在使用UI无埋点功能,检测到UMABTest.framework和UMAutoEventBinding.framework同时并存,在需要release发布需要删除UMABTest.framework。"; 19 | 20 | common_init_info1 = "正在使用国内Common组件化SDK版本。"; 21 | common_init_info2 = "正在使用国际化Common组件化SDK版本。"; 22 | 23 | common_init_debug1 = "UMCommon版本号:%@。"; 24 | 25 | common_init_verbose1 = ""; 26 | 27 | //init end 28 | //////////////////////////////////////////////// 29 | 30 | //////////////////////////////////////////////// 31 | //integration_test begin 32 | common_integrationtest_error1 = "experiment params invalid。"; 33 | common_integrationtest_error2 = "unknow experiment group key。"; 34 | common_integrationtest_error3 = "unknow experiment test key。"; 35 | common_integrationtest_error4 = "experiment params invalid。"; 36 | 37 | //client_test end 38 | //////////////////////////////////////////////// 39 | 40 | 41 | //////////////////////////////////////////////// 42 | //deviceToken begin 43 | common_deviceToken_error1 = "error,tokenStringWithData, token inValid! [%ld]。"; 44 | 45 | //deviceToken end 46 | //////////////////////////////////////////////// 47 | 48 | 49 | //////////////////////////////////////////////// 50 | //Envelope begin 51 | 52 | common_envelope_error1 = "信封json创建失败"; 53 | common_envelope_error2 = "信封raw size:(%d)超过最大限制,创建失败"; 54 | common_envelope_error3 = "信封压缩数据失败"; 55 | common_envelope_error4 = "信封打包失败"; 56 | common_envelope_error5 = "信封创建失败"; 57 | common_envelope_error6 = "信封size:(%d)超过最大限制,创建失败"; 58 | common_envelope_error7 = "发送信封(%@)失败"; 59 | common_envelope_error8 = "网络请求失败(Response Applog) {\"fail\": \"error\"}"; 60 | common_envelope_error9 = "网络请求失败(Response Applog) {\"fail\": \"statusCode\":%d}"; 61 | common_envelope_error10 = "网络请求失败(Error Applog) %@"; 62 | 63 | common_envelope_warn1 = "信封数量超过最大限制%d,并且删除此文件名为:%@"; 64 | 65 | common_envelope_info1 = "准备发送信封"; 66 | common_envelope_info2 = "信封名字的前缀:(%@)"; 67 | 68 | common_envelope_debug1 = "当前正在发送网络请求,还不能打包信封(network running=YES)。"; 69 | common_envelope_debug2 = "当前网络状态不可用。"; 70 | common_envelope_debug3 = "当前本地有信封存在,还不能打包新的信封。"; 71 | common_envelope_debug4 = "生成信封(%@)成功"; 72 | common_envelope_debug5 = "准备发送信封(%@)..."; 73 | common_envelope_debug6 = "发送信封(%@)成功"; 74 | common_envelope_debug7 = "网络请求成功(Response Applog) {\"success\": \"ok\"}"; 75 | common_envelope_debug8 = "将要打包的有状态数据:%@"; 76 | common_envelope_debug9 = "信封SerialNum:%d"; 77 | 78 | common_envelope_verbose1 = ""; 79 | 80 | //Envelope end 81 | //////////////////////////////////////////////// 82 | 83 | //////////////////////////////////////////////// 84 | //SLEnvelope begin 85 | 86 | common_slenvelope_error1 = "无状态信封json创建失败"; 87 | common_slenvelope_error2 = "无状态信封raw size:(%d)超过最大限制,创建失败"; 88 | common_slenvelope_error3 = "无状态信封压缩数据失败"; 89 | common_slenvelope_error4 = "无状态信封打包失败"; 90 | common_slenvelope_error5 = "无状态信封创建失败"; 91 | common_slenvelope_error6 = "无状态信封size:(%d)超过最大限制,创建失败"; 92 | common_slenvelope_error7 = "发送无状态信封(%@)失败"; 93 | common_slenvelope_error8 = "无状态信封(%@)不存在"; 94 | common_slenvelope_error9 = "网络请求失败(SLResponse Applog) {\"fail\": \"statusCode\":%d}"; 95 | 96 | common_slenvelope_warn1 = ""; 97 | 98 | common_slenvelope_info1 = ""; 99 | 100 | 101 | common_slenvelope_debug1 = "生成无状态信封(%@)成功"; 102 | common_slenvelope_debug2 = "准备发送无状态信封(%@)..."; 103 | common_slenvelope_debug3 = "发送无状态信封(%@)成功"; 104 | common_slenvelope_debug4 = "网络请求成功(SLResponse Applog) {\"success\": \"ok\"}"; 105 | common_slenvelope_debug5 = "将要打包的无状态数据:%@"; 106 | 107 | common_slenvelope_verbose1 = ""; 108 | 109 | 110 | //SLEnvelope end 111 | //////////////////////////////////////////////// 112 | 113 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/en.lproj/UMPushLog.strings: -------------------------------------------------------------------------------- 1 | /* 2 | UMPushLog.strings 3 | UMessage 4 | 5 | Created by shile on 2017/12/11. 6 | Copyright © 2017年 shile. All rights reserved. 7 | */ 8 | 9 | //tag&alias 10 | push_tagandalias_debug1 = "%@ 方法调用参数是: [%@]"; 11 | push_tagandalias_debug2 = "%@ 方法调用成功, 返回的内容是:[%@], remainNumber [%ld]!"; 12 | push_tagandalias_debug3 = "%@ 方法调用成功,name [%@] type [%@]!"; 13 | 14 | push_tagandalias_warning1 = "%@ 长度为0"; 15 | push_tagandalias_warning2 = "%@ 长度超过了限制[%ld],长度是[%ld]"; 16 | push_tagandalias_warning3 = "%@ 类型不为NSString或者为nil。"; 17 | 18 | push_tagandalias_error1 = "[PTAE10001] %@ 方法调用错误 ,token 为nil!,请查看:https://developer.umeng.com/docs/66632/detail/66964?um_channel=sdk"; 19 | push_tagandalias_error2 = " %@ 方法调用错误 ,服务器异常或禁止请求,请检查是否调用错误!"; 20 | push_tagandalias_error3 = "%@ 方法调用错误 ,error 是 %@,responseObject 内容是 %@!"; 21 | push_tagandalias_error4 = "%@ 方法调用错误 ,请求过快,请检查是否调用正确!"; 22 | 23 | push_tagandalias_error6 = "%@ 失败,name [%@] type [%@]![%@]"; 24 | 25 | 26 | //应用内消息 27 | push_innermessage_warning1 = "已经有相同的label存在,label为%@:"; 28 | 29 | push_innermessage_debug1 = "失败!error code:%d,sql:%@, result,SQL);"; 30 | 31 | push_innermessage_error1 = "应用内消息统计回传失败,responseObject[%@],error[%@]"; 32 | push_innermessage_error2 = "获取UPush应用内 开屏 消息失败,请检查是否在后台创建消息,如不需要开屏功能,请移除相关代码!"; 33 | push_innermessage_error3 = "获取UPush应用内 开屏 消息失败 [%@]!"; 34 | push_innermessage_error4 = "获取UPush应用内 插屏 消息失败 [%@]!"; 35 | push_innermessage_error5 = "label 格式错误,label只能为字符串,且不能为nil,或空串!"; 36 | push_innermessage_error6 = "每个app只允许创建10个CardMessage!"; 37 | 38 | 39 | //UMessage 40 | push_umessage_info1 = "UMPush版本号:%@"; 41 | 42 | push_umessage_debug1 = "payload 内容是: [%@]"; 43 | push_umessage_debug2 = "launchOptions 为 nil 或 class [%@] 不是 NSDictionary"; 44 | push_umessage_debug3 = "消息到达!内容是:[%@]"; 45 | push_umessage_debug4 = "这条消息已经上传到服务器了!msgid是:%@"; 46 | push_umessage_debug5 = "UMPushMessage 内容是:[%@]"; 47 | push_umessage_debug6 = "消息中不包含Alert, 内容是:[%@]"; 48 | push_umessage_debug7 = "今天已经回传过 register 请求了"; 49 | push_umessage_debug8 = "今天已经回传过 launch 请求了"; 50 | push_umessage_debug9 = "responseDic 返回格式错误,内容是:[%@]"; 51 | push_umessage_debug10 = "responseDic内容是:[%@]"; 52 | push_umessage_debug11 = "clickPolicy 详情:[%d]"; 53 | push_umessage_debug12 = "消息不属于友盟!"; 54 | push_umessage_debug13 = "register devicetoken [%@]!"; 55 | push_umessage_debug14 = "register AppKey [%@]!"; 56 | 57 | push_umessage_error1 = "userInfo 不包含msgid,或者消息不来自UPush!"; 58 | push_umessage_error3 = "UMPushMessage init异常:[%@]"; 59 | push_umessage_error4 = "application:didFailToRegisterForRemoteNotificationsWithError: [%@]"; 60 | push_umessage_error5 = "token错误! [%ld]"; 61 | push_umessage_error6 = "tagClass错误! tagClass是 [%@]"; 62 | push_umessage_error7 = "错误! 每一最多只能发送[%ld]个tag,当前数量是[%ld]!"; 63 | push_umessage_error8 = "WeightedTagClass错误! tagClass是 [%@]"; 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/en.lproj/UMSocialPromptLocalizable.strings: -------------------------------------------------------------------------------- 1 | 2 | // -------------- FAQ log 3 | 4 | //core模块的平台相关 5 | "core_platform_error_2" = "[SCE10001]创建平台失败:%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 6 | "core_platform_warn_1" = "[SCE10001]平台检查失败:%@,请检查是否实现 @selector(socialPlatformType),参考UMSocialPlatformConfig.h头文件说明。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 7 | 8 | "core_share_error_7" = "[SCE10007]出现报错2014,请使用 HTTPS 图片 URL。 https://developer.umeng.com/docs/66632/detail/67029?um_channel=sdk"; 9 | "core_info_1" = "[SCI10005]初始化平台参数中redirectURL参数的作用。 https://developer.umeng.com/docs/66632/detail/67027?um_channel=sdk"; 10 | "core_info_2" = "[SCI10006]分享/授权登录后如果无法返回应用(微信、QQ、微博等平台)。 https://developer.umeng.com/docs/66632/detail/67028?um_channel=sdk"; 11 | //core handle 协议相关 12 | "core_auth_error_1" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 13 | "core_auth_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 14 | 15 | //core模块获得用户资料相关 16 | "core_getuserinfo_error_1" = "[SCE10001]未发现平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 17 | 18 | //core模块分享相关 19 | "core_share_error_1" = "[SCE10008]传入平台('%@')的UMSocialMessageObject类型参数messageObject的数据类型无效,请检查\n1.messageObject是否空。\n2.messageObject.text和messageObject.shareObject是否同时为空。 https://developer.umeng.com/docs/66632/detail/67030?um_channel=sdk"; 20 | "core_share_error_2" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 21 | "core_share_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 22 | "core_share_error_5" = "[SCE10001]未实现协议方法@selector(umSocial_ShareWithObject:withViewController:withCompletionHandler:):%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 23 | 24 | // 分享面板 25 | "ui_info_1" = "[SUII10002]当前操作相关提示:分享面板无法弹出。 https://developer.umeng.com/docs/66632/detail/67033?um_channel=sdk"; 26 | "ui_info_2" = "[SUII10003]分享面板图标不显示图片。 https://developer.umeng.com/docs/66632/detail/67034?um_channel=sdk"; 27 | 28 | "core_share_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk"; 29 | "core_auth_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk"; 30 | "core_getuserinfo_error_3" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk"; 31 | 32 | //wechat 33 | "wechat_auth_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 34 | 35 | "wechat_share_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 36 | "wechat_share_error_2" = "[SCE10003]分享前,请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk"; 37 | "wechat_share_error_3" = "[SWE10001]当前的sdk不支持微信的OpenAPI,请更新最新的微信SDK。 https://developer.umeng.com/docs/66632/detail/67036?um_channel=sdk"; 38 | "wechat_share_error_4" = "[SWE10002]微信分享不支持的分享类型,微信的分享类型为:文本,图片,网络链接,音乐链接,视频链接,Gif表情,文件。 https://developer.umeng.com/docs/66632/detail/67037?um_channel=sdk"; 39 | "wechat_share_error_5" = "[SWE10003]下载UMShareImageObject的shareImage失败,请检查图片参数是否正确。(本地图片,请检查是否赋值,网络图片请检查是否为https,防止下载失败)。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 40 | 41 | "wechat_shareWebPage_warn_1" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 42 | "wechat_shareWebPage_warn_2" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 43 | 44 | "wechat_shareImage_warn_1" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 45 | "wechat_shareImage_warn_2" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 46 | // wechat info 47 | "wechat_info_1" = "[SWI10004]分享面板中不显示微信。 https://developer.umeng.com/docs/66632/detail/67039?um_channel=sdk"; 48 | "wechat_info_2" = "[SWI10005]如何获取微信code。 https://developer.umeng.com/docs/66632/detail/67040?um_channel=sdk"; 49 | "wechat_info_3" = "[SWI10007]微信分享报错提示,请请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67042?um_channel=sdk"; 50 | "wechat_info_4" = "[SWI10008]微信授权登录提示该链接无法访问。 https://developer.umeng.com/docs/66632/detail/67043?um_channel=sdk"; 51 | "wechat_info_5" = "[SWI10009]微信分享报错'由于invalid_app无法分享到微信。 https://developer.umeng.com/docs/66632/detail/67044?um_channel=sdk"; 52 | 53 | //qq 54 | "qq_auth_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 55 | "qq_auth_error_2" = "[SQE10001]授权失败,点击qq授权没有跳转,请查看是否设置了appid,查看初始化函数:[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:??? appSecret:nil redirectURL:???];。 https://developer.umeng.com/docs/66632/detail/67045?um_channel=sdk"; 56 | 57 | "qq_getuserinfo_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 58 | "qq_getuserinfo_info_1" = "[SCE10004]可设置获得用户信息时是否清除缓存,通过UMSocialGlobal的isClearCacheWhenGetUserInfo变量来改变,默认是每次都清除用户的授权缓存。 https://developer.umeng.com/docs/66632/detail/67026?um_channel=sdk"; 59 | 60 | 61 | "qq_share_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 62 | "qq_share_error_2" = "[SCE10003]请检查是否安装了QQ。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk"; 63 | "qq_share_error_3" = "[SQE10002]请检查当前的SDK是否支持API调用,如果不能请升级SDK或者QQ的版本。 https://developer.umeng.com/docs/66632/detail/67046?um_channel=sdk"; 64 | "qq_share_error_4" = "[SQE10003]QQ分享不支持的分享类型,QQ的分享类型为:文本,图片,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67047?um_channel=sdk"; 65 | 66 | "qq_shareWebPage_warn_1" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk"; 67 | "qq_shareWebPage_warn_2" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk"; 68 | //info 69 | "qq_info_1" = "[SQI10005]QQ和TIM平台混淆问题。 https://developer.umeng.com/docs/66632/detail/67049?um_channel=sdk"; 70 | "qq_info_2" = "[SQI10006]QQ登录时显示的应用名如何设置。 https://developer.umeng.com/docs/66632/detail/67050?um_channel=sdk"; 71 | "qq_info_3" = "[SQI10007]QQ登录提示错误110406。 https://developer.umeng.com/docs/66632/detail/67051?um_channel=sdk"; 72 | "qq_info_4" = "[SQI10008]QQ报错 100008 client request's app is not existed。 https://developer.umeng.com/docs/66632/detail/67053?um_channel=sdk"; 73 | 74 | 75 | //sina 76 | "sina_auth_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 77 | 78 | "sina_getuserinfo_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 79 | 80 | "sina_share_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 81 | "sina_share_error_2" = "[SSE10001]新浪分享不支持的分享类型,新浪的分享类型为:文本,图片,图文,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67329?um_channel=sdk"; 82 | "sina_shareWebPage_error_1"="[SSE10002]新浪分享webpage类型(需要强制加入缩略图)错误,具体原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67054?um_channel=sdk"; 83 | "sina_shareText_Info_1" = "[SSI10003]新浪文本分享最大的字是140个,如果超过就不能分享成功,sdk默认开启截断功能,如果需要停止截断需要在调用分享前加入代码[UMSocialGlobal shareInstance].isTruncateShareText=NO。 https://developer.umeng.com/docs/66632/detail/67055?um_channel=sdk"; 84 | //info 85 | "sina_info_1" = "[SSI10004]微博分享 网页(WebPage)类型,链接在微博只显示为'网页链接'的文字。 https://developer.umeng.com/docs/66632/detail/67056?um_channel=sdk"; 86 | "sina_info_2" = "[SSI10005]微博登录报错'sso package or sign error'。 https://developer.umeng.com/docs/66632/detail/67058?um_channel=sdk"; 87 | "sina_info_3" = "[SSI10006]微博授权实现关注官方微博功能。 https://developer.umeng.com/docs/66632/detail/67059?um_channel=sdk"; 88 | "sina_info_4" = "[SSI10007]微博报错 redirect url mismatch。 https://developer.umeng.com/docs/66632/detail/67060?um_channel=sdk"; 89 | 90 | // 钉钉支付宝 91 | // info 92 | "ding_error_1" = "[SDE10001]支付宝/钉钉返回鉴权失败。 https://developer.umeng.com/docs/66632/detail/67062?um_channel=sdk"; 93 | 94 | //facebook 95 | "facebook_share_error_1" = "[SFE10001]facebook分享不支持的分享类型,facebook的分享类型为:文本,图片,网络链接,音乐链接,视频链接。(新版的facebook采用的是对话框的形式分享的,如果设置文本的话需要有publish_actions权限调用OpenAPI)。 https://developer.umeng.com/docs/66632/detail/67064?um_channel=sdk"; 96 | //error 97 | "facebook_info_2" = "[SFI10002]FAQ: Facebook/Twitter分享点击分享后没有进入分享编辑页。 https://developer.umeng.com/docs/66632/detail/67065?um_channel=sdk"; 98 | "facebook_info_3" = "[SFE10003]FAQ: Facebook分享失败,提示missing publish_actions permissions。 https://developer.umeng.com/docs/66632/detail/67066?um_channel=sdk"; 99 | 100 | //twitter 101 | "twitter_auth_error_1" = "[SCE10002]请检查是否设置了 Twitter 的 URLScheme。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 102 | //info 103 | "twitter_info_1" = "[STI10001]Twitter如何获取TokenSecret。 https://developer.umeng.com/docs/66632/detail/67068?um_channel=sdk"; 104 | "twitter_info_2" = "[STE10002]FAQ: Twitter 分享报错401。 https://developer.umeng.com/docs/66632/detail/67069?um_channel=sdk"; 105 | 106 | // --------- sdk 内 log 107 | "core_version" = "UMShare版本号:%@。"; 108 | // 实现handler协议提示 109 | "core_platform_warn_2" = "第三方或自定义平台异常:%@ > 未实现相应方法:@selector(umSocial_setAppKey:withAppSecret:withRedirectURL:)"; 110 | "core_auth_error_2" = "未实现第三方或自定义协议方法@selector(umSocial_AuthorizeWithUserInfo:withViewController:withCompletionHandler:):%@"; 111 | "core_auth_error_3" = "未实现第三方或自定义协议方法@selector(umSocial_cancelAuthWithCompletionHandler:):%@"; 112 | "core_auth_error_5" = "未实现协议方法@selector(umSocial_AuthorizeWithUserInfo:withCompletionHandler:):%@"; 113 | "core_getuserinfo_error_2" = "未实现第三方或自定义协议方法@selector(umSocial_RequestForUserProfileWithViewController:completion:):%@"; 114 | "core_share_error_3" = "未实现第三方或自定义协议方法@selector(umSocial_ShareWithObject:withCompletionHandler:):%@"; 115 | 116 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/zh-Hans.lproj/UMAnalyticsLog.strings: -------------------------------------------------------------------------------- 1 | /* 2 | UMCommonLog.strings 3 | testUMCommonLog 4 | 5 | Created by 张军华 on 2017/12/11. 6 | Copyright © 2017年 张军华. All rights reserved. 7 | */ 8 | 9 | //init 20000 - 20250 10 | analytics_init_error1 = "[AIE10012]Latitude或者longitude设置错误 https://developer.umeng.com/docs/66632/detail/66999?um_channel=sdk"; 11 | analytics_init_error2 = "[AIE10013]puid 为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 12 | analytics_init_error3 = "[AIE10013]puid 大于64字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 13 | analytics_init_error4 = "[AIE10013]provider 大于32字节 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 14 | analytics_init_error5 = "[AIE10005]请设置Dplus 场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk"; 15 | analytics_init_error6 = "数据库连接失败"; 16 | analytics_init_error7 = "数据库已经打开"; 17 | analytics_init_error8 = "修改表失败,TABLE %@ with columnName(%@)"; 18 | analytics_init_error9 = "数据库运行失败,sql: %@, error: %s,errorCode:%d"; 19 | analytics_init_error10 = "%@ 表创建失败"; 20 | analytics_init_error11 = "%@ 表删除失败"; 21 | analytics_init_error12 = "sql执行失败 %s"; 22 | analytics_init_error13 = "%@ 表写入失败"; 23 | analytics_init_error14 = "%@ 表修改失败"; 24 | analytics_init_error15 = "[AIE10011]DeepLink url 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk"; 25 | analytics_init_error16 = "[AIE10011]DeepLink eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk"; 26 | analytics_init_error17 = "[AIE10006]%@是SDK保留字段,不能作为eventId使用 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 27 | analytics_init_error18 = "[AIE1006]attributes中value 不能为 NSNull https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk"; 28 | analytics_init_error19 = "[AIE10001]appkey 不能为空 https://developer.umeng.com/docs/66632/detail/66982?um_channel=sdk"; 29 | analytics_init_error20 = "[AIE10005]MobClickGameAnalytics 是游戏API,请先设置游戏场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk"; 30 | analytics_init_error21 = "[AIE10014]MobClickGameAnalytics orderId 不能大于 1024字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 31 | analytics_init_error22 = "[AIE10014]MobClickGameAnalytics currencyType 不能大于 3字节 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 32 | analytics_init_error23 = "[AIE10005]DplusMobClick 是Dplus API,请先设置Dplus场景 https://developer.umeng.com/docs/66632/detail/66990?um_channel=sdk"; 33 | 34 | analytics_init_error24 = "[AIE1008]Dplus key:%@ 是预制字段,不能使用 https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk"; 35 | analytics_init_error25 = "[AIE10008]Dplus property value只能使用NSString,NSNumber,NSArray类型 NSArray只能是(NSString,NSNumber)类型且不能为空 https://developer.umeng.com/docs/66993/detail/id?um_channel=sdk"; 36 | analytics_init_error26 = "[AIE10008]Dplus property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 37 | analytics_init_error27 = "[AIE10008]Dplus property的value数组只能是NSString类型或NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 38 | //analytics_init_error27 = "[AIE10027]Dplus array内容只能是NSString 或者 NSNumber类型"; 39 | //analytics_init_error28 = "[AIE10028]Dplus 事件的key和value 必须是string类型,key不能大于%@字节,value不能大于%@字节"; 40 | //analytics_init_error29 = "[AIE10029]Dplus property的value只能是NSString或者NSNumber类型且不能为空"; 41 | analytics_init_error30 = "[AIE10010]Dplus eventList必须是NSArray类型 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 42 | analytics_init_error31 = "[AIE10010]Dplus eventList已存入5个,无法再添加 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 43 | analytics_init_error32 = "[AIE10008]Dplus property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 44 | analytics_init_error33 = "[AIE10008]Dplus propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 45 | 46 | analytics_init_error34 = "[AIE10006]关键字id, ts, du, dplus_st, %@是SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 47 | analytics_init_error35 = "[AIE10006]事件的key和value 必须是string类型,key不能大于%ld字节,value不能大于%ld字节 https://developer.umeng.com/docs/66991/detail/id?um_channel=sdk"; 48 | analytics_init_error36 = "[AIE10008]Dplus eventName为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 49 | analytics_init_error37 = "[AIE10006]关键字id, ts, du, dplus_st是友盟SDK保留字段,不能作为key使用。https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 50 | analytics_init_error38 = "make envelope failed code:%d"; 51 | analytics_init_error39 = "获取内容失败"; 52 | analytics_init_error40 = "[AIE10006]eventId %@ 不能大于 %d字节 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 53 | analytics_init_error41 = "[AIE10011]DeepLink 请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66998?um_channel=sdk"; 54 | analytics_init_error42 = "[AIE10010]Dplus eventList参数错误 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 55 | 56 | analytics_init_error43 = "[AIE10009]Dplus 请检查预置事件参数 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 57 | analytics_init_error44 = "[AIE10009]Dplus 预置事件的key和value 必须是string类型,key不能大于%d字节,value不能大于%d字节 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 58 | analytics_init_error45 = "[AIE10009]Dplus 预置事件property的value只能是NSString或者NSNumber类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 59 | analytics_init_error46 = "[AIE10009]Dplus 预支事件property的key只能是NSString类型且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 60 | analytics_init_error47 = "[AIE10009]Dplus 预置事件property只能是NSDictionary类型 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 61 | analytics_init_error48 = "[AIE10009]Dplus 预置事件property为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 62 | analytics_init_error49 = "[AIE10009]Dplus 请检查预置事件property中的key和value是否正确 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 63 | analytics_init_error50 = "[AIE10009]Dplus 预置事件propertyName只能是NSString类型并且不能为空 https://developer.umeng.com/docs/66632/detail/66994?um_channel=sdk"; 64 | 65 | analytics_init_error51 = "[AIE10007]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk"; 66 | analytics_init_error52 = "[AIE10007]pageName不能为空 https://developer.umeng.com/docs/66632/detail/66992?um_channel=sdk"; 67 | analytics_init_error53 = "[AIE10008]Dplus property为空 https://developer.umeng.com/docs/66632/detail/66993?um_channel=sdk"; 68 | 69 | analytics_init_error54 = "[AIE10006]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/66991?um_channel=sdk"; 70 | 71 | analytics_init_error55 = "[AIE10014]MobClickGameAnalytics level不能为空 https://developer.umeng.com/docs/66632/detail/67000?um_channel=sdk"; 72 | analytics_init_error56 = "[AIE10014]MobClickGameAnalytics 请检查currencyAmount和virtualAmount是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 73 | analytics_init_error57 = "[AIE10014]请检查参数是否正确 https://developer.umeng.com/docs/66632/detail/67001?um_channel=sdk"; 74 | 75 | 76 | 77 | 78 | 79 | 80 | analytics_init_warn1 = "provider 为空"; 81 | analytics_init_warn3 = "错误信息表内容不是jsonString"; 82 | analytics_init_warn5 = "请检查property中的key和value值"; 83 | analytics_init_warn6 = "app已经启动"; 84 | analytics_init_warn7 = "attributes中value 不能为空"; 85 | analytics_init_warn8 = "setUserLevel 方法已下线,请使用setUserLevelId方法"; 86 | analytics_init_warn9 = "setUserID 方法已下线,请使用其他相关User的方法"; 87 | 88 | analytics_init_warn10 = "[AIE10010]Dplus eventList为空 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 89 | analytics_init_warn11 = "Dplus value:%@ 超出限制字节,已被截取到%ld字节"; 90 | analytics_init_warn12 = "Dplus array内容只能是NSString类型"; 91 | analytics_init_warn13 = "Dplus property为空"; 92 | analytics_init_warn14 = "Dplus 请检查property中的key和value是否正确"; 93 | analytics_init_warn15 = "Dplus propertyName在Property中不存在"; 94 | analytics_init_warn16 = "Dplus propertyName在PreProperty中不存在"; 95 | analytics_init_warn17 = "Dplus propertyName在SuperProperty中不存在"; 96 | 97 | analytics_init_warn18 = "event label (%@) 不能大于%d字节"; 98 | analytics_init_warn19 = "event事件在8小时内最多发送%d"; 99 | analytics_init_warn20 = "track事件在8小时内最多发送%d"; 100 | analytics_init_warn21 = "sessionId为空"; 101 | analytics_init_warn22 = "不确定event 类型"; 102 | 103 | analytics_init_warn23 = "[AIE10010]Dplus %@ 过长,截取%ld字节 https://developer.umeng.com/docs/66632/detail/66996?um_channel=sdk"; 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | analytics_init_info1 = "超级属性注册成功"; 114 | analytics_init_info2 = "缓存数据存储完成"; 115 | analytics_init_info3 = "session 开始:%@"; 116 | analytics_init_info4 = "session 结束:%@"; 117 | analytics_init_info5 = "Dplus registerPreProperty成功"; 118 | analytics_init_info6 = "Dplus unregisterSuperProperty成功"; 119 | analytics_init_info7 = "Dplus unregisterPreProperty成功"; 120 | analytics_init_info8 = "Dplus getSuperProperty成功"; 121 | analytics_init_info9 = "dladdr(%p, ...) failed"; 122 | analytics_init_info10 = "Invalid Mach-O header magic value: %x"; 123 | analytics_init_info11 = "LC_SEGMENT 0x%08x"; 124 | analytics_init_info12 = "数据过大,进行拆包"; 125 | analytics_init_info13 = "数据过大,进行Dplus拆包"; 126 | analytics_init_info14 = "数据过大,进行analytics拆包"; 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | analytics_init_debug1 = "UMAnalytics sdk版本号:%@,app 版本号:%@"; 139 | analytics_init_debug2 = "UMAnalytics发送配置:sdk_version:%@, device_id:%@, model:%@, os_version:%@, app_version:%@"; 140 | analytics_init_debug3 = "UMAnalytics统计发送内容:active_user:%@, activate_msg:%@, sessions:%@, ekv:%@"; 141 | analytics_init_debug4 = "UMAnalytics游戏统计发送内容:gkv:%@"; 142 | analytics_init_debug5 = "UMAnalytics Dplus发送内容:Dplus:%@"; 143 | analytics_init_debug6 = "UMAnalytics error:%@"; 144 | analytics_init_debug7 = "UMAnalytics event:%@"; 145 | analytics_init_debug8 = "UMAnalytics session:%@"; 146 | analytics_init_debug9 = "UMAnalytics ekv:%@"; 147 | analytics_init_debug10 = "UMAnalytics gkv:%@"; 148 | analytics_init_debug11 = "UMAnalytics app被杀死"; 149 | analytics_init_debug12 = "UMAnalytics pageDuration:%@"; 150 | analytics_init_debug13 = "UMAnalytics pageBegin=%@, beginTime:%@"; 151 | analytics_init_debug14 = "UMAnalytics pageEnd=%@, duration:%lld"; 152 | analytics_init_debug15 = "UMAnalytics eventBegin eventId=%@, label=%@"; 153 | analytics_init_debug16 = "UMAnalytics ekvBegin ekvEvent.id=%@, ekvEvent.key=%@"; 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | analytics_init_verbose1 = "UMAnalytics 发送日志:%@"; 167 | analytics_init_verbose2 = "UIApplicationWillTerminateNotification arrived"; 168 | analytics_init_verbose3 = "app inactivate enter"; 169 | analytics_init_verbose4 = "viewDidAppear is: %@"; 170 | analytics_init_verbose5 = "viewDidDisappear is: %@"; 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/zh-Hans.lproj/UMCommonLog.strings: -------------------------------------------------------------------------------- 1 | /* 2 | UMCommonLog.strings 3 | testUMCommonLog 4 | 5 | Created by 张军华 on 2017/12/11. 6 | Copyright © 2017年 张军华. All rights reserved. 7 | */ 8 | 9 | 10 | 11 | //////////////////////////////////////////////// 12 | //init begin 13 | //init 20000 - 20250 14 | common_init_error1 = "[CIE10001]用户传入的appKey不合法,请到官网申请appkey,以免影响自己App的统计数据。网址如下:https://developer.umeng.com/docs/66632/detail/67191?um_channel=sdk"; 15 | 16 | common_init_warn1 = "当前传入的appkey和用户以前设置过的appkey不一样。"; 17 | common_init_warn2 = "当前传入的channel渠道为空。"; 18 | common_init_warn3 = "检测用户正在使用UI无埋点功能,检测到UMABTest.framework和UMAutoEventBinding.framework同时并存,在需要release发布需要删除UMABTest.framework。"; 19 | 20 | common_init_info1 = "正在使用国内Common组件化SDK版本。"; 21 | common_init_info2 = "正在使用国际化Common组件化SDK版本。"; 22 | 23 | common_init_debug1 = "UMCommon版本号:%@。"; 24 | 25 | common_init_verbose1 = ""; 26 | 27 | //init end 28 | //////////////////////////////////////////////// 29 | 30 | //////////////////////////////////////////////// 31 | //integration_test begin 32 | common_integrationtest_error1 = "experiment params invalid。"; 33 | common_integrationtest_error2 = "unknow experiment group key。"; 34 | common_integrationtest_error3 = "unknow experiment test key。"; 35 | common_integrationtest_error4 = "experiment params invalid。"; 36 | 37 | //client_test end 38 | //////////////////////////////////////////////// 39 | 40 | 41 | //////////////////////////////////////////////// 42 | //deviceToken begin 43 | common_deviceToken_error1 = "error,tokenStringWithData, token inValid! [%ld]。"; 44 | 45 | //deviceToken end 46 | //////////////////////////////////////////////// 47 | 48 | 49 | //////////////////////////////////////////////// 50 | //Envelope begin 51 | 52 | common_envelope_error1 = "信封json创建失败"; 53 | common_envelope_error2 = "信封raw size:(%d)超过最大限制,创建失败"; 54 | common_envelope_error3 = "信封压缩数据失败"; 55 | common_envelope_error4 = "信封打包失败"; 56 | common_envelope_error5 = "信封创建失败"; 57 | common_envelope_error6 = "信封size:(%d)超过最大限制,创建失败"; 58 | common_envelope_error7 = "发送信封(%@)失败"; 59 | common_envelope_error8 = "网络请求失败(Response Applog) {\"fail\": \"error\"}"; 60 | common_envelope_error9 = "网络请求失败(Response Applog) {\"fail\": \"statusCode\":%d}"; 61 | common_envelope_error10 = "网络请求失败(Error Applog) %@"; 62 | 63 | common_envelope_warn1 = "信封数量超过最大限制%d,并且删除此文件名为:%@"; 64 | 65 | common_envelope_info1 = "准备发送信封"; 66 | common_envelope_info2 = "信封名字的前缀:(%@)"; 67 | 68 | common_envelope_debug1 = "当前正在发送网络请求,还不能打包信封(network running=YES)。"; 69 | common_envelope_debug2 = "当前网络状态不可用。"; 70 | common_envelope_debug3 = "当前本地有信封存在,还不能打包新的信封。"; 71 | common_envelope_debug4 = "生成信封(%@)成功"; 72 | common_envelope_debug5 = "准备发送信封(%@)..."; 73 | common_envelope_debug6 = "发送信封(%@)成功"; 74 | common_envelope_debug7 = "网络请求成功(Response Applog) {\"success\": \"ok\"}"; 75 | common_envelope_debug8 = "将要打包的有状态数据:%@"; 76 | common_envelope_debug9 = "信封SerialNum:%d"; 77 | 78 | common_envelope_verbose1 = ""; 79 | 80 | //Envelope end 81 | //////////////////////////////////////////////// 82 | 83 | //////////////////////////////////////////////// 84 | //SLEnvelope begin 85 | 86 | common_slenvelope_error1 = "无状态信封json创建失败"; 87 | common_slenvelope_error2 = "无状态信封raw size:(%d)超过最大限制,创建失败"; 88 | common_slenvelope_error3 = "无状态信封压缩数据失败"; 89 | common_slenvelope_error4 = "无状态信封打包失败"; 90 | common_slenvelope_error5 = "无状态信封创建失败"; 91 | common_slenvelope_error6 = "无状态信封size:(%d)超过最大限制,创建失败"; 92 | common_slenvelope_error7 = "发送无状态信封(%@)失败"; 93 | common_slenvelope_error8 = "无状态信封(%@)不存在"; 94 | common_slenvelope_error9 = "网络请求失败(SLResponse Applog) {\"fail\": \"statusCode\":%d}"; 95 | 96 | common_slenvelope_warn1 = ""; 97 | 98 | common_slenvelope_info1 = ""; 99 | 100 | 101 | common_slenvelope_debug1 = "生成无状态信封(%@)成功"; 102 | common_slenvelope_debug2 = "准备发送无状态信封(%@)..."; 103 | common_slenvelope_debug3 = "发送无状态信封(%@)成功"; 104 | common_slenvelope_debug4 = "网络请求成功(SLResponse Applog) {\"success\": \"ok\"}"; 105 | common_slenvelope_debug5 = "将要打包的无状态数据:%@"; 106 | 107 | common_slenvelope_verbose1 = ""; 108 | 109 | 110 | //SLEnvelope end 111 | //////////////////////////////////////////////// 112 | 113 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/zh-Hans.lproj/UMPushLog.strings: -------------------------------------------------------------------------------- 1 | /* 2 | UMPushLog.strings 3 | UMessage 4 | 5 | Created by shile on 2017/12/11. 6 | Copyright © 2017年 shile. All rights reserved. 7 | */ 8 | 9 | //tag&alias 10 | push_tagandalias_debug1 = "%@ 方法调用参数是: [%@]"; 11 | push_tagandalias_debug2 = "%@ 方法调用成功, 返回的内容是:[%@], remainNumber [%ld]!"; 12 | push_tagandalias_debug3 = "%@ 方法调用成功,name [%@] type [%@]!"; 13 | 14 | push_tagandalias_warning1 = "%@ 长度为0"; 15 | push_tagandalias_warning2 = "%@ 长度超过了限制[%ld],长度是[%ld]"; 16 | push_tagandalias_warning3 = "%@ 类型不为NSString或者为nil。"; 17 | 18 | push_tagandalias_error1 = "[PTAE10001] %@ 方法调用错误 ,token 为nil!,请查看:https://developer.umeng.com/docs/66632/detail/66964?um_channel=sdk"; 19 | push_tagandalias_error2 = " %@ 方法调用错误 ,服务器异常或禁止请求,请检查是否调用错误!"; 20 | push_tagandalias_error3 = "%@ 方法调用错误 ,error 是 %@,responseObject 内容是 %@!"; 21 | push_tagandalias_error4 = "%@ 方法调用错误 ,请求过快,请检查是否调用正确!"; 22 | 23 | push_tagandalias_error6 = "%@ 失败,name [%@] type [%@]![%@]"; 24 | 25 | 26 | //应用内消息 27 | push_innermessage_warning1 = "已经有相同的label存在,label为%@:"; 28 | 29 | push_innermessage_debug1 = "失败!error code:%d,sql:%@, result,SQL);"; 30 | 31 | push_innermessage_error1 = "应用内消息统计回传失败,responseObject[%@],error[%@]"; 32 | push_innermessage_error2 = "获取UPush应用内 开屏 消息失败,请检查是否在后台创建消息,如不需要开屏功能,请移除相关代码!"; 33 | push_innermessage_error3 = "获取UPush应用内 开屏 消息失败 [%@]!"; 34 | push_innermessage_error4 = "获取UPush应用内 插屏 消息失败 [%@]!"; 35 | push_innermessage_error5 = "label 格式错误,label只能为字符串,且不能为nil,或空串!"; 36 | push_innermessage_error6 = "每个app只允许创建10个CardMessage!"; 37 | 38 | 39 | //UMessage 40 | push_umessage_info1 = "UMPush版本号:%@"; 41 | 42 | push_umessage_debug1 = "payload 内容是: [%@]"; 43 | push_umessage_debug2 = "launchOptions 为 nil 或 class [%@] 不是 NSDictionary"; 44 | push_umessage_debug3 = "消息到达!内容是:[%@]"; 45 | push_umessage_debug4 = "这条消息已经上传到服务器了!msgid是:%@"; 46 | push_umessage_debug5 = "UMPushMessage 内容是:[%@]"; 47 | push_umessage_debug6 = "消息中不包含Alert, 内容是:[%@]"; 48 | push_umessage_debug7 = "今天已经回传过 register 请求了"; 49 | push_umessage_debug8 = "今天已经回传过 launch 请求了"; 50 | push_umessage_debug9 = "responseDic 返回格式错误,内容是:[%@]"; 51 | push_umessage_debug10 = "responseDic内容是:[%@]"; 52 | push_umessage_debug11 = "clickPolicy 详情:[%d]"; 53 | push_umessage_debug12 = "消息不属于友盟!"; 54 | push_umessage_debug13 = "register devicetoken [%@]!"; 55 | push_umessage_debug14 = "register AppKey [%@]!"; 56 | 57 | push_umessage_error1 = "userInfo 不包含msgid,或者消息不来自UPush!"; 58 | push_umessage_error3 = "UMPushMessage init异常:[%@]"; 59 | push_umessage_error4 = "application:didFailToRegisterForRemoteNotificationsWithError: [%@]"; 60 | push_umessage_error5 = "token错误! [%ld]"; 61 | push_umessage_error6 = "tagClass错误! tagClass是 [%@]"; 62 | push_umessage_error7 = "错误! 每一最多只能发送[%ld]个tag,当前数量是[%ld]!"; 63 | push_umessage_error8 = "WeightedTagClass错误! tagClass是 [%@]"; 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.bundle/zh-Hans.lproj/UMSocialPromptLocalizable.strings: -------------------------------------------------------------------------------- 1 | 2 | // -------------- FAQ log 3 | 4 | //core模块的平台相关 5 | "core_platform_error_2" = "[SCE10001]创建平台失败:%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 6 | "core_platform_warn_1" = "[SCE10001]平台检查失败:%@,请检查是否实现 @selector(socialPlatformType),参考UMSocialPlatformConfig.h头文件说明。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 7 | 8 | "core_share_error_7" = "[SCE10007]出现报错2014,请使用 HTTPS 图片 URL。 https://developer.umeng.com/docs/66632/detail/67029?um_channel=sdk"; 9 | "core_info_1" = "[SCI10005]初始化平台参数中redirectURL参数的作用。 https://developer.umeng.com/docs/66632/detail/67027?um_channel=sdk"; 10 | "core_info_2" = "[SCI10006]分享/授权登录后如果无法返回应用(微信、QQ、微博等平台)。 https://developer.umeng.com/docs/66632/detail/67028?um_channel=sdk"; 11 | //core handle 协议相关 12 | "core_auth_error_1" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 13 | "core_auth_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 14 | 15 | //core模块获得用户资料相关 16 | "core_getuserinfo_error_1" = "[SCE10001]未发现平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 17 | 18 | //core模块分享相关 19 | "core_share_error_1" = "[SCE10008]传入平台('%@')的UMSocialMessageObject类型参数messageObject的数据类型无效,请检查\n1.messageObject是否空。\n2.messageObject.text和messageObject.shareObject是否同时为空。 https://developer.umeng.com/docs/66632/detail/67030?um_channel=sdk"; 20 | "core_share_error_2" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 21 | "core_share_error_4" = "[SCE10001]未发现第三方或自定义平台相应类:%@\n请检查:\n1、平台类已实现协议\n2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 22 | "core_share_error_5" = "[SCE10001]未实现协议方法@selector(umSocial_ShareWithObject:withViewController:withCompletionHandler:):%@。 https://developer.umeng.com/docs/66632/detail/67023?um_channel=sdk"; 23 | 24 | // 分享面板 25 | "ui_info_1" = "[SUII10002]当前操作相关提示:分享面板无法弹出。 https://developer.umeng.com/docs/66632/detail/67033?um_channel=sdk"; 26 | "ui_info_2" = "[SUII10003]分享面板图标不显示图片。 https://developer.umeng.com/docs/66632/detail/67034?um_channel=sdk"; 27 | 28 | "core_share_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk"; 29 | "core_auth_error_6" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk"; 30 | "core_getuserinfo_error_3" = "[SUIE10001]平台%@分享时,传入的参数currentViewController应该是nil或者是继承UIViewController的子类。 https://developer.umeng.com/docs/66632/detail/67032?um_channel=sdk"; 31 | 32 | //wechat 33 | "wechat_auth_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 34 | 35 | "wechat_share_error_1" = "[SCE10002]请检查是否设置了微信的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 36 | "wechat_share_error_2" = "[SCE10003]分享前,请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk"; 37 | "wechat_share_error_3" = "[SWE10001]当前的sdk不支持微信的OpenAPI,请更新最新的微信SDK。 https://developer.umeng.com/docs/66632/detail/67036?um_channel=sdk"; 38 | "wechat_share_error_4" = "[SWE10002]微信分享不支持的分享类型,微信的分享类型为:文本,图片,网络链接,音乐链接,视频链接,Gif表情,文件。 https://developer.umeng.com/docs/66632/detail/67037?um_channel=sdk"; 39 | "wechat_share_error_5" = "[SWE10003]下载UMShareImageObject的shareImage失败,请检查图片参数是否正确。(本地图片,请检查是否赋值,网络图片请检查是否为https,防止下载失败)。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 40 | 41 | "wechat_shareWebPage_warn_1" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 42 | "wechat_shareWebPage_warn_2" = "[SWE10003]微信分享网页链接的时候,提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 43 | 44 | "wechat_shareImage_warn_1" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 45 | "wechat_shareImage_warn_2" = "[SWE10003]微信分享图片的时候,提供的缩略图为为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67038?um_channel=sdk"; 46 | // wechat info 47 | "wechat_info_1" = "[SWI10004]分享面板中不显示微信。 https://developer.umeng.com/docs/66632/detail/67039?um_channel=sdk"; 48 | "wechat_info_2" = "[SWI10005]如何获取微信code。 https://developer.umeng.com/docs/66632/detail/67040?um_channel=sdk"; 49 | "wechat_info_3" = "[SWI10007]微信分享报错提示,请请检查微信是否安装。 https://developer.umeng.com/docs/66632/detail/67042?um_channel=sdk"; 50 | "wechat_info_4" = "[SWI10008]微信授权登录提示该链接无法访问。 https://developer.umeng.com/docs/66632/detail/67043?um_channel=sdk"; 51 | "wechat_info_5" = "[SWI10009]微信分享报错'由于invalid_app无法分享到微信。 https://developer.umeng.com/docs/66632/detail/67044?um_channel=sdk"; 52 | 53 | //qq 54 | "qq_auth_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 55 | "qq_auth_error_2" = "[SQE10001]授权失败,点击qq授权没有跳转,请查看是否设置了appid,查看初始化函数:[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:??? appSecret:nil redirectURL:???];。 https://developer.umeng.com/docs/66632/detail/67045?um_channel=sdk"; 56 | 57 | "qq_getuserinfo_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 58 | "qq_getuserinfo_info_1" = "[SCE10004]可设置获得用户信息时是否清除缓存,通过UMSocialGlobal的isClearCacheWhenGetUserInfo变量来改变,默认是每次都清除用户的授权缓存。 https://developer.umeng.com/docs/66632/detail/67026?um_channel=sdk"; 59 | 60 | 61 | "qq_share_error_1" = "[SCE10002]请检查是否设置了QQ的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 62 | "qq_share_error_2" = "[SCE10003]请检查是否安装了QQ。 https://developer.umeng.com/docs/66632/detail/67025?um_channel=sdk"; 63 | "qq_share_error_3" = "[SQE10002]请检查当前的SDK是否支持API调用,如果不能请升级SDK或者QQ的版本。 https://developer.umeng.com/docs/66632/detail/67046?um_channel=sdk"; 64 | "qq_share_error_4" = "[SQE10003]QQ分享不支持的分享类型,QQ的分享类型为:文本,图片,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67047?um_channel=sdk"; 65 | 66 | "qq_shareWebPage_warn_1" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败,具体的原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk"; 67 | "qq_shareWebPage_warn_2" = "[SQE10004]QQ分享网页链接的时提供的缩略图为错误的下载url或者下载失败。 https://developer.umeng.com/docs/66632/detail/67048?um_channel=sdk"; 68 | //info 69 | "qq_info_1" = "[SQI10005]QQ和TIM平台混淆问题。 https://developer.umeng.com/docs/66632/detail/67049?um_channel=sdk"; 70 | "qq_info_2" = "[SQI10006]QQ登录时显示的应用名如何设置。 https://developer.umeng.com/docs/66632/detail/67050?um_channel=sdk"; 71 | "qq_info_3" = "[SQI10007]QQ登录提示错误110406。 https://developer.umeng.com/docs/66632/detail/67051?um_channel=sdk"; 72 | "qq_info_4" = "[SQI10008]QQ报错 100008 client request's app is not existed。 https://developer.umeng.com/docs/66632/detail/67053?um_channel=sdk"; 73 | 74 | 75 | //sina 76 | "sina_auth_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 77 | 78 | "sina_getuserinfo_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 79 | 80 | "sina_share_error_1" = "[SCE10002]请检查是否设置了sina的URLSchema。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 81 | "sina_share_error_2" = "[SSE10001]新浪分享不支持的分享类型,新浪的分享类型为:文本,图片,图文,网络链接,音乐链接,视频链接。 https://developer.umeng.com/docs/66632/detail/67329?um_channel=sdk"; 82 | "sina_shareWebPage_error_1"="[SSE10002]新浪分享webpage类型(需要强制加入缩略图)错误,具体原因如下:%@。 https://developer.umeng.com/docs/66632/detail/67054?um_channel=sdk"; 83 | "sina_shareText_Info_1" = "[SSI10003]新浪文本分享最大的字是140个,如果超过就不能分享成功,sdk默认开启截断功能,如果需要停止截断需要在调用分享前加入代码[UMSocialGlobal shareInstance].isTruncateShareText=NO。 https://developer.umeng.com/docs/66632/detail/67055?um_channel=sdk"; 84 | //info 85 | "sina_info_1" = "[SSI10004]微博分享 网页(WebPage)类型,链接在微博只显示为'网页链接'的文字。 https://developer.umeng.com/docs/66632/detail/67056?um_channel=sdk"; 86 | "sina_info_2" = "[SSI10005]微博登录报错'sso package or sign error'。 https://developer.umeng.com/docs/66632/detail/67058?um_channel=sdk"; 87 | "sina_info_3" = "[SSI10006]微博授权实现关注官方微博功能。 https://developer.umeng.com/docs/66632/detail/67059?um_channel=sdk"; 88 | "sina_info_4" = "[SSI10007]微博报错 redirect url mismatch。 https://developer.umeng.com/docs/66632/detail/67060?um_channel=sdk"; 89 | 90 | // 钉钉支付宝 91 | // info 92 | "ding_error_1" = "[SDE10001]支付宝/钉钉返回鉴权失败。 https://developer.umeng.com/docs/66632/detail/67062?um_channel=sdk"; 93 | 94 | //facebook 95 | "facebook_share_error_1" = "[SFE10001]facebook分享不支持的分享类型,facebook的分享类型为:文本,图片,网络链接,音乐链接,视频链接。(新版的facebook采用的是对话框的形式分享的,如果设置文本的话需要有publish_actions权限调用OpenAPI)。 https://developer.umeng.com/docs/66632/detail/67064?um_channel=sdk"; 96 | //error 97 | "facebook_info_2" = "[SFI10002]FAQ: Facebook/Twitter分享点击分享后没有进入分享编辑页。 https://developer.umeng.com/docs/66632/detail/67065?um_channel=sdk"; 98 | "facebook_info_3" = "[SFE10003]FAQ: Facebook分享失败,提示missing publish_actions permissions。 https://developer.umeng.com/docs/66632/detail/67066?um_channel=sdk"; 99 | 100 | //twitter 101 | "twitter_auth_error_1" = "[SCE10002]请检查是否设置了 Twitter 的 URLScheme。 https://developer.umeng.com/docs/66632/detail/67024?um_channel=sdk"; 102 | //info 103 | "twitter_info_1" = "[STI10001]Twitter如何获取TokenSecret。 https://developer.umeng.com/docs/66632/detail/67068?um_channel=sdk"; 104 | "twitter_info_2" = "[STE10002]FAQ: Twitter 分享报错401。 https://developer.umeng.com/docs/66632/detail/67069?um_channel=sdk"; 105 | 106 | // --------- sdk 内 log 107 | "core_version" = "UMShare版本号:%@。"; 108 | // 实现handler协议提示 109 | "core_platform_warn_2" = "第三方或自定义平台异常:%@ > 未实现相应方法:@selector(umSocial_setAppKey:withAppSecret:withRedirectURL:)"; 110 | "core_auth_error_2" = "未实现第三方或自定义协议方法@selector(umSocial_AuthorizeWithUserInfo:withViewController:withCompletionHandler:):%@"; 111 | "core_auth_error_3" = "未实现第三方或自定义协议方法@selector(umSocial_cancelAuthWithCompletionHandler:):%@"; 112 | "core_auth_error_5" = "未实现协议方法@selector(umSocial_AuthorizeWithUserInfo:withCompletionHandler:):%@"; 113 | "core_getuserinfo_error_2" = "未实现第三方或自定义协议方法@selector(umSocial_RequestForUserProfileWithViewController:completion:):%@"; 114 | "core_share_error_3" = "未实现第三方或自定义协议方法@selector(umSocial_ShareWithObject:withCompletionHandler:):%@"; 115 | 116 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/1.0.0_6583d2489a_20180404113346: -------------------------------------------------------------------------------- 1 | 1.0.0 2 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/Headers/UMCommonLogHeaders.h: -------------------------------------------------------------------------------- 1 | // 2 | // UMCommonLogHeaders.h 3 | // UMCommonLog 4 | // 5 | // Created by 张军华 on 2017/12/4. 6 | // Copyright © 2017年 张军华. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | #import 13 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/Headers/UMCommonLogManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // UMCommonLogManager.h 3 | // testUMCommonLog 4 | // 5 | // Created by 张军华 on 2017/11/28. 6 | // Copyright © 2017年 张军华. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | 13 | @interface UMCommonLogManager : NSObject 14 | 15 | +(void) setUpUMCommonLogManager; 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/Info.plist -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module UMCommonLog { 2 | umbrella header "UMCommonLog.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/UMCommonLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cAibDe/CodeConfusion/878ec1f3886645dfdcb65fdce88b1cd1a6b3e129/tongji/iOS/umcommonlog/umcommonlog_ios_1.0.0/UMCommonLog.framework/UMCommonLog -------------------------------------------------------------------------------- /tongji/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // tongji 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /tongjiTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /tongjiTests/tongjiTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // tongjiTests.m 3 | // tongjiTests 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface tongjiTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation tongjiTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /tongjiUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /tongjiUITests/tongjiUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // tongjiUITests.m 3 | // tongjiUITests 4 | // 5 | // Created by 张鹏 on 2018/5/7. 6 | // Copyright © 2018年 c4ibD3. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface tongjiUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation tongjiUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | --------------------------------------------------------------------------------