├── .DS_Store ├── Bugly-iOS-Demo ├── .DS_Store ├── Bugly-iOS-Demo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── Bugly-iOS-Demo.xccheckout │ │ └── xcuserdata │ │ │ └── ben.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── Bugly-iOS-Demo.xcscheme │ └── xcuserdata │ │ ├── ben.xcuserdatad │ │ └── xcschemes │ │ │ ├── Bugly-iOS-Demo.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── zhhp1121.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Bugly-iOS-Demo.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ ├── Bugly-iOS-Demo.xccheckout │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ ├── ben.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ └── zhhp1121.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── Bugly-iOS-Demo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── .DS_Store │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── BuglyDemoImage.imageset │ │ │ ├── Contents.json │ │ │ └── bugly_demo_image@2x.png │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Bugly-iOS-DemoTests │ ├── Bugly_iOS_DemoTests.m │ └── Info.plist ├── Podfile ├── Podfile.lock └── Pods │ ├── Bugly │ └── Bugly.framework │ │ ├── Bugly │ │ ├── Headers │ │ ├── Bugly.h │ │ ├── BuglyConfig.h │ │ └── BuglyLog.h │ │ └── Modules │ │ └── module.modulemap │ ├── Manifest.lock │ ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ ├── ben.xcuserdatad │ │ └── xcschemes │ │ │ ├── Pods-Bugly-iOS-Demo.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── zhhp1121.xcuserdatad │ │ └── xcschemes │ │ ├── Bugly.xcscheme │ │ ├── Pods-Bugly-iOS-Demo.xcscheme │ │ ├── Pods-Bugly-iOS-DemoTests.xcscheme │ │ └── xcschememanagement.plist │ └── Target Support Files │ ├── Bugly │ ├── Bugly.debug.xcconfig │ └── Bugly.release.xcconfig │ ├── Pods-Bugly-iOS-Demo │ ├── Pods-Bugly-iOS-Demo-acknowledgements.markdown │ ├── Pods-Bugly-iOS-Demo-acknowledgements.plist │ ├── Pods-Bugly-iOS-Demo-dummy.m │ ├── Pods-Bugly-iOS-Demo-frameworks.sh │ ├── Pods-Bugly-iOS-Demo-resources.sh │ ├── Pods-Bugly-iOS-Demo.debug.xcconfig │ └── Pods-Bugly-iOS-Demo.release.xcconfig │ └── Pods-Bugly-iOS-DemoTests │ ├── Pods-Bugly-iOS-DemoTests-acknowledgements.markdown │ ├── Pods-Bugly-iOS-DemoTests-acknowledgements.plist │ ├── Pods-Bugly-iOS-DemoTests-dummy.m │ ├── Pods-Bugly-iOS-DemoTests-frameworks.sh │ ├── Pods-Bugly-iOS-DemoTests-resources.sh │ ├── Pods-Bugly-iOS-DemoTests.debug.xcconfig │ └── Pods-Bugly-iOS-DemoTests.release.xcconfig ├── Bugly.podspec ├── BuglyExtension.podspec ├── BuglyWatchOS.podspec ├── CHANGELOG.md ├── README.md ├── README_OLD.md ├── UPGRADE_GUIDE.md ├── advanced ├── .DS_Store ├── ADVANCED.md ├── EXTENSION.md ├── ImportFramework@2x.jpg ├── dSYMUpload_1@2x.jpg ├── dSYMUpload_2@2x.jpg ├── dSYMUpload_3@2x.jpg ├── deviceLog@2x.jpg └── xcode_debug@2x.jpg └── release ├── Bugly-1.2.7.zip ├── Bugly-1.2.8.zip ├── Bugly-1.2.9.10.zip ├── Bugly-1.2.9.zip ├── Bugly-1.3.1.zip ├── Bugly-1.3.2.zip ├── Bugly-1.4.0.zip ├── Bugly-1.4.1.zip ├── Bugly-1.4.2.zip ├── Bugly-1.4.3.zip ├── Bugly-1.4.4.zip ├── Bugly-1.4.5.zip ├── Bugly-1.4.6.zip ├── Bugly-1.4.7.zip ├── Bugly-1.4.8.zip ├── Bugly-2.1.zip ├── Bugly-2.2.3.zip ├── Bugly-2.2.zip ├── Bugly-2.3.0.zip ├── Bugly-2.3.1.zip ├── Bugly-2.4.0.zip ├── Bugly-2.5.0.zip ├── Bugly-2.5.2.zip ├── Bugly-2.5.4.zip ├── Bugly-2.5.5.zip ├── Bugly-2.5.71.zip ├── Bugly-2.5.8.zip ├── Bugly-2.5.9.zip ├── Bugly-2.5.91.zip ├── Bugly-2.5.92.zip ├── Bugly-2.5.93.zip ├── Bugly-2.6.0.zip ├── Bugly-2.6.1.zip ├── BuglyExtension-1.0.7.zip ├── BuglyExtension-1.0.zip ├── BuglyExtension-1.1.zip ├── BuglyWatchOS-1.0.1.zip └── BuglyWatchOS-1.0.zip /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/.DS_Store -------------------------------------------------------------------------------- /Bugly-iOS-Demo/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/.DS_Store -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 9E558C51487B67EDF4FE3CF5 /* libPods-Bugly-iOS-DemoTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B17720D9F0D2C2934FC7EB0 /* libPods-Bugly-iOS-DemoTests.a */; }; 11 | B5F302911B428C8A00D86667 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F302901B428C8A00D86667 /* main.m */; }; 12 | B5F302941B428C8A00D86667 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F302931B428C8A00D86667 /* AppDelegate.m */; }; 13 | B5F302971B428C8A00D86667 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F302961B428C8A00D86667 /* ViewController.m */; }; 14 | B5F3029A1B428C8A00D86667 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B5F302981B428C8A00D86667 /* Main.storyboard */; }; 15 | B5F3029C1B428C8A00D86667 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5F3029B1B428C8A00D86667 /* Images.xcassets */; }; 16 | B5F3029F1B428C8A00D86667 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = B5F3029D1B428C8A00D86667 /* LaunchScreen.xib */; }; 17 | B5F302AB1B428C8A00D86667 /* Bugly_iOS_DemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F302AA1B428C8A00D86667 /* Bugly_iOS_DemoTests.m */; }; 18 | ECCDA501ACAC32F171B70F48 /* libPods-Bugly-iOS-Demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2039CD9BBF0FBA714BA843E3 /* libPods-Bugly-iOS-Demo.a */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXContainerItemProxy section */ 22 | B5F302A51B428C8A00D86667 /* PBXContainerItemProxy */ = { 23 | isa = PBXContainerItemProxy; 24 | containerPortal = B5F302831B428C8A00D86667 /* Project object */; 25 | proxyType = 1; 26 | remoteGlobalIDString = B5F3028A1B428C8A00D86667; 27 | remoteInfo = "Bugly-iOS-Demo"; 28 | }; 29 | /* End PBXContainerItemProxy section */ 30 | 31 | /* Begin PBXFileReference section */ 32 | 2039CD9BBF0FBA714BA843E3 /* libPods-Bugly-iOS-Demo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Bugly-iOS-Demo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 33 | 4B17720D9F0D2C2934FC7EB0 /* libPods-Bugly-iOS-DemoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Bugly-iOS-DemoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 34 | 4D5BA866E49428B2504CCF41 /* Pods-Bugly-iOS-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Bugly-iOS-Demo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo.debug.xcconfig"; sourceTree = ""; }; 35 | 551F41AB08B76924C61A76C8 /* Pods-Bugly-iOS-DemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Bugly-iOS-DemoTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests.debug.xcconfig"; sourceTree = ""; }; 36 | 91E22768EC44BCD48818A628 /* Pods-Bugly-iOS-DemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Bugly-iOS-DemoTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests.release.xcconfig"; sourceTree = ""; }; 37 | B5F3028B1B428C8A00D86667 /* Bugly-iOS-Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Bugly-iOS-Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | B5F3028F1B428C8A00D86667 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 39 | B5F302901B428C8A00D86667 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 40 | B5F302921B428C8A00D86667 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 41 | B5F302931B428C8A00D86667 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 42 | B5F302951B428C8A00D86667 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 43 | B5F302961B428C8A00D86667 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 44 | B5F302991B428C8A00D86667 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 45 | B5F3029B1B428C8A00D86667 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 46 | B5F3029E1B428C8A00D86667 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 47 | B5F302A41B428C8A00D86667 /* Bugly-iOS-DemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Bugly-iOS-DemoTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | B5F302A91B428C8A00D86667 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 49 | B5F302AA1B428C8A00D86667 /* Bugly_iOS_DemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Bugly_iOS_DemoTests.m; sourceTree = ""; }; 50 | C2F70EC056EDB31507FB82CB /* Pods-Bugly-iOS-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Bugly-iOS-Demo.release.xcconfig"; path = "Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo.release.xcconfig"; sourceTree = ""; }; 51 | /* End PBXFileReference section */ 52 | 53 | /* Begin PBXFrameworksBuildPhase section */ 54 | B5F302881B428C8A00D86667 /* Frameworks */ = { 55 | isa = PBXFrameworksBuildPhase; 56 | buildActionMask = 2147483647; 57 | files = ( 58 | ECCDA501ACAC32F171B70F48 /* libPods-Bugly-iOS-Demo.a in Frameworks */, 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | B5F302A11B428C8A00D86667 /* Frameworks */ = { 63 | isa = PBXFrameworksBuildPhase; 64 | buildActionMask = 2147483647; 65 | files = ( 66 | 9E558C51487B67EDF4FE3CF5 /* libPods-Bugly-iOS-DemoTests.a in Frameworks */, 67 | ); 68 | runOnlyForDeploymentPostprocessing = 0; 69 | }; 70 | /* End PBXFrameworksBuildPhase section */ 71 | 72 | /* Begin PBXGroup section */ 73 | 25BF45ABA61AB6428A9CE5B6 /* Frameworks */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 2039CD9BBF0FBA714BA843E3 /* libPods-Bugly-iOS-Demo.a */, 77 | 4B17720D9F0D2C2934FC7EB0 /* libPods-Bugly-iOS-DemoTests.a */, 78 | ); 79 | name = Frameworks; 80 | sourceTree = ""; 81 | }; 82 | B5F302821B428C8A00D86667 = { 83 | isa = PBXGroup; 84 | children = ( 85 | B5F3028D1B428C8A00D86667 /* Bugly-iOS-Demo */, 86 | B5F302A71B428C8A00D86667 /* Bugly-iOS-DemoTests */, 87 | B5F3028C1B428C8A00D86667 /* Products */, 88 | C6C7BAA7A4CF2434F2D354AA /* Pods */, 89 | 25BF45ABA61AB6428A9CE5B6 /* Frameworks */, 90 | ); 91 | sourceTree = ""; 92 | }; 93 | B5F3028C1B428C8A00D86667 /* Products */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | B5F3028B1B428C8A00D86667 /* Bugly-iOS-Demo.app */, 97 | B5F302A41B428C8A00D86667 /* Bugly-iOS-DemoTests.xctest */, 98 | ); 99 | name = Products; 100 | sourceTree = ""; 101 | }; 102 | B5F3028D1B428C8A00D86667 /* Bugly-iOS-Demo */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | B5F302921B428C8A00D86667 /* AppDelegate.h */, 106 | B5F302931B428C8A00D86667 /* AppDelegate.m */, 107 | B5F302951B428C8A00D86667 /* ViewController.h */, 108 | B5F302961B428C8A00D86667 /* ViewController.m */, 109 | B5F302981B428C8A00D86667 /* Main.storyboard */, 110 | B5F3029B1B428C8A00D86667 /* Images.xcassets */, 111 | B5F3029D1B428C8A00D86667 /* LaunchScreen.xib */, 112 | B5F3028E1B428C8A00D86667 /* Supporting Files */, 113 | ); 114 | path = "Bugly-iOS-Demo"; 115 | sourceTree = ""; 116 | }; 117 | B5F3028E1B428C8A00D86667 /* Supporting Files */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | B5F3028F1B428C8A00D86667 /* Info.plist */, 121 | B5F302901B428C8A00D86667 /* main.m */, 122 | ); 123 | name = "Supporting Files"; 124 | sourceTree = ""; 125 | }; 126 | B5F302A71B428C8A00D86667 /* Bugly-iOS-DemoTests */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | B5F302AA1B428C8A00D86667 /* Bugly_iOS_DemoTests.m */, 130 | B5F302A81B428C8A00D86667 /* Supporting Files */, 131 | ); 132 | path = "Bugly-iOS-DemoTests"; 133 | sourceTree = ""; 134 | }; 135 | B5F302A81B428C8A00D86667 /* Supporting Files */ = { 136 | isa = PBXGroup; 137 | children = ( 138 | B5F302A91B428C8A00D86667 /* Info.plist */, 139 | ); 140 | name = "Supporting Files"; 141 | sourceTree = ""; 142 | }; 143 | C6C7BAA7A4CF2434F2D354AA /* Pods */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 4D5BA866E49428B2504CCF41 /* Pods-Bugly-iOS-Demo.debug.xcconfig */, 147 | C2F70EC056EDB31507FB82CB /* Pods-Bugly-iOS-Demo.release.xcconfig */, 148 | 551F41AB08B76924C61A76C8 /* Pods-Bugly-iOS-DemoTests.debug.xcconfig */, 149 | 91E22768EC44BCD48818A628 /* Pods-Bugly-iOS-DemoTests.release.xcconfig */, 150 | ); 151 | name = Pods; 152 | sourceTree = ""; 153 | }; 154 | /* End PBXGroup section */ 155 | 156 | /* Begin PBXNativeTarget section */ 157 | B5F3028A1B428C8A00D86667 /* Bugly-iOS-Demo */ = { 158 | isa = PBXNativeTarget; 159 | buildConfigurationList = B5F302AE1B428C8A00D86667 /* Build configuration list for PBXNativeTarget "Bugly-iOS-Demo" */; 160 | buildPhases = ( 161 | 7E3EE105502F7FAB0FE17179 /* [CP] Check Pods Manifest.lock */, 162 | B5F302871B428C8A00D86667 /* Sources */, 163 | B5F302881B428C8A00D86667 /* Frameworks */, 164 | B5F302891B428C8A00D86667 /* Resources */, 165 | B587417F1B466BAC0063AF8E /* ShellScript */, 166 | ); 167 | buildRules = ( 168 | ); 169 | dependencies = ( 170 | ); 171 | name = "Bugly-iOS-Demo"; 172 | productName = "Bugly-iOS-Demo"; 173 | productReference = B5F3028B1B428C8A00D86667 /* Bugly-iOS-Demo.app */; 174 | productType = "com.apple.product-type.application"; 175 | }; 176 | B5F302A31B428C8A00D86667 /* Bugly-iOS-DemoTests */ = { 177 | isa = PBXNativeTarget; 178 | buildConfigurationList = B5F302B11B428C8A00D86667 /* Build configuration list for PBXNativeTarget "Bugly-iOS-DemoTests" */; 179 | buildPhases = ( 180 | B21390DF40A64A906C56B519 /* [CP] Check Pods Manifest.lock */, 181 | B5F302A01B428C8A00D86667 /* Sources */, 182 | B5F302A11B428C8A00D86667 /* Frameworks */, 183 | B5F302A21B428C8A00D86667 /* Resources */, 184 | ); 185 | buildRules = ( 186 | ); 187 | dependencies = ( 188 | B5F302A61B428C8A00D86667 /* PBXTargetDependency */, 189 | ); 190 | name = "Bugly-iOS-DemoTests"; 191 | productName = "Bugly-iOS-DemoTests"; 192 | productReference = B5F302A41B428C8A00D86667 /* Bugly-iOS-DemoTests.xctest */; 193 | productType = "com.apple.product-type.bundle.unit-test"; 194 | }; 195 | /* End PBXNativeTarget section */ 196 | 197 | /* Begin PBXProject section */ 198 | B5F302831B428C8A00D86667 /* Project object */ = { 199 | isa = PBXProject; 200 | attributes = { 201 | LastUpgradeCheck = 0630; 202 | ORGANIZATIONNAME = tencent.com; 203 | TargetAttributes = { 204 | B5F3028A1B428C8A00D86667 = { 205 | CreatedOnToolsVersion = 6.3.2; 206 | }; 207 | B5F302A31B428C8A00D86667 = { 208 | CreatedOnToolsVersion = 6.3.2; 209 | TestTargetID = B5F3028A1B428C8A00D86667; 210 | }; 211 | }; 212 | }; 213 | buildConfigurationList = B5F302861B428C8A00D86667 /* Build configuration list for PBXProject "Bugly-iOS-Demo" */; 214 | compatibilityVersion = "Xcode 3.2"; 215 | developmentRegion = English; 216 | hasScannedForEncodings = 0; 217 | knownRegions = ( 218 | en, 219 | Base, 220 | ); 221 | mainGroup = B5F302821B428C8A00D86667; 222 | productRefGroup = B5F3028C1B428C8A00D86667 /* Products */; 223 | projectDirPath = ""; 224 | projectRoot = ""; 225 | targets = ( 226 | B5F3028A1B428C8A00D86667 /* Bugly-iOS-Demo */, 227 | B5F302A31B428C8A00D86667 /* Bugly-iOS-DemoTests */, 228 | ); 229 | }; 230 | /* End PBXProject section */ 231 | 232 | /* Begin PBXResourcesBuildPhase section */ 233 | B5F302891B428C8A00D86667 /* Resources */ = { 234 | isa = PBXResourcesBuildPhase; 235 | buildActionMask = 2147483647; 236 | files = ( 237 | B5F3029A1B428C8A00D86667 /* Main.storyboard in Resources */, 238 | B5F3029F1B428C8A00D86667 /* LaunchScreen.xib in Resources */, 239 | B5F3029C1B428C8A00D86667 /* Images.xcassets in Resources */, 240 | ); 241 | runOnlyForDeploymentPostprocessing = 0; 242 | }; 243 | B5F302A21B428C8A00D86667 /* Resources */ = { 244 | isa = PBXResourcesBuildPhase; 245 | buildActionMask = 2147483647; 246 | files = ( 247 | ); 248 | runOnlyForDeploymentPostprocessing = 0; 249 | }; 250 | /* End PBXResourcesBuildPhase section */ 251 | 252 | /* Begin PBXShellScriptBuildPhase section */ 253 | 7E3EE105502F7FAB0FE17179 /* [CP] Check Pods Manifest.lock */ = { 254 | isa = PBXShellScriptBuildPhase; 255 | buildActionMask = 2147483647; 256 | files = ( 257 | ); 258 | inputPaths = ( 259 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 260 | "${PODS_ROOT}/Manifest.lock", 261 | ); 262 | name = "[CP] Check Pods Manifest.lock"; 263 | outputPaths = ( 264 | "$(DERIVED_FILE_DIR)/Pods-Bugly-iOS-Demo-checkManifestLockResult.txt", 265 | ); 266 | runOnlyForDeploymentPostprocessing = 0; 267 | shellPath = /bin/sh; 268 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 269 | showEnvVarsInLog = 0; 270 | }; 271 | B21390DF40A64A906C56B519 /* [CP] Check Pods Manifest.lock */ = { 272 | isa = PBXShellScriptBuildPhase; 273 | buildActionMask = 2147483647; 274 | files = ( 275 | ); 276 | inputPaths = ( 277 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 278 | "${PODS_ROOT}/Manifest.lock", 279 | ); 280 | name = "[CP] Check Pods Manifest.lock"; 281 | outputPaths = ( 282 | "$(DERIVED_FILE_DIR)/Pods-Bugly-iOS-DemoTests-checkManifestLockResult.txt", 283 | ); 284 | runOnlyForDeploymentPostprocessing = 0; 285 | shellPath = /bin/sh; 286 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 287 | showEnvVarsInLog = 0; 288 | }; 289 | B587417F1B466BAC0063AF8E /* ShellScript */ = { 290 | isa = PBXShellScriptBuildPhase; 291 | buildActionMask = 2147483647; 292 | files = ( 293 | ); 294 | inputPaths = ( 295 | ); 296 | outputPaths = ( 297 | ); 298 | runOnlyForDeploymentPostprocessing = 0; 299 | shellPath = /bin/sh; 300 | shellScript = "#!/bin/sh\n# Copyright 2014-2015 Bugly @Tencent. All rights reserved.\n#\n################################################################################\n# 注意: 请配置下面的信息\n################################################################################\nBUGLY_APP_ID=\"\"\nBUGLY_APP_KEY=\"\"\nBUNDLE_IDENTIFIER=\"\"\n################################################################################\n# 自定义配置\n################################################################################\n# Debug模式编译是否上传,1=上传 0=不上传,默认不上传\nUPLOAD_DEBUG_SYMBOLS=0\n#\n# 模拟器编译是否上传,1=上传 0=不上传,默认不上传\nUPLOAD_SIMULATOR_SYMBOLS=0\n#\n# # 脚本默认配置的版本格式为CFBundleShortVersionString(CFBundleVersion), 如果你修改默认的版本格式, 请设置此变量, 如果不想修改, 请忽略此设置\n# CUSTOMIZED_APP_VERSION=\"\"\n#\n#\n#\n# This script will extract symbols from the .dSYM and generate .symbol file(Bugly supported) and upload to server.\n# You could visit http://bugly.qq.com to get more details about Bugly.\n#\n# Usage:\n# \t* The instructions assume you have copyed this script into your project int Xcode.\n# \t* Copy the \"buglySymbolIOS.jar\" file into the \"~/bin\" folder.\n#\t* Open the project editor, select your build target.\n#\t* Click \"Build Phases\" at the top of the project editor.\n#\t* Click \"+\" button in the top left corner and select \"New Run Script Phase\".\n#\t* Click \"Run Script\".\n#\t* Paste the following script into the dark text box. You will have to uncomment the lines (remove the #) of course.\n#\n# --- SCRIPT BEGINS ON NEXT LINE, COPY AND EDIT FROM THERE ---\n#\n#\n#\n# --- END OF SCRIPT ---\n\n\n################################################################################\n# 注意: 如果你不知道此脚本的执行流程和用法,请不要随便修改!\n################################################################################\n\n# 退出执行并打印提示信息\nexitWithMessage() {\n echo \"--------------------------------\"\n echo -e \"${1}\"\n echo \"--------------------------------\"\n echo \"No upload and exit.\"\n echo \"----------------------------------------------------------------\"\n exit ${2}\n}\n\necho \"----------------------------------------------------------------\"\necho \"Copyright 2014-2015 Bugly @Tencent. All rights reserved.\"\n\necho \"This script will extract symbols from the .dSYM file and generate .symbol file(Bugly supported) and upload to server.\"\necho \"You could visit http://bugly.qq.com to get more details about Bugly.\"\necho \"----------------------------------------------------------------\"\n\necho \"Uploading dSYM to Bugly.\"\necho \"\"\n\n# Bugly服务域名\nDSYM_UPLOAD_DOMAIN=\"bugly.qq.com\"\n\n# 读取Info.plist文件中的版本信息\necho \"Info.Plist : ${INFOPLIST_FILE}\"\n\nBUNDLE_VERSION=$(/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' \"${INFOPLIST_FILE}\")\nBUNDLE_SHORT_VERSION=$(/usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' \"${INFOPLIST_FILE}\")\n\n# 组装Bugly默认识别的版本信息(格式为CFBundleShortVersionString(CFBundleVersion), 例如: 1.0(1))\nif [ ! \"${CUSTOMIZED_APP_VERSION}\" ]; then\nBUGLY_APP_VERSION=\"${BUNDLE_SHORT_VERSION}(${BUNDLE_VERSION})\"\nelse\nBUGLY_APP_VERSION=\"${CUSTOMIZED_APP_VERSION}\"\nfi\n\necho \"--------------------------------\"\necho \"Step 1: Prepare application information.\"\necho \"--------------------------------\"\n\necho \"Product Name: ${PRODUCT_NAME}\"\necho \"Bundle Identifier: ${BUNDLE_IDENTIFIER}\"\necho \"Version: ${BUNDLE_SHORT_VERSION}\"\necho \"Build: ${BUNDLE_VERSION}\"\n\necho \"Bugly App ID: ${BUGLY_APP_ID}\"\necho \"Bugly App key: ${BUGLY_APP_KEY}\"\necho \"Bugly App Version: ${BUGLY_APP_VERSION}\"\n\necho \"--------------------------------\"\necho \"Step 2: Check the arguments ...\"\n\n# 检查模拟器编译是否允许上传符号\nif [ \"$EFFECTIVE_PLATFORM_NAME\" == \"-iphonesimulator\" ]; then\nif [ $UPLOAD_SIMULATOR_SYMBOLS -eq 0 ]; then\nexitWithMessage \"Warning: Build for simulator and skipping to upload. \\nYou can modify 'UPLOAD_SIMULATOR_SYMBOLS' to 1 in the script.\" 0\nfi\nfi\n\nif [ \"${CONFIGURATION=}\" == \"Debug\" ]; then\nif [ $UPLOAD_DEBUG_SYMBOLS -eq 0 ]; then\nexitWithMessage \"Warning: Build for debug mode and skipping to upload. \\nYou can modify 'UPLOAD_DEBUG_SYMBOLS' to 1 in the script.\" 0\nfi\nfi\n\n# 检查必须参数是否设置\nif [ ! \"${BUGLY_APP_ID}\" ]; then\nexitWithMessage \"Error: Bugly App ID not defined.\" 1\nfi\n\nif [ ! \"${BUGLY_APP_KEY}\" ]; then\nexitWithMessage \"Error: Bugly APP Key not defined.\" 1\nfi\n\nif [ ! \"${BUNDLE_IDENTIFIER}\" ]; then\nexitWithMessage \"Error: Bundle Identifier not defined.\" 1\nfi\n\n# 提取符号信息\necho \"--------------------------------\"\necho \"Step 3: Extract symbol info from .dSYM file.\"\n\n# Bugly符号提取工具路径, 请确保已经把对应的buglySymbolIOS.jar拷贝到目录~/bin\nBUGLY_SYMBOL_JAR_PATH=\"$HOME/bin/buglySymbolIOS.jar\"\n\nif [ ! -e \"$BUGLY_SYMBOL_JAR_PATH\" ]; then\nexitWithMessage \"Error: Jar file '${BUGLY_SYMBOL_JAR_PATH}' was not found. \\nPlease copy the jar file into ~/bin folder.\" 1\nfi\n\n# .dSYM文件信息\nDSYM_SRC=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}\"\n\nDSYM_SYMBOL_OUT_ZIP_NAME=\"${DWARF_DSYM_FILE_NAME}.bSymbol.zip\"\n# 替换空格\nDSYM_SYMBOL_OUT_ZIP_NAME=\"${DSYM_SYMBOL_OUT_ZIP_NAME// /_}\"\nDSYM_ZIP_FPATH=\"${BUILT_PRODUCTS_DIR}/${DSYM_SYMBOL_OUT_ZIP_NAME}\"\n\nDSYM_SYMBOL_BACKUP_DIR=${BUILD_DIR}/Symbols\n\nif [ ! -e \"${DSYM_SYMBOL_BACKUP_DIR}\" ]; then\nmkdir ${DSYM_SYMBOL_BACKUP_DIR}\nfi\n\n# 备份并清理\nfind ${BUILT_PRODUCTS_DIR} -name \"*.zip\" -print0 | xargs -0 -I {} mv {} ${DSYM_SYMBOL_BACKUP_DIR}\n/bin/rm -rf \"${BUILT_PRODUCTS_DIR}/*.zip\"\n\necho \".dSYM file: ${DSYM_SRC}\"\nif [ ! -d \"$DSYM_SRC\" ]; then\nexitWithMessage \"dSYM source not found: ${DSYM_SRC}\" 1\nfi\n\necho \"Extract symbols from dSYM to ${DSYM_ZIP_FPATH}.\"\n\necho \"--------------------------------\"\n(/usr/bin/java -jar \"${BUGLY_SYMBOL_JAR_PATH}\" -i \"${DSYM_SRC}\" -o \"${DSYM_ZIP_FPATH}\" ) || exitWithMessage \"Error: Failed to extract symbols.\" 1\necho \"--------------------------------\"\n\nif [ ! -e \"${DSYM_ZIP_FPATH}\" ]; then\nDSYM_SYMBOL_OUT_ZIP_NAME=$(ls ${BUILT_PRODUCTS_DIR} | grep \".zip\")\nDSYM_ZIP_FPATH=\"${BUILT_PRODUCTS_DIR}/${DSYM_SYMBOL_OUT_ZIP_NAME}\"\nDSYM_SYMBOL_OUT_ZIP_NAME=${DSYM_SYMBOL_OUT_ZIP_NAME//&/_}\n fi\n \n if [ ! -e \"${DSYM_ZIP_FPATH}\" ] ; then\n exitWithMessage \"no symbol file zip archive generated: ${DSYM_ZIP_FPATH}\" 1\n fi\n \n echo \"Step 4: Upload the symbols of dSYM.\"\n echo \"--------------------------------\"\n echo \"zip : ${DSYM_SYMBOL_OUT_ZIP_NAME}\"\n echo \"dir : ${DSYM_ZIP_FPATH}\"\n \n echo \"dSYM upload domain: ${DSYM_UPLOAD_DOMAIN}\"\n DSYM_UPLOAD_URL=\"http://${DSYM_UPLOAD_DOMAIN}/upload/dsym?app=${BUGLY_APP_ID}&pid=2&ver=${BUGLY_APP_VERSION}&n=${DSYM_SYMBOL_OUT_ZIP_NAME}&key=${BUGLY_APP_KEY}&bid=${BUNDLE_IDENTIFIER}\"\n echo \"dSYM upload url: ${DSYM_UPLOAD_URL}\"\n \n # Upload dSYM to Bugly\n echo \"curl --header \"Content-Type:application/zip\" --data-binary \"@${DSYM_ZIP_FPATH}\" \"${DSYM_UPLOAD_URL}\" --verbose\"\n \n echo \"--------------------------------\"\n STATUS=$(/usr/bin/curl --header \"Content-Type:application/zip\" --data-binary \"@${DSYM_ZIP_FPATH}\" \"${DSYM_UPLOAD_URL}\" --verbose)\n echo \"--------------------------------\"\n \n UPLOAD_RESULT=\"FAILTURE\"\n echo \"Bugly server response: ${STATUS}\"\n if [ ! \"${STATUS}\" ]; then\n echo \"Error: Failed to upload the zip archive file.\"\n elif [[ \"${STATUS}\" == *\":true\"* ]]; then\n echo \"Success to upload the dSYM for the app [${BUNDLE_IDENTIFIER} ${BUGLY_APP_VERSION}]\"\n UPLOAD_RESULT=\"SUCCESS\"\n else\n echo \"Error: Failed to upload the zip archive file to Bugly.\"\n fi\n \n #Remove temp dSYM archive\n echo \"Remove temporary zip archive: ${DSYM_ZIP_FPATH}\"\n #/bin/rm -f \"${DSYM_ZIP_FPATH}\"\n \n if [ \"$?\" -ne 0 ]; then\n exitWithMessage \"Error: Failed to remove temporary zip archive.\" 1\n fi\n \n echo \"--------------------------------\"\n echo \"${UPLOAD_RESULT} - dSYM upload complete.\"\n \n if [[ \"${UPLOAD_RESULT}\" == \"FAILTURE\" ]]; then\n echo \"--------------------------------\"\n echo \"Failed to upload the dSYM\"\n echo \"Please check the script and try it again.\"\n fi\n \n echo \"----------------------------------------------------------------\""; 301 | }; 302 | /* End PBXShellScriptBuildPhase section */ 303 | 304 | /* Begin PBXSourcesBuildPhase section */ 305 | B5F302871B428C8A00D86667 /* Sources */ = { 306 | isa = PBXSourcesBuildPhase; 307 | buildActionMask = 2147483647; 308 | files = ( 309 | B5F302971B428C8A00D86667 /* ViewController.m in Sources */, 310 | B5F302941B428C8A00D86667 /* AppDelegate.m in Sources */, 311 | B5F302911B428C8A00D86667 /* main.m in Sources */, 312 | ); 313 | runOnlyForDeploymentPostprocessing = 0; 314 | }; 315 | B5F302A01B428C8A00D86667 /* Sources */ = { 316 | isa = PBXSourcesBuildPhase; 317 | buildActionMask = 2147483647; 318 | files = ( 319 | B5F302AB1B428C8A00D86667 /* Bugly_iOS_DemoTests.m in Sources */, 320 | ); 321 | runOnlyForDeploymentPostprocessing = 0; 322 | }; 323 | /* End PBXSourcesBuildPhase section */ 324 | 325 | /* Begin PBXTargetDependency section */ 326 | B5F302A61B428C8A00D86667 /* PBXTargetDependency */ = { 327 | isa = PBXTargetDependency; 328 | target = B5F3028A1B428C8A00D86667 /* Bugly-iOS-Demo */; 329 | targetProxy = B5F302A51B428C8A00D86667 /* PBXContainerItemProxy */; 330 | }; 331 | /* End PBXTargetDependency section */ 332 | 333 | /* Begin PBXVariantGroup section */ 334 | B5F302981B428C8A00D86667 /* Main.storyboard */ = { 335 | isa = PBXVariantGroup; 336 | children = ( 337 | B5F302991B428C8A00D86667 /* Base */, 338 | ); 339 | name = Main.storyboard; 340 | sourceTree = ""; 341 | }; 342 | B5F3029D1B428C8A00D86667 /* LaunchScreen.xib */ = { 343 | isa = PBXVariantGroup; 344 | children = ( 345 | B5F3029E1B428C8A00D86667 /* Base */, 346 | ); 347 | name = LaunchScreen.xib; 348 | sourceTree = ""; 349 | }; 350 | /* End PBXVariantGroup section */ 351 | 352 | /* Begin XCBuildConfiguration section */ 353 | B5F302AC1B428C8A00D86667 /* Debug */ = { 354 | isa = XCBuildConfiguration; 355 | buildSettings = { 356 | ALWAYS_SEARCH_USER_PATHS = NO; 357 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 358 | CLANG_CXX_LIBRARY = "libc++"; 359 | CLANG_ENABLE_MODULES = YES; 360 | CLANG_ENABLE_OBJC_ARC = YES; 361 | CLANG_WARN_BOOL_CONVERSION = YES; 362 | CLANG_WARN_CONSTANT_CONVERSION = YES; 363 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 364 | CLANG_WARN_EMPTY_BODY = YES; 365 | CLANG_WARN_ENUM_CONVERSION = YES; 366 | CLANG_WARN_INT_CONVERSION = YES; 367 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 368 | CLANG_WARN_UNREACHABLE_CODE = YES; 369 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 370 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 371 | COPY_PHASE_STRIP = NO; 372 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 373 | ENABLE_STRICT_OBJC_MSGSEND = YES; 374 | GCC_C_LANGUAGE_STANDARD = gnu99; 375 | GCC_DYNAMIC_NO_PIC = NO; 376 | GCC_NO_COMMON_BLOCKS = YES; 377 | GCC_OPTIMIZATION_LEVEL = 0; 378 | GCC_PREPROCESSOR_DEFINITIONS = ( 379 | "DEBUG=1", 380 | "$(inherited)", 381 | ); 382 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 383 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 384 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 385 | GCC_WARN_UNDECLARED_SELECTOR = YES; 386 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 387 | GCC_WARN_UNUSED_FUNCTION = YES; 388 | GCC_WARN_UNUSED_VARIABLE = YES; 389 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 390 | MTL_ENABLE_DEBUG_INFO = YES; 391 | ONLY_ACTIVE_ARCH = YES; 392 | SDKROOT = iphoneos; 393 | }; 394 | name = Debug; 395 | }; 396 | B5F302AD1B428C8A00D86667 /* Release */ = { 397 | isa = XCBuildConfiguration; 398 | buildSettings = { 399 | ALWAYS_SEARCH_USER_PATHS = NO; 400 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 401 | CLANG_CXX_LIBRARY = "libc++"; 402 | CLANG_ENABLE_MODULES = YES; 403 | CLANG_ENABLE_OBJC_ARC = YES; 404 | CLANG_WARN_BOOL_CONVERSION = YES; 405 | CLANG_WARN_CONSTANT_CONVERSION = YES; 406 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 407 | CLANG_WARN_EMPTY_BODY = YES; 408 | CLANG_WARN_ENUM_CONVERSION = YES; 409 | CLANG_WARN_INT_CONVERSION = YES; 410 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 411 | CLANG_WARN_UNREACHABLE_CODE = YES; 412 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 413 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 414 | COPY_PHASE_STRIP = NO; 415 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 416 | ENABLE_NS_ASSERTIONS = NO; 417 | ENABLE_STRICT_OBJC_MSGSEND = YES; 418 | GCC_C_LANGUAGE_STANDARD = gnu99; 419 | GCC_NO_COMMON_BLOCKS = YES; 420 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 421 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 422 | GCC_WARN_UNDECLARED_SELECTOR = YES; 423 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 424 | GCC_WARN_UNUSED_FUNCTION = YES; 425 | GCC_WARN_UNUSED_VARIABLE = YES; 426 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 427 | MTL_ENABLE_DEBUG_INFO = NO; 428 | SDKROOT = iphoneos; 429 | VALIDATE_PRODUCT = YES; 430 | }; 431 | name = Release; 432 | }; 433 | B5F302AF1B428C8A00D86667 /* Debug */ = { 434 | isa = XCBuildConfiguration; 435 | baseConfigurationReference = 4D5BA866E49428B2504CCF41 /* Pods-Bugly-iOS-Demo.debug.xcconfig */; 436 | buildSettings = { 437 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 438 | INFOPLIST_FILE = "Bugly-iOS-Demo/Info.plist"; 439 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 440 | PRODUCT_NAME = "$(TARGET_NAME)"; 441 | }; 442 | name = Debug; 443 | }; 444 | B5F302B01B428C8A00D86667 /* Release */ = { 445 | isa = XCBuildConfiguration; 446 | baseConfigurationReference = C2F70EC056EDB31507FB82CB /* Pods-Bugly-iOS-Demo.release.xcconfig */; 447 | buildSettings = { 448 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 449 | INFOPLIST_FILE = "Bugly-iOS-Demo/Info.plist"; 450 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 451 | PRODUCT_NAME = "$(TARGET_NAME)"; 452 | }; 453 | name = Release; 454 | }; 455 | B5F302B21B428C8A00D86667 /* Debug */ = { 456 | isa = XCBuildConfiguration; 457 | baseConfigurationReference = 551F41AB08B76924C61A76C8 /* Pods-Bugly-iOS-DemoTests.debug.xcconfig */; 458 | buildSettings = { 459 | BUNDLE_LOADER = "$(TEST_HOST)"; 460 | FRAMEWORK_SEARCH_PATHS = ( 461 | "$(SDKROOT)/Developer/Library/Frameworks", 462 | "$(inherited)", 463 | ); 464 | GCC_PREPROCESSOR_DEFINITIONS = ( 465 | "DEBUG=1", 466 | "$(inherited)", 467 | ); 468 | INFOPLIST_FILE = "Bugly-iOS-DemoTests/Info.plist"; 469 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 470 | PRODUCT_NAME = "$(TARGET_NAME)"; 471 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Bugly-iOS-Demo.app/Bugly-iOS-Demo"; 472 | }; 473 | name = Debug; 474 | }; 475 | B5F302B31B428C8A00D86667 /* Release */ = { 476 | isa = XCBuildConfiguration; 477 | baseConfigurationReference = 91E22768EC44BCD48818A628 /* Pods-Bugly-iOS-DemoTests.release.xcconfig */; 478 | buildSettings = { 479 | BUNDLE_LOADER = "$(TEST_HOST)"; 480 | FRAMEWORK_SEARCH_PATHS = ( 481 | "$(SDKROOT)/Developer/Library/Frameworks", 482 | "$(inherited)", 483 | ); 484 | INFOPLIST_FILE = "Bugly-iOS-DemoTests/Info.plist"; 485 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 486 | PRODUCT_NAME = "$(TARGET_NAME)"; 487 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Bugly-iOS-Demo.app/Bugly-iOS-Demo"; 488 | }; 489 | name = Release; 490 | }; 491 | /* End XCBuildConfiguration section */ 492 | 493 | /* Begin XCConfigurationList section */ 494 | B5F302861B428C8A00D86667 /* Build configuration list for PBXProject "Bugly-iOS-Demo" */ = { 495 | isa = XCConfigurationList; 496 | buildConfigurations = ( 497 | B5F302AC1B428C8A00D86667 /* Debug */, 498 | B5F302AD1B428C8A00D86667 /* Release */, 499 | ); 500 | defaultConfigurationIsVisible = 0; 501 | defaultConfigurationName = Release; 502 | }; 503 | B5F302AE1B428C8A00D86667 /* Build configuration list for PBXNativeTarget "Bugly-iOS-Demo" */ = { 504 | isa = XCConfigurationList; 505 | buildConfigurations = ( 506 | B5F302AF1B428C8A00D86667 /* Debug */, 507 | B5F302B01B428C8A00D86667 /* Release */, 508 | ); 509 | defaultConfigurationIsVisible = 0; 510 | defaultConfigurationName = Release; 511 | }; 512 | B5F302B11B428C8A00D86667 /* Build configuration list for PBXNativeTarget "Bugly-iOS-DemoTests" */ = { 513 | isa = XCConfigurationList; 514 | buildConfigurations = ( 515 | B5F302B21B428C8A00D86667 /* Debug */, 516 | B5F302B31B428C8A00D86667 /* Release */, 517 | ); 518 | defaultConfigurationIsVisible = 0; 519 | defaultConfigurationName = Release; 520 | }; 521 | /* End XCConfigurationList section */ 522 | }; 523 | rootObject = B5F302831B428C8A00D86667 /* Project object */; 524 | } 525 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/project.xcworkspace/xcshareddata/Bugly-iOS-Demo.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 3AB2543C-C261-440B-A7D5-3AECAEFF979F 9 | IDESourceControlProjectName 10 | project 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 34B98B0D00779920B097AC78385BFB8778F9B564 14 | https://github.com/BuglyDevTeam/Bugly-iOS 15 | 16 | IDESourceControlProjectPath 17 | Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/project.xcworkspace 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 34B98B0D00779920B097AC78385BFB8778F9B564 21 | ../../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/BuglyDevTeam/Bugly-iOS 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 34B98B0D00779920B097AC78385BFB8778F9B564 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 34B98B0D00779920B097AC78385BFB8778F9B564 36 | IDESourceControlWCCName 37 | Bugly-Pods 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/project.xcworkspace/xcuserdata/ben.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/project.xcworkspace/xcuserdata/ben.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/xcshareddata/xcschemes/Bugly-iOS-Demo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 53 | 55 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/xcuserdata/ben.xcuserdatad/xcschemes/Bugly-iOS-Demo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 77 | 83 | 84 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/xcuserdata/ben.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Bugly-iOS-Demo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | B5F3028A1B428C8A00D86667 16 | 17 | primary 18 | 19 | 20 | B5F302A31B428C8A00D86667 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcodeproj/xcuserdata/zhhp1121.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Bugly-iOS-Demo.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 3 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | B5F3028A1B428C8A00D86667 16 | 17 | primary 18 | 19 | 20 | B5F302A31B428C8A00D86667 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/xcshareddata/Bugly-iOS-Demo.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 89A082DA-92D4-40D6-81BF-DBD4710E867D 9 | IDESourceControlProjectName 10 | Bugly-iOS-Demo 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 34B98B0D00779920B097AC78385BFB8778F9B564 14 | https://github.com/BuglyDevTeam/Bugly-iOS 15 | 16 | IDESourceControlProjectPath 17 | Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 34B98B0D00779920B097AC78385BFB8778F9B564 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/BuglyDevTeam/Bugly-iOS 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 34B98B0D00779920B097AC78385BFB8778F9B564 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 34B98B0D00779920B097AC78385BFB8778F9B564 36 | IDESourceControlWCCName 37 | Bugly-Pods 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/xcuserdata/ben.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/xcuserdata/ben.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/xcuserdata/zhhp1121.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/Bugly-iOS-Demo.xcworkspace/xcuserdata/zhhp1121.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Bugly-iOS-Demo 4 | // 5 | // Created by Ben Xu on 15/6/30. 6 | // Copyright (c) 2015年 tencent.com. 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 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // Bugly-iOS-Demo 4 | // 5 | // Created by Ben Xu on 15/6/30. 6 | // Copyright (c) 2015年 tencent.com. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import 11 | 12 | //请替换成在 bugly.qq.com 申请到的 appid 13 | #define BUGLY_APPID @"063db5078c" 14 | 15 | @interface AppDelegate () 16 | 17 | @end 18 | 19 | @implementation AppDelegate 20 | 21 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 22 | //Bugly 自定义设置,可选 23 | BuglyConfig *bConfig = [[BuglyConfig alloc] init]; 24 | //设置渠道标识 25 | bConfig.channel = @"Github Demo"; 26 | //开启卡顿功能 27 | bConfig.blockMonitorEnable = YES; 28 | //卡顿超时设为1秒 29 | bConfig.blockMonitorTimeout = 1; 30 | //开启非正常退出上报 31 | bConfig.unexpectedTerminatingDetectionEnable = YES; 32 | //开启页面追踪功能 33 | bConfig.viewControllerTrackingEnable = YES; 34 | //开启控制台日志上报 35 | bConfig.consolelogEnable = YES; 36 | //设置Bugly delegate 37 | bConfig.delegate = self; 38 | // 使用AppID初始化SDK 39 | [Bugly startWithAppId:BUGLY_APPID 40 | #ifdef DEBUG 41 | developmentDevice:YES 42 | #endif 43 | config:bConfig]; 44 | //设置用户标识 45 | [Bugly setUserIdentifier:[UIDevice currentDevice].name]; 46 | return YES; 47 | } 48 | 49 | /** 50 | * @brief 崩溃发生时的回调处理函数, 开发者可以在这里获取崩溃信息, 并为崩溃信息添加附带信息上报 51 | * 52 | * @return 需要随着崩溃信息一起上报的数据 53 | */ 54 | - (NSString *)attachmentForException:(NSException *)exception { 55 | return @"DEMO:需要随着崩溃信息一起上报的数据"; 56 | } 57 | @end 58 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 21 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/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 | 42 | 47 | 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 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/Images.xcassets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/Bugly-iOS-Demo/Images.xcassets/.DS_Store -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/Images.xcassets/BuglyDemoImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "bugly_demo_image@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/Images.xcassets/BuglyDemoImage.imageset/bugly_demo_image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/Bugly-iOS-Demo/Images.xcassets/BuglyDemoImage.imageset/bugly_demo_image@2x.png -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.tencent.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 2.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Bugly-iOS-Demo 4 | // 5 | // Created by Ben Xu on 15/6/30. 6 | // Copyright (c) 2015年 tencent.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // Bugly-iOS-Demo 4 | // 5 | // Created by Ben Xu on 15/6/30. 6 | // Copyright (c) 2015年 tencent.com. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import 11 | 12 | @interface ViewController () 13 | @property (weak, nonatomic) IBOutlet UILabel *warningLabel; 14 | @property (weak, nonatomic) IBOutlet UIButton *testCrashButton; 15 | @property (weak, nonatomic) IBOutlet UILabel *infoLabel; 16 | 17 | @end 18 | 19 | @implementation ViewController 20 | 21 | - (NSAttributedString *)warningString { 22 | NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"当前处于 Xcode调试状态!\n请断开调试模式再次启动 App 后触发测试崩溃\n\n "]; 23 | NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init]; 24 | textAttachment.image = [UIImage imageNamed:@"BuglyDemoImage"]; 25 | NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment]; 26 | [attributedString replaceCharactersInRange:NSMakeRange(attributedString.length - 1, 1) withAttributedString:attrStringWithImage]; 27 | 28 | return [[NSAttributedString alloc] initWithAttributedString:attributedString]; 29 | } 30 | 31 | - (void)viewDidLoad { 32 | [super viewDidLoad]; 33 | BOOL isDebug = debugger_should_exit(); 34 | if (isDebug) { 35 | self.warningLabel.attributedText = [self warningString]; 36 | } 37 | self.warningLabel.hidden = !isDebug; 38 | self.testCrashButton.enabled = !isDebug; 39 | self.infoLabel.attributedText = [[NSAttributedString alloc] initWithString:@"当点击 Crash 按钮后,App 将会崩溃\n崩溃后请到 bugly.qq.com 查看上报数据"]; 40 | } 41 | 42 | - (IBAction)testCrash:(UIButton *)sender { 43 | NSLog(@"%@",@[][1]); 44 | } 45 | 46 | static bool debugger_should_exit (void) { 47 | #if !TARGET_OS_IPHONE 48 | return false; 49 | #endif 50 | 51 | struct kinfo_proc info; 52 | size_t info_size = sizeof(info); 53 | int name[4]; 54 | 55 | name[0] = CTL_KERN; 56 | name[1] = KERN_PROC; 57 | name[2] = KERN_PROC_PID; 58 | name[3] = getpid(); 59 | 60 | if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) { 61 | NSLog(@"sysctl() failed: %s", strerror(errno)); 62 | return false; 63 | } 64 | 65 | if ((info.kp_proc.p_flag & P_TRACED) != 0) 66 | return true; 67 | 68 | return false; 69 | } 70 | 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-Demo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Bugly-iOS-Demo 4 | // 5 | // Created by Ben Xu on 15/6/30. 6 | // Copyright (c) 2015年 tencent.com. 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 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-DemoTests/Bugly_iOS_DemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // Bugly_iOS_DemoTests.m 3 | // Bugly-iOS-DemoTests 4 | // 5 | // Created by Ben Xu on 15/6/30. 6 | // Copyright (c) 2015年 tencent.com. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface Bugly_iOS_DemoTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation Bugly_iOS_DemoTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Bugly-iOS-DemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.tencent.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '6.0' 3 | 4 | target 'Bugly-iOS-Demo' do 5 | pod 'Bugly','~> 2.5.71' 6 | end 7 | 8 | target 'Bugly-iOS-DemoTests' do 9 | 10 | end 11 | 12 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Bugly (2.5.71) 3 | 4 | DEPENDENCIES: 5 | - Bugly (~> 2.5.71) 6 | 7 | SPEC REPOS: 8 | trunk: 9 | - Bugly 10 | 11 | SPEC CHECKSUMS: 12 | Bugly: fd066c75c4a0eca1440f9b6a84bd37d51bfc85ac 13 | 14 | PODFILE CHECKSUM: f0dc88a4bb3f9f0d5f14f5c2e6b1e47e1b7dfdb9 15 | 16 | COCOAPODS: 1.9.1 17 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Bugly/Bugly.framework/Bugly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/Bugly-iOS-Demo/Pods/Bugly/Bugly.framework/Bugly -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Bugly/Bugly.framework/Headers/Bugly.h: -------------------------------------------------------------------------------- 1 | // 2 | // Bugly.h 3 | // 4 | // Version: 2.5(71) 5 | // 6 | // Copyright (c) 2017年 Tencent. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "BuglyConfig.h" 12 | #import "BuglyLog.h" 13 | 14 | BLY_START_NONNULL 15 | 16 | @interface Bugly : NSObject 17 | 18 | /** 19 | * 初始化Bugly,使用默认BuglyConfigs 20 | * 21 | * @param appId 注册Bugly分配的应用唯一标识 22 | */ 23 | + (void)startWithAppId:(NSString * BLY_NULLABLE)appId; 24 | 25 | /** 26 | * 使用指定配置初始化Bugly 27 | * 28 | * @param appId 注册Bugly分配的应用唯一标识 29 | * @param config 传入配置的 BuglyConfig 30 | */ 31 | + (void)startWithAppId:(NSString * BLY_NULLABLE)appId 32 | config:(BuglyConfig * BLY_NULLABLE)config; 33 | 34 | /** 35 | * 使用指定配置初始化Bugly 36 | * 37 | * @param appId 注册Bugly分配的应用唯一标识 38 | * @param development 是否开发设备 39 | * @param config 传入配置的 BuglyConfig 40 | */ 41 | + (void)startWithAppId:(NSString * BLY_NULLABLE)appId 42 | developmentDevice:(BOOL)development 43 | config:(BuglyConfig * BLY_NULLABLE)config; 44 | 45 | /** 46 | * 设置用户标识 47 | * 48 | * @param userId 用户标识 49 | */ 50 | + (void)setUserIdentifier:(NSString *)userId; 51 | 52 | /** 53 | * 更新版本信息 54 | * 55 | * @param version 应用版本信息 56 | */ 57 | + (void)updateAppVersion:(NSString *)version; 58 | 59 | /** 60 | * 设置关键数据,随崩溃信息上报 61 | * 62 | * @param value KEY 63 | * @param key VALUE 64 | */ 65 | + (void)setUserValue:(NSString *)value 66 | forKey:(NSString *)key; 67 | 68 | /** 69 | * 获取USER ID 70 | * 71 | * @return USER ID 72 | */ 73 | + (NSString *)buglyUserIdentifier; 74 | 75 | /** 76 | * 获取关键数据 77 | * 78 | * @return 关键数据 79 | */ 80 | + (NSDictionary * BLY_NULLABLE)allUserValues; 81 | 82 | /** 83 | * 设置标签 84 | * 85 | * @param tag 标签ID,可在网站生成 86 | */ 87 | + (void)setTag:(NSUInteger)tag; 88 | 89 | /** 90 | * 获取当前设置标签 91 | * 92 | * @return 当前标签ID 93 | */ 94 | + (NSUInteger)currentTag; 95 | 96 | /** 97 | * 获取设备ID 98 | * 99 | * @return 设备ID 100 | */ 101 | + (NSString *)buglyDeviceId; 102 | 103 | /** 104 | * 上报自定义Objective-C异常 105 | * 106 | * @param exception 异常信息 107 | */ 108 | + (void)reportException:(NSException *)exception; 109 | 110 | /** 111 | * 上报错误 112 | * 113 | * @param error 错误信息 114 | */ 115 | + (void)reportError:(NSError *)error; 116 | 117 | /** 118 | * @brief 上报自定义错误 119 | * 120 | * @param category 类型(Cocoa=3,CSharp=4,JS=5,Lua=6) 121 | * @param aName 名称 122 | * @param aReason 错误原因 123 | * @param aStackArray 堆栈 124 | * @param info 附加数据 125 | * @param terminate 上报后是否退出应用进程 126 | */ 127 | + (void)reportExceptionWithCategory:(NSUInteger)category 128 | name:(NSString *)aName 129 | reason:(NSString *)aReason 130 | callStack:(NSArray *)aStackArray 131 | extraInfo:(NSDictionary *)info 132 | terminateApp:(BOOL)terminate; 133 | 134 | /** 135 | * SDK 版本信息 136 | * 137 | * @return SDK版本号 138 | */ 139 | + (NSString *)sdkVersion; 140 | 141 | /** 142 | * APP 版本信息 143 | * 144 | * @return SDK版本号 145 | */ 146 | + (NSString *)appVersion; 147 | 148 | /** 149 | * App 是否发生了连续闪退 150 | * 如果 启动SDK 且 5秒内 闪退,且次数达到 3次 则判定为连续闪退 151 | * 152 | * @return 是否连续闪退 153 | */ 154 | + (BOOL)isAppCrashedOnStartUpExceedTheLimit; 155 | 156 | /** 157 | * 关闭bugly监控 158 | */ 159 | + (void)closeCrashReport; 160 | 161 | BLY_END_NONNULL 162 | 163 | @end 164 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // BuglyConfig.h 3 | // Bugly 4 | // 5 | // Copyright (c) 2016年 Tencent. All rights reserved. 6 | // 7 | 8 | #pragma once 9 | 10 | #define BLY_UNAVAILABLE(x) __attribute__((unavailable(x))) 11 | 12 | #if __has_feature(nullability) 13 | #define BLY_NONNULL __nonnull 14 | #define BLY_NULLABLE __nullable 15 | #define BLY_START_NONNULL _Pragma("clang assume_nonnull begin") 16 | #define BLY_END_NONNULL _Pragma("clang assume_nonnull end") 17 | #else 18 | #define BLY_NONNULL 19 | #define BLY_NULLABLE 20 | #define BLY_START_NONNULL 21 | #define BLY_END_NONNULL 22 | #endif 23 | 24 | #import 25 | 26 | #import "BuglyLog.h" 27 | 28 | BLY_START_NONNULL 29 | 30 | @protocol BuglyDelegate 31 | 32 | @optional 33 | /** 34 | * 发生异常时回调 35 | * 36 | * @param exception 异常信息 37 | * 38 | * @return 返回需上报记录,随异常上报一起上报 39 | */ 40 | - (NSString * BLY_NULLABLE)attachmentForException:(NSException * BLY_NULLABLE)exception; 41 | 42 | 43 | /** 44 | * 策略激活时回调 45 | * 46 | * @param tacticInfo 47 | * 48 | * @return app是否弹框展示 49 | */ 50 | - (BOOL) h5AlertForTactic:(NSDictionary *)tacticInfo; 51 | 52 | @end 53 | 54 | @interface BuglyConfig : NSObject 55 | 56 | /** 57 | * SDK Debug信息开关, 默认关闭 58 | */ 59 | @property (nonatomic, assign) BOOL debugMode; 60 | 61 | /** 62 | * 设置自定义渠道标识 63 | */ 64 | @property (nonatomic, copy) NSString *channel; 65 | 66 | /** 67 | * 设置自定义版本号 68 | */ 69 | @property (nonatomic, copy) NSString *version; 70 | 71 | /** 72 | * 设置自定义设备唯一标识 73 | */ 74 | @property (nonatomic, copy) NSString *deviceIdentifier; 75 | 76 | /** 77 | * 卡顿监控开关,默认关闭 78 | */ 79 | @property (nonatomic) BOOL blockMonitorEnable; 80 | 81 | /** 82 | * 卡顿监控判断间隔,单位为秒 83 | */ 84 | @property (nonatomic) NSTimeInterval blockMonitorTimeout; 85 | 86 | /** 87 | * 设置 App Groups Id (如有使用 Bugly iOS Extension SDK,请设置该值) 88 | */ 89 | @property (nonatomic, copy) NSString *applicationGroupIdentifier; 90 | 91 | /** 92 | * 进程内还原开关,默认开启 93 | */ 94 | @property (nonatomic) BOOL symbolicateInProcessEnable; 95 | 96 | /** 97 | * 非正常退出事件记录开关,默认关闭 98 | */ 99 | @property (nonatomic) BOOL unexpectedTerminatingDetectionEnable; 100 | 101 | /** 102 | * 页面信息记录开关,默认开启 103 | */ 104 | @property (nonatomic) BOOL viewControllerTrackingEnable; 105 | 106 | /** 107 | * Bugly Delegate 108 | */ 109 | @property (nonatomic, assign) id delegate; 110 | 111 | /** 112 | * 控制自定义日志上报,默认值为BuglyLogLevelSilent,即关闭日志记录功能。 113 | * 如果设置为BuglyLogLevelWarn,则在崩溃时会上报Warn、Error接口打印的日志 114 | */ 115 | @property (nonatomic, assign) BuglyLogLevel reportLogLevel; 116 | 117 | /** 118 | * 崩溃数据过滤器,如果崩溃堆栈的模块名包含过滤器中设置的关键字,则崩溃数据不会进行上报 119 | * 例如,过滤崩溃堆栈中包含搜狗输入法的数据,可以添加过滤器关键字SogouInputIPhone.dylib等 120 | */ 121 | @property (nonatomic, copy) NSArray *excludeModuleFilter; 122 | 123 | /** 124 | * 控制台日志上报开关,默认开启 125 | */ 126 | @property (nonatomic, assign) BOOL consolelogEnable; 127 | 128 | /** 129 | * 崩溃退出超时,如果监听到崩溃后,App一直没有退出,则到达超时时间后会自动abort进程退出 130 | * 默认值 5s, 单位 秒 131 | * 当赋值为0时,则不会自动abort进程退出 132 | */ 133 | @property (nonatomic, assign) NSUInteger crashAbortTimeout; 134 | 135 | /** 136 | * 设置自定义联网、crash上报域名 137 | */ 138 | @property (nonatomic, copy) NSString *crashServerUrl; 139 | 140 | @end 141 | BLY_END_NONNULL 142 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h: -------------------------------------------------------------------------------- 1 | // 2 | // BuglyLog.h 3 | // Bugly 4 | // 5 | // Copyright (c) 2017年 Tencent. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | // Log level for Bugly Log 11 | typedef NS_ENUM(NSUInteger, BuglyLogLevel) { 12 | BuglyLogLevelSilent = 0, 13 | BuglyLogLevelError = 1, 14 | BuglyLogLevelWarn = 2, 15 | BuglyLogLevelInfo = 3, 16 | BuglyLogLevelDebug = 4, 17 | BuglyLogLevelVerbose = 5, 18 | }; 19 | #pragma mark - 20 | 21 | OBJC_EXTERN void BLYLog(BuglyLogLevel level, NSString *format, ...) NS_FORMAT_FUNCTION(2, 3); 22 | 23 | OBJC_EXTERN void BLYLogv(BuglyLogLevel level, NSString *format, va_list args) NS_FORMAT_FUNCTION(2, 0); 24 | 25 | #pragma mark - 26 | #define BUGLY_LOG_MACRO(_level, fmt, ...) [BuglyLog level:_level tag:nil log:fmt, ##__VA_ARGS__] 27 | 28 | #define BLYLogError(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelError, fmt, ##__VA_ARGS__) 29 | #define BLYLogWarn(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelWarn, fmt, ##__VA_ARGS__) 30 | #define BLYLogInfo(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelInfo, fmt, ##__VA_ARGS__) 31 | #define BLYLogDebug(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelDebug, fmt, ##__VA_ARGS__) 32 | #define BLYLogVerbose(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelVerbose, fmt, ##__VA_ARGS__) 33 | 34 | #pragma mark - Interface 35 | @interface BuglyLog : NSObject 36 | 37 | /** 38 | * @brief 初始化日志模块 39 | * 40 | * @param level 设置默认日志级别,默认BLYLogLevelSilent 41 | * 42 | * @param printConsole 是否打印到控制台,默认NO 43 | */ 44 | + (void)initLogger:(BuglyLogLevel) level consolePrint:(BOOL)printConsole; 45 | 46 | /** 47 | * @brief 打印BLYLogLevelInfo日志 48 | * 49 | * @param format 日志内容 总日志大小限制为:字符串长度30k,条数200 50 | */ 51 | + (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2); 52 | 53 | /** 54 | * @brief 打印日志 55 | * 56 | * @param level 日志级别 57 | * @param message 日志内容 总日志大小限制为:字符串长度30k,条数200 58 | */ 59 | + (void)level:(BuglyLogLevel) level logs:(NSString *)message; 60 | 61 | /** 62 | * @brief 打印日志 63 | * 64 | * @param level 日志级别 65 | * @param format 日志内容 总日志大小限制为:字符串长度30k,条数200 66 | */ 67 | + (void)level:(BuglyLogLevel) level log:(NSString *)format, ... NS_FORMAT_FUNCTION(2, 3); 68 | 69 | /** 70 | * @brief 打印日志 71 | * 72 | * @param level 日志级别 73 | * @param tag 日志模块分类 74 | * @param format 日志内容 总日志大小限制为:字符串长度30k,条数200 75 | */ 76 | + (void)level:(BuglyLogLevel) level tag:(NSString *) tag log:(NSString *)format, ... NS_FORMAT_FUNCTION(3, 4); 77 | 78 | @end 79 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Bugly/Bugly.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Bugly { 2 | umbrella header "Bugly.h" 3 | 4 | export * 5 | module * { export * } 6 | 7 | link framework "Foundation" 8 | link framework "Security" 9 | link framework "SystemConfiguration" 10 | link "c++" 11 | link "z" 12 | } 13 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Bugly (2.5.71) 3 | 4 | DEPENDENCIES: 5 | - Bugly (~> 2.5.71) 6 | 7 | SPEC REPOS: 8 | trunk: 9 | - Bugly 10 | 11 | SPEC CHECKSUMS: 12 | Bugly: fd066c75c4a0eca1440f9b6a84bd37d51bfc85ac 13 | 14 | PODFILE CHECKSUM: f0dc88a4bb3f9f0d5f14f5c2e6b1e47e1b7dfdb9 15 | 16 | COCOAPODS: 1.9.1 17 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXAggregateTarget section */ 10 | 4A68CFD979D413A619DF631BB121D98F /* Bugly */ = { 11 | isa = PBXAggregateTarget; 12 | buildConfigurationList = 9CC7AA793D9397C15E010F8242EE1046 /* Build configuration list for PBXAggregateTarget "Bugly" */; 13 | buildPhases = ( 14 | ); 15 | dependencies = ( 16 | ); 17 | name = Bugly; 18 | }; 19 | /* End PBXAggregateTarget section */ 20 | 21 | /* Begin PBXBuildFile section */ 22 | A47BEC1B2F3B8F65CE917812EF09EFC5 /* Pods-Bugly-iOS-Demo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 858907329D310B67F16BF4228711AB23 /* Pods-Bugly-iOS-Demo-dummy.m */; }; 23 | A4DBB042DD1BC179654271D3A9934513 /* Pods-Bugly-iOS-DemoTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C0E05186C7CF630E58989709AF5AB7A7 /* Pods-Bugly-iOS-DemoTests-dummy.m */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXContainerItemProxy section */ 27 | 993086080D72E19C9E3A784861A27ECB /* PBXContainerItemProxy */ = { 28 | isa = PBXContainerItemProxy; 29 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 30 | proxyType = 1; 31 | remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; 32 | remoteInfo = Bugly; 33 | }; 34 | /* End PBXContainerItemProxy section */ 35 | 36 | /* Begin PBXFileReference section */ 37 | 08688819E2134C3377356AEC628E3A02 /* libPods-Bugly-iOS-Demo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Bugly-iOS-Demo.a"; path = "libPods-Bugly-iOS-Demo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | 1B03FA558B3409D8CAD861BFF96E9ED8 /* Pods-Bugly-iOS-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Bugly-iOS-Demo.release.xcconfig"; sourceTree = ""; }; 39 | 304C25C413785142C20F31BF7AF64FFD /* Bugly.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.debug.xcconfig; sourceTree = ""; }; 40 | 317F0457DC7BF6BCFD2FBD3F55D1D34D /* Pods-Bugly-iOS-DemoTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Bugly-iOS-DemoTests-acknowledgements.plist"; sourceTree = ""; }; 41 | 4520287290BAA0680DDF60A0F6D8CF9F /* Bugly.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.release.xcconfig; sourceTree = ""; }; 42 | 482C967C1BEB2997BAC6337D49ADDEAA /* Pods-Bugly-iOS-DemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Bugly-iOS-DemoTests.debug.xcconfig"; sourceTree = ""; }; 43 | 57B9817EE9F175C03FB611782DDE143A /* libPods-Bugly-iOS-DemoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Bugly-iOS-DemoTests.a"; path = "libPods-Bugly-iOS-DemoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | 5DE9825FE23D93326A7EA3484B55CF73 /* Pods-Bugly-iOS-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Bugly-iOS-Demo.debug.xcconfig"; sourceTree = ""; }; 45 | 80C1AF79C0CB96582DC4EB655C1AD978 /* Pods-Bugly-iOS-Demo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Bugly-iOS-Demo-acknowledgements.plist"; sourceTree = ""; }; 46 | 8414DDD5D8435EB98395BF3100EA2160 /* Pods-Bugly-iOS-DemoTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Bugly-iOS-DemoTests-acknowledgements.markdown"; sourceTree = ""; }; 47 | 858907329D310B67F16BF4228711AB23 /* Pods-Bugly-iOS-Demo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Bugly-iOS-Demo-dummy.m"; sourceTree = ""; }; 48 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 49 | C0E05186C7CF630E58989709AF5AB7A7 /* Pods-Bugly-iOS-DemoTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Bugly-iOS-DemoTests-dummy.m"; sourceTree = ""; }; 50 | CEB48F9F2EE0FE848577F470ACB622C8 /* Bugly.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bugly.framework; sourceTree = ""; }; 51 | E084B69C3D4329F0B0832E09D0F9B293 /* Pods-Bugly-iOS-Demo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Bugly-iOS-Demo-acknowledgements.markdown"; sourceTree = ""; }; 52 | EF2F9F574F17F1BF51BE77258B5A9006 /* Pods-Bugly-iOS-DemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Bugly-iOS-DemoTests.release.xcconfig"; sourceTree = ""; }; 53 | /* End PBXFileReference section */ 54 | 55 | /* Begin PBXFrameworksBuildPhase section */ 56 | 0AE265BB8656205A999774E5FA66AF90 /* Frameworks */ = { 57 | isa = PBXFrameworksBuildPhase; 58 | buildActionMask = 2147483647; 59 | files = ( 60 | ); 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | 792239A470C0B82E6E614CBBF3D4637F /* Frameworks */ = { 64 | isa = PBXFrameworksBuildPhase; 65 | buildActionMask = 2147483647; 66 | files = ( 67 | ); 68 | runOnlyForDeploymentPostprocessing = 0; 69 | }; 70 | /* End PBXFrameworksBuildPhase section */ 71 | 72 | /* Begin PBXGroup section */ 73 | 24E19A248CD179A46BBAAFD2F27DD38E /* Products */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 08688819E2134C3377356AEC628E3A02 /* libPods-Bugly-iOS-Demo.a */, 77 | 57B9817EE9F175C03FB611782DDE143A /* libPods-Bugly-iOS-DemoTests.a */, 78 | ); 79 | name = Products; 80 | sourceTree = ""; 81 | }; 82 | 296B8419675B4AE385CB7964DE7C6A97 /* Support Files */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 304C25C413785142C20F31BF7AF64FFD /* Bugly.debug.xcconfig */, 86 | 4520287290BAA0680DDF60A0F6D8CF9F /* Bugly.release.xcconfig */, 87 | ); 88 | name = "Support Files"; 89 | path = "../Target Support Files/Bugly"; 90 | sourceTree = ""; 91 | }; 92 | 4155618AA380673662EA6306317F67E7 /* Bugly */ = { 93 | isa = PBXGroup; 94 | children = ( 95 | 5A004DB68CB4C2FB1D278B6EF4B4635D /* Frameworks */, 96 | 296B8419675B4AE385CB7964DE7C6A97 /* Support Files */, 97 | ); 98 | name = Bugly; 99 | path = Bugly; 100 | sourceTree = ""; 101 | }; 102 | 47FCA6EC490B5EE84BB412F81253F748 /* Pods */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 4155618AA380673662EA6306317F67E7 /* Bugly */, 106 | ); 107 | name = Pods; 108 | sourceTree = ""; 109 | }; 110 | 5A004DB68CB4C2FB1D278B6EF4B4635D /* Frameworks */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | CEB48F9F2EE0FE848577F470ACB622C8 /* Bugly.framework */, 114 | ); 115 | name = Frameworks; 116 | sourceTree = ""; 117 | }; 118 | 7666C7D880CED8085894C0F370D47796 /* Pods-Bugly-iOS-Demo */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | E084B69C3D4329F0B0832E09D0F9B293 /* Pods-Bugly-iOS-Demo-acknowledgements.markdown */, 122 | 80C1AF79C0CB96582DC4EB655C1AD978 /* Pods-Bugly-iOS-Demo-acknowledgements.plist */, 123 | 858907329D310B67F16BF4228711AB23 /* Pods-Bugly-iOS-Demo-dummy.m */, 124 | 5DE9825FE23D93326A7EA3484B55CF73 /* Pods-Bugly-iOS-Demo.debug.xcconfig */, 125 | 1B03FA558B3409D8CAD861BFF96E9ED8 /* Pods-Bugly-iOS-Demo.release.xcconfig */, 126 | ); 127 | name = "Pods-Bugly-iOS-Demo"; 128 | path = "Target Support Files/Pods-Bugly-iOS-Demo"; 129 | sourceTree = ""; 130 | }; 131 | BA61B46CF4F8787880E6529377C454B9 /* Pods-Bugly-iOS-DemoTests */ = { 132 | isa = PBXGroup; 133 | children = ( 134 | 8414DDD5D8435EB98395BF3100EA2160 /* Pods-Bugly-iOS-DemoTests-acknowledgements.markdown */, 135 | 317F0457DC7BF6BCFD2FBD3F55D1D34D /* Pods-Bugly-iOS-DemoTests-acknowledgements.plist */, 136 | C0E05186C7CF630E58989709AF5AB7A7 /* Pods-Bugly-iOS-DemoTests-dummy.m */, 137 | 482C967C1BEB2997BAC6337D49ADDEAA /* Pods-Bugly-iOS-DemoTests.debug.xcconfig */, 138 | EF2F9F574F17F1BF51BE77258B5A9006 /* Pods-Bugly-iOS-DemoTests.release.xcconfig */, 139 | ); 140 | name = "Pods-Bugly-iOS-DemoTests"; 141 | path = "Target Support Files/Pods-Bugly-iOS-DemoTests"; 142 | sourceTree = ""; 143 | }; 144 | CF1408CF629C7361332E53B88F7BD30C = { 145 | isa = PBXGroup; 146 | children = ( 147 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 148 | D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, 149 | 47FCA6EC490B5EE84BB412F81253F748 /* Pods */, 150 | 24E19A248CD179A46BBAAFD2F27DD38E /* Products */, 151 | F40C6E20227F741529E1D07243323CE6 /* Targets Support Files */, 152 | ); 153 | sourceTree = ""; 154 | }; 155 | D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | ); 159 | name = Frameworks; 160 | sourceTree = ""; 161 | }; 162 | F40C6E20227F741529E1D07243323CE6 /* Targets Support Files */ = { 163 | isa = PBXGroup; 164 | children = ( 165 | 7666C7D880CED8085894C0F370D47796 /* Pods-Bugly-iOS-Demo */, 166 | BA61B46CF4F8787880E6529377C454B9 /* Pods-Bugly-iOS-DemoTests */, 167 | ); 168 | name = "Targets Support Files"; 169 | sourceTree = ""; 170 | }; 171 | /* End PBXGroup section */ 172 | 173 | /* Begin PBXHeadersBuildPhase section */ 174 | 2E74FFDD07D72CDBE3E06E8B41EB7FED /* Headers */ = { 175 | isa = PBXHeadersBuildPhase; 176 | buildActionMask = 2147483647; 177 | files = ( 178 | ); 179 | runOnlyForDeploymentPostprocessing = 0; 180 | }; 181 | 3006ED39E5C8FDF9ECB3AE484F4C28F2 /* Headers */ = { 182 | isa = PBXHeadersBuildPhase; 183 | buildActionMask = 2147483647; 184 | files = ( 185 | ); 186 | runOnlyForDeploymentPostprocessing = 0; 187 | }; 188 | /* End PBXHeadersBuildPhase section */ 189 | 190 | /* Begin PBXNativeTarget section */ 191 | 3F9BBE3D8BA7D14CE56F8F6C5495F280 /* Pods-Bugly-iOS-Demo */ = { 192 | isa = PBXNativeTarget; 193 | buildConfigurationList = D163D12213ECE97EAFA3F0AD9F1359B4 /* Build configuration list for PBXNativeTarget "Pods-Bugly-iOS-Demo" */; 194 | buildPhases = ( 195 | 3006ED39E5C8FDF9ECB3AE484F4C28F2 /* Headers */, 196 | 179F2304BA0D26FA2FEAF432C6ADC330 /* Sources */, 197 | 792239A470C0B82E6E614CBBF3D4637F /* Frameworks */, 198 | ); 199 | buildRules = ( 200 | ); 201 | dependencies = ( 202 | BA7831C794026345DC307CB2CAA00E3B /* PBXTargetDependency */, 203 | ); 204 | name = "Pods-Bugly-iOS-Demo"; 205 | productName = "Pods-Bugly-iOS-Demo"; 206 | productReference = 08688819E2134C3377356AEC628E3A02 /* libPods-Bugly-iOS-Demo.a */; 207 | productType = "com.apple.product-type.library.static"; 208 | }; 209 | 6DBA5258D78BAA792DD3AC9F1D8B433C /* Pods-Bugly-iOS-DemoTests */ = { 210 | isa = PBXNativeTarget; 211 | buildConfigurationList = 65ECA3475C56183ACA27504D2521E16B /* Build configuration list for PBXNativeTarget "Pods-Bugly-iOS-DemoTests" */; 212 | buildPhases = ( 213 | 2E74FFDD07D72CDBE3E06E8B41EB7FED /* Headers */, 214 | EB6EE671F24F27B6BC432E409E556149 /* Sources */, 215 | 0AE265BB8656205A999774E5FA66AF90 /* Frameworks */, 216 | ); 217 | buildRules = ( 218 | ); 219 | dependencies = ( 220 | ); 221 | name = "Pods-Bugly-iOS-DemoTests"; 222 | productName = "Pods-Bugly-iOS-DemoTests"; 223 | productReference = 57B9817EE9F175C03FB611782DDE143A /* libPods-Bugly-iOS-DemoTests.a */; 224 | productType = "com.apple.product-type.library.static"; 225 | }; 226 | /* End PBXNativeTarget section */ 227 | 228 | /* Begin PBXProject section */ 229 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 230 | isa = PBXProject; 231 | attributes = { 232 | LastSwiftUpdateCheck = 1100; 233 | LastUpgradeCheck = 1100; 234 | }; 235 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 236 | compatibilityVersion = "Xcode 3.2"; 237 | developmentRegion = en; 238 | hasScannedForEncodings = 0; 239 | knownRegions = ( 240 | en, 241 | Base, 242 | ); 243 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 244 | productRefGroup = 24E19A248CD179A46BBAAFD2F27DD38E /* Products */; 245 | projectDirPath = ""; 246 | projectRoot = ""; 247 | targets = ( 248 | 4A68CFD979D413A619DF631BB121D98F /* Bugly */, 249 | 3F9BBE3D8BA7D14CE56F8F6C5495F280 /* Pods-Bugly-iOS-Demo */, 250 | 6DBA5258D78BAA792DD3AC9F1D8B433C /* Pods-Bugly-iOS-DemoTests */, 251 | ); 252 | }; 253 | /* End PBXProject section */ 254 | 255 | /* Begin PBXSourcesBuildPhase section */ 256 | 179F2304BA0D26FA2FEAF432C6ADC330 /* Sources */ = { 257 | isa = PBXSourcesBuildPhase; 258 | buildActionMask = 2147483647; 259 | files = ( 260 | A47BEC1B2F3B8F65CE917812EF09EFC5 /* Pods-Bugly-iOS-Demo-dummy.m in Sources */, 261 | ); 262 | runOnlyForDeploymentPostprocessing = 0; 263 | }; 264 | EB6EE671F24F27B6BC432E409E556149 /* Sources */ = { 265 | isa = PBXSourcesBuildPhase; 266 | buildActionMask = 2147483647; 267 | files = ( 268 | A4DBB042DD1BC179654271D3A9934513 /* Pods-Bugly-iOS-DemoTests-dummy.m in Sources */, 269 | ); 270 | runOnlyForDeploymentPostprocessing = 0; 271 | }; 272 | /* End PBXSourcesBuildPhase section */ 273 | 274 | /* Begin PBXTargetDependency section */ 275 | BA7831C794026345DC307CB2CAA00E3B /* PBXTargetDependency */ = { 276 | isa = PBXTargetDependency; 277 | name = Bugly; 278 | target = 4A68CFD979D413A619DF631BB121D98F /* Bugly */; 279 | targetProxy = 993086080D72E19C9E3A784861A27ECB /* PBXContainerItemProxy */; 280 | }; 281 | /* End PBXTargetDependency section */ 282 | 283 | /* Begin XCBuildConfiguration section */ 284 | 14B84AA7C2AB26CB27E2431C52E35A9C /* Release */ = { 285 | isa = XCBuildConfiguration; 286 | baseConfigurationReference = EF2F9F574F17F1BF51BE77258B5A9006 /* Pods-Bugly-iOS-DemoTests.release.xcconfig */; 287 | buildSettings = { 288 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 289 | CODE_SIGN_IDENTITY = "iPhone Developer"; 290 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 291 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 292 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 293 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 294 | MACH_O_TYPE = staticlib; 295 | OTHER_LDFLAGS = ""; 296 | OTHER_LIBTOOLFLAGS = ""; 297 | PODS_ROOT = "$(SRCROOT)"; 298 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 299 | SDKROOT = iphoneos; 300 | SKIP_INSTALL = YES; 301 | TARGETED_DEVICE_FAMILY = "1,2"; 302 | VALIDATE_PRODUCT = YES; 303 | }; 304 | name = Release; 305 | }; 306 | 1645813B22193150B2691BCD6606B4AF /* Release */ = { 307 | isa = XCBuildConfiguration; 308 | baseConfigurationReference = 4520287290BAA0680DDF60A0F6D8CF9F /* Bugly.release.xcconfig */; 309 | buildSettings = { 310 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 311 | CODE_SIGN_IDENTITY = "iPhone Developer"; 312 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 313 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 314 | SDKROOT = iphoneos; 315 | TARGETED_DEVICE_FAMILY = "1,2"; 316 | VALIDATE_PRODUCT = YES; 317 | }; 318 | name = Release; 319 | }; 320 | 2CD39711F01CF9BC203D336EFAD0867E /* Debug */ = { 321 | isa = XCBuildConfiguration; 322 | baseConfigurationReference = 482C967C1BEB2997BAC6337D49ADDEAA /* Pods-Bugly-iOS-DemoTests.debug.xcconfig */; 323 | buildSettings = { 324 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 325 | CODE_SIGN_IDENTITY = "iPhone Developer"; 326 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 327 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 328 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 329 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 330 | MACH_O_TYPE = staticlib; 331 | OTHER_LDFLAGS = ""; 332 | OTHER_LIBTOOLFLAGS = ""; 333 | PODS_ROOT = "$(SRCROOT)"; 334 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 335 | SDKROOT = iphoneos; 336 | SKIP_INSTALL = YES; 337 | TARGETED_DEVICE_FAMILY = "1,2"; 338 | }; 339 | name = Debug; 340 | }; 341 | 4F82C53F6B75A82C45A8A48A4260399C /* Debug */ = { 342 | isa = XCBuildConfiguration; 343 | baseConfigurationReference = 5DE9825FE23D93326A7EA3484B55CF73 /* Pods-Bugly-iOS-Demo.debug.xcconfig */; 344 | buildSettings = { 345 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 346 | CODE_SIGN_IDENTITY = "iPhone Developer"; 347 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 348 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 349 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 350 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 351 | MACH_O_TYPE = staticlib; 352 | OTHER_LDFLAGS = ""; 353 | OTHER_LIBTOOLFLAGS = ""; 354 | PODS_ROOT = "$(SRCROOT)"; 355 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 356 | SDKROOT = iphoneos; 357 | SKIP_INSTALL = YES; 358 | TARGETED_DEVICE_FAMILY = "1,2"; 359 | }; 360 | name = Debug; 361 | }; 362 | 60A7F9B4A8E92A5B16CC2AA887D9FE07 /* Release */ = { 363 | isa = XCBuildConfiguration; 364 | buildSettings = { 365 | ALWAYS_SEARCH_USER_PATHS = NO; 366 | CLANG_ANALYZER_NONNULL = YES; 367 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 368 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 369 | CLANG_CXX_LIBRARY = "libc++"; 370 | CLANG_ENABLE_MODULES = YES; 371 | CLANG_ENABLE_OBJC_ARC = YES; 372 | CLANG_ENABLE_OBJC_WEAK = YES; 373 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 374 | CLANG_WARN_BOOL_CONVERSION = YES; 375 | CLANG_WARN_COMMA = YES; 376 | CLANG_WARN_CONSTANT_CONVERSION = YES; 377 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 378 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 379 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 380 | CLANG_WARN_EMPTY_BODY = YES; 381 | CLANG_WARN_ENUM_CONVERSION = YES; 382 | CLANG_WARN_INFINITE_RECURSION = YES; 383 | CLANG_WARN_INT_CONVERSION = YES; 384 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 385 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 386 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 387 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 388 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 389 | CLANG_WARN_STRICT_PROTOTYPES = YES; 390 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 391 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 392 | CLANG_WARN_UNREACHABLE_CODE = YES; 393 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 394 | COPY_PHASE_STRIP = NO; 395 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 396 | ENABLE_NS_ASSERTIONS = NO; 397 | ENABLE_STRICT_OBJC_MSGSEND = YES; 398 | GCC_C_LANGUAGE_STANDARD = gnu11; 399 | GCC_NO_COMMON_BLOCKS = YES; 400 | GCC_PREPROCESSOR_DEFINITIONS = ( 401 | "POD_CONFIGURATION_RELEASE=1", 402 | "$(inherited)", 403 | ); 404 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 405 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 406 | GCC_WARN_UNDECLARED_SELECTOR = YES; 407 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 408 | GCC_WARN_UNUSED_FUNCTION = YES; 409 | GCC_WARN_UNUSED_VARIABLE = YES; 410 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 411 | MTL_ENABLE_DEBUG_INFO = NO; 412 | MTL_FAST_MATH = YES; 413 | PRODUCT_NAME = "$(TARGET_NAME)"; 414 | STRIP_INSTALLED_PRODUCT = NO; 415 | SWIFT_COMPILATION_MODE = wholemodule; 416 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 417 | SWIFT_VERSION = 5.0; 418 | SYMROOT = "${SRCROOT}/../build"; 419 | }; 420 | name = Release; 421 | }; 422 | 6161211A53E56102A5802D97C354DCA0 /* Release */ = { 423 | isa = XCBuildConfiguration; 424 | baseConfigurationReference = 1B03FA558B3409D8CAD861BFF96E9ED8 /* Pods-Bugly-iOS-Demo.release.xcconfig */; 425 | buildSettings = { 426 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 427 | CODE_SIGN_IDENTITY = "iPhone Developer"; 428 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 429 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 430 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 431 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 432 | MACH_O_TYPE = staticlib; 433 | OTHER_LDFLAGS = ""; 434 | OTHER_LIBTOOLFLAGS = ""; 435 | PODS_ROOT = "$(SRCROOT)"; 436 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 437 | SDKROOT = iphoneos; 438 | SKIP_INSTALL = YES; 439 | TARGETED_DEVICE_FAMILY = "1,2"; 440 | VALIDATE_PRODUCT = YES; 441 | }; 442 | name = Release; 443 | }; 444 | 7E1F3D358966F24610AD782F313B4C40 /* Debug */ = { 445 | isa = XCBuildConfiguration; 446 | buildSettings = { 447 | ALWAYS_SEARCH_USER_PATHS = NO; 448 | CLANG_ANALYZER_NONNULL = YES; 449 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 450 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 451 | CLANG_CXX_LIBRARY = "libc++"; 452 | CLANG_ENABLE_MODULES = YES; 453 | CLANG_ENABLE_OBJC_ARC = YES; 454 | CLANG_ENABLE_OBJC_WEAK = YES; 455 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 456 | CLANG_WARN_BOOL_CONVERSION = YES; 457 | CLANG_WARN_COMMA = YES; 458 | CLANG_WARN_CONSTANT_CONVERSION = YES; 459 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 460 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 461 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 462 | CLANG_WARN_EMPTY_BODY = YES; 463 | CLANG_WARN_ENUM_CONVERSION = YES; 464 | CLANG_WARN_INFINITE_RECURSION = YES; 465 | CLANG_WARN_INT_CONVERSION = YES; 466 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 467 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 468 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 469 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 470 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 471 | CLANG_WARN_STRICT_PROTOTYPES = YES; 472 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 473 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 474 | CLANG_WARN_UNREACHABLE_CODE = YES; 475 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 476 | COPY_PHASE_STRIP = NO; 477 | DEBUG_INFORMATION_FORMAT = dwarf; 478 | ENABLE_STRICT_OBJC_MSGSEND = YES; 479 | ENABLE_TESTABILITY = YES; 480 | GCC_C_LANGUAGE_STANDARD = gnu11; 481 | GCC_DYNAMIC_NO_PIC = NO; 482 | GCC_NO_COMMON_BLOCKS = YES; 483 | GCC_OPTIMIZATION_LEVEL = 0; 484 | GCC_PREPROCESSOR_DEFINITIONS = ( 485 | "POD_CONFIGURATION_DEBUG=1", 486 | "DEBUG=1", 487 | "$(inherited)", 488 | ); 489 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 490 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 491 | GCC_WARN_UNDECLARED_SELECTOR = YES; 492 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 493 | GCC_WARN_UNUSED_FUNCTION = YES; 494 | GCC_WARN_UNUSED_VARIABLE = YES; 495 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 496 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 497 | MTL_FAST_MATH = YES; 498 | ONLY_ACTIVE_ARCH = YES; 499 | PRODUCT_NAME = "$(TARGET_NAME)"; 500 | STRIP_INSTALLED_PRODUCT = NO; 501 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 502 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 503 | SWIFT_VERSION = 5.0; 504 | SYMROOT = "${SRCROOT}/../build"; 505 | }; 506 | name = Debug; 507 | }; 508 | 9BEC9E50FD3A7EBB6D4292912F046A8A /* Debug */ = { 509 | isa = XCBuildConfiguration; 510 | baseConfigurationReference = 304C25C413785142C20F31BF7AF64FFD /* Bugly.debug.xcconfig */; 511 | buildSettings = { 512 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 513 | CODE_SIGN_IDENTITY = "iPhone Developer"; 514 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 515 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 516 | SDKROOT = iphoneos; 517 | TARGETED_DEVICE_FAMILY = "1,2"; 518 | }; 519 | name = Debug; 520 | }; 521 | /* End XCBuildConfiguration section */ 522 | 523 | /* Begin XCConfigurationList section */ 524 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 525 | isa = XCConfigurationList; 526 | buildConfigurations = ( 527 | 7E1F3D358966F24610AD782F313B4C40 /* Debug */, 528 | 60A7F9B4A8E92A5B16CC2AA887D9FE07 /* Release */, 529 | ); 530 | defaultConfigurationIsVisible = 0; 531 | defaultConfigurationName = Release; 532 | }; 533 | 65ECA3475C56183ACA27504D2521E16B /* Build configuration list for PBXNativeTarget "Pods-Bugly-iOS-DemoTests" */ = { 534 | isa = XCConfigurationList; 535 | buildConfigurations = ( 536 | 2CD39711F01CF9BC203D336EFAD0867E /* Debug */, 537 | 14B84AA7C2AB26CB27E2431C52E35A9C /* Release */, 538 | ); 539 | defaultConfigurationIsVisible = 0; 540 | defaultConfigurationName = Release; 541 | }; 542 | 9CC7AA793D9397C15E010F8242EE1046 /* Build configuration list for PBXAggregateTarget "Bugly" */ = { 543 | isa = XCConfigurationList; 544 | buildConfigurations = ( 545 | 9BEC9E50FD3A7EBB6D4292912F046A8A /* Debug */, 546 | 1645813B22193150B2691BCD6606B4AF /* Release */, 547 | ); 548 | defaultConfigurationIsVisible = 0; 549 | defaultConfigurationName = Release; 550 | }; 551 | D163D12213ECE97EAFA3F0AD9F1359B4 /* Build configuration list for PBXNativeTarget "Pods-Bugly-iOS-Demo" */ = { 552 | isa = XCConfigurationList; 553 | buildConfigurations = ( 554 | 4F82C53F6B75A82C45A8A48A4260399C /* Debug */, 555 | 6161211A53E56102A5802D97C354DCA0 /* Release */, 556 | ); 557 | defaultConfigurationIsVisible = 0; 558 | defaultConfigurationName = Release; 559 | }; 560 | /* End XCConfigurationList section */ 561 | }; 562 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 563 | } 564 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/xcuserdata/ben.xcuserdatad/xcschemes/Pods-Bugly-iOS-Demo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/xcuserdata/ben.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Pods-Bugly-iOS-Demo.xcscheme 8 | 9 | isShown 10 | 11 | 12 | Pods-Bugly-iOS-DemoTests.xcscheme 13 | 14 | isShown 15 | 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 1DC92AB8706A1EF7663B03F29FAB0787 21 | 22 | primary 23 | 24 | 25 | 61D4556DDEB85CF818E812D90E11989B 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/xcuserdata/zhhp1121.xcuserdatad/xcschemes/Bugly.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/xcuserdata/zhhp1121.xcuserdatad/xcschemes/Pods-Bugly-iOS-Demo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/xcuserdata/zhhp1121.xcuserdatad/xcschemes/Pods-Bugly-iOS-DemoTests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Pods.xcodeproj/xcuserdata/zhhp1121.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Bugly.xcscheme 8 | 9 | isShown 10 | 11 | 12 | Pods-Bugly-iOS-Demo.xcscheme 13 | 14 | isShown 15 | 16 | 17 | Pods-Bugly-iOS-DemoTests.xcscheme 18 | 19 | isShown 20 | 21 | 22 | 23 | SuppressBuildableAutocreation 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Bugly/Bugly.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Bugly 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Bugly" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Bugly 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Bugly/Bugly.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Bugly 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Bugly" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Bugly 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## Bugly 5 | 6 | Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved. 7 | 8 | Generated by CocoaPods - https://cocoapods.org 9 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved. 18 | 19 | License 20 | Copyright 21 | Title 22 | Bugly 23 | Type 24 | PSGroupSpecifier 25 | 26 | 27 | FooterText 28 | Generated by CocoaPods - https://cocoapods.org 29 | Title 30 | 31 | Type 32 | PSGroupSpecifier 33 | 34 | 35 | StringsTable 36 | Acknowledgements 37 | Title 38 | Acknowledgements 39 | 40 | 41 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Bugly_iOS_Demo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Bugly_iOS_Demo 5 | @end 6 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | realpath() { 27 | DIRECTORY="$(cd "${1%/*}" && pwd)" 28 | FILENAME="${1##*/}" 29 | echo "$DIRECTORY/$FILENAME" 30 | } 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Bugly" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "Bugly" -framework "Security" -framework "SystemConfiguration" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-Demo/Pods-Bugly-iOS-Demo.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Bugly" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "Bugly" -framework "Security" -framework "SystemConfiguration" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Bugly_iOS_DemoTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Bugly_iOS_DemoTests 5 | @end 6 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | realpath() { 27 | DIRECTORY="$(cd "${1%/*}" && pwd)" 28 | FILENAME="${1##*/}" 29 | echo "$DIRECTORY/$FILENAME" 30 | } 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | PODS_BUILD_DIR = ${BUILD_DIR} 3 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 4 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 5 | PODS_ROOT = ${SRCROOT}/Pods 6 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 7 | -------------------------------------------------------------------------------- /Bugly-iOS-Demo/Pods/Target Support Files/Pods-Bugly-iOS-DemoTests/Pods-Bugly-iOS-DemoTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | PODS_BUILD_DIR = ${BUILD_DIR} 3 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 4 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 5 | PODS_ROOT = ${SRCROOT}/Pods 6 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 7 | -------------------------------------------------------------------------------- /Bugly.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.authors = "Tencent" 3 | s.name = "Bugly" 4 | s.version = "2.6.1" 5 | s.summary = "Bugly iOS SDK" 6 | s.description = "iOS library for Bugly Crash Report Service. Sign up for a service at https://bugly.qq.com." 7 | s.homepage = "http://bugly.qq.com/" 8 | s.license = { :type => "Commercial", :text => "Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved."} 9 | s.author = { "Tencent" => "bugly@tencent.com" } 10 | s.source = { :http => "https://buglycocoapodscrashsdk-75649.gzc.vod.tencent-cloud.com/Bugly-2.6.1.zip" } 11 | s.requires_arc = true 12 | s.platform = :ios 13 | s.ios.deployment_target = '7.0' 14 | s.vendored_frameworks ='Bugly.framework' 15 | s.frameworks = 'SystemConfiguration','Security' 16 | s.library = 'z','c++' 17 | s.license = { 18 | :type => 'Copyright', 19 | :text => <<-LICENSE 20 | Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved. 21 | LICENSE 22 | } 23 | end 24 | -------------------------------------------------------------------------------- /BuglyExtension.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "BuglyExtension" 3 | s.version = "1.1" 4 | s.summary = "Bugly iOS Extension SDK" 5 | s.description = "iOS Extension library for Bugly Crash Report Service" 6 | s.homepage = "http://bugly.qq.com/" 7 | s.license = { :type => "Copyright", :text => "©2015 Tencent.com"} 8 | s.author = { "Tencent" => "bugly@tencent.com" } 9 | s.source = { :http => "https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/master/release/BuglyExtension-1.1.zip" } 10 | s.requires_arc = false 11 | s.platform = :ios 12 | s.ios.deployment_target = '8.0' 13 | s.vendored_frameworks ='BuglyExtension.framework' 14 | s.source_files = 'BuglyExtension.framework/Headers/*.h' 15 | s.license = { 16 | :type => 'Copyright', 17 | :text => <<-LICENSE 18 | Copyright 2015 tencent.com. All rights reserved. 19 | LICENSE 20 | } 21 | end 22 | -------------------------------------------------------------------------------- /BuglyWatchOS.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "BuglyWatchOS" 3 | s.version = "1.0.1" 4 | s.summary = "Bugly watchOS SDK" 5 | s.description = "watchOS library for Bugly Crash Report Service" 6 | s.homepage = "http://bugly.qq.com/" 7 | s.license = { :type => "Copyright", :text => "©2015 Tencent.com"} 8 | s.author = { "Tencent" => "bugly@tencent.com" } 9 | s.source = { :http => "https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/master/release/BuglyWatchOS-1.0.1.zip" } 10 | s.requires_arc = true 11 | s.platform = :watchos 12 | s.watchos.deployment_target = '2.0' 13 | s.vendored_frameworks ='BuglyWatchOS.framework' 14 | s.source_files = 'BuglyWatchOS.framework/Headers/*.h' 15 | s.license = { 16 | :type => 'Copyright', 17 | :text => <<-LICENSE 18 | Copyright 2015 tencent.com. All rights reserved. 19 | LICENSE 20 | } 21 | end 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # SDK更新日志 2 | 3 | ## Version 2.6.1 4 | 5 | Release on 2024.04.12 6 | 7 | * 适配苹果隐私清单; 8 | 9 | ## Version 2.6.0 10 | 11 | Release on 2023.10.13 12 | 13 | * 解决idfv多次获取的问题 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Bugly iOS SDK 接入指南 2 | 3 | ## 一. SDK 集成 4 | Bugly提供两种集成方式供iOS开发者选择: 5 | 6 | - CocoaPods 7 | - 手动集成 8 | 9 | 如果您是从`Bugly 2.0`以下版本升级过来的,请查看 [Bugly 旧版本顺滑升级指引](./UPGRADE_GUIDE.md) 10 | 11 | #### 1.1 CocoaPods集成方式 12 | 13 | **命令行下执行`pod search Bugly`,如显示的`Bugly`版本不是最新的,则先执行`pod repo update`操作** 14 | 15 | 在工程的Podfile里面添加以下代码: 16 | > **pod 'Bugly'** 17 | 18 | 保存并执行`pod install`,然后用后缀为`.xcworkspace`的文件打开工程。 19 | 20 | 关于`CocoaPods`的更多信息请查看[CocoaPods官方网站](https://cocoapods.org/)。 21 | 22 | #### 1.2 手动集成方式 23 | 24 | * 下载并解压[iOS SDK](http://bugly.qq.com/whitebook "SDK") 25 | * 拖拽`Bugly.framework`文件到Xcode工程内(请勾选`Copy items if needed`选项) 26 | * 添加依赖库 27 | - `SystemConfiguration.framework` 28 | - `Security.framework` 29 | - `libz.dylib` 30 | 31 | ## 二. 初始化SDK 32 | 33 | #### 2.1 导入头文件 34 | 35 | 在工程的`AppDelegate.m`文件导入头文件 36 | 37 | > `#import ` 38 | 39 | **如果是`Swift`工程,请在对应`bridging-header.h`中导入** 40 | 41 | #### 2.2 初始化Bugly 42 | 43 | 在工程`AppDelegate.m`的`application:didFinishLaunchingWithOptions:`方法中初始化Bugly: 44 | 45 | - **Objective-C** 46 | 47 | ```objective-c 48 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 49 | [Bugly startWithAppId:@"此处替换为你的AppId"]; 50 | return YES; 51 | } 52 | ``` 53 | 54 | - **Swift** 55 | 56 | ```swift 57 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 58 | Bugly.startWithAppId("此处替换为你的AppId") 59 | return true 60 | } 61 | ``` 62 | 63 | 如果您需要上报`iOS Watch2 App`或`iOS App Extension`的异常,请参见[Bugly iOS Extension SDK 接入指南](http://bugly.qq.com/iosextension)。 64 | 65 | 至此,Xcode工程集成Bugly已完成,接下来可以编译并运行你的Xcode工程。 66 | 67 | ## 三. 高级功能 68 | Bugly SDK提供一系列自定义配置或接口供开发者调用,如: 69 | 70 | - 文件配置初始化参数 71 | - 自定义日志 72 | - 界面追踪 73 | - 卡顿监控 74 | 75 | 详细内容请查看[iOS SDK高级设置](http://bugly.qq.com/iosmore)。 76 | 77 | ------ 78 | 79 | # Bugly iOS SDK高级功能使用指南 80 | 81 | ## 一. 文件配置初始化参数 82 | 83 | Bugly支持读取`Info.plist`文件读取SDK初始化参数,可配置的参数如下: 84 | 85 | ```xml 86 | - Appid 87 | - Key: BuglyAppIDString 88 | - Value: 字符串类型 89 | - 渠道标识 90 | - Key: BuglyAppChannelString 91 | - Value: 字符串类型 92 | - 版本信息 93 | - Key: BuglyAppVersionString 94 | - Value: 字符串类型 95 | - 开启Debug信息显示 96 | - Key: BuglyDebugEnable 97 | - Value: BOOL类型 98 | ``` 99 | 100 | 如下初始化方式,则会读取`Info.plist`内添加的key-value配置进行SDK初始化: 101 | 102 | ```objective-c 103 | 104 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 105 | // 读取Info.plist中的参数初始化SDK 106 | [Bugly startWithAppId:nil]; 107 | return YES; 108 | } 109 | 110 | ``` 111 | 112 | ## 二. 自定义日志 113 | SDK提供自定义日志打印接口,用于记录一些关键的业务调试信息,可以更全面地反应App发生崩溃或异常时的上下文环境。 114 | 115 | 使用方式与NSLog一致,可定义日志级别以便过滤,日志接口宏定义如下: 116 | 117 | ```objective-c 118 | 119 | BLYLogError(fmt, ...) 120 | BLYLogWarn(fmt, ...) 121 | BLYLogInfo(fmt, ...) 122 | BLYLogDebug(fmt, ...) 123 | BLYLogVerbose(fmt, ...) 124 | 125 | void BLYLog(BuglyLogLevel level, NSString *format, ...); 126 | void BLYLogv(BuglyLogLevel level, NSString *format, va_list args); 127 | ``` 128 | 129 | ## 三. 接口声明 130 | 131 | ### 1. 功能配置 132 | 133 | ```objective-c 134 | /** 135 | * SDK Debug 信息开关, 默认关闭 136 | */ 137 | @property (nonatomic, assign) BOOL debugMode; 138 | 139 | /** 140 | * 设置自定义渠道标识 141 | */ 142 | @property (nonatomic, copy) NSString *channel; 143 | 144 | /** 145 | * 设置自定义版本号 146 | */ 147 | @property (nonatomic, copy) NSString *version; 148 | 149 | /** 150 | * 设置自定义设备唯一标识 151 | */ 152 | @property (nonatomic, copy) NSString *deviceId; 153 | 154 | /** 155 | * 卡顿监控开关,默认关闭 156 | */ 157 | @property (nonatomic, assign) BOOL blockMonitorEnable; 158 | 159 | /** 160 | * 卡顿监控判断间隔,单位为秒 161 | */ 162 | @property (nonatomic, assign) NSTimeInterval blockMonitorTimeout; 163 | 164 | /** 165 | * ATS开关,默认开启。如果关闭,SDK的网络请求不会通过HTTPS发送 166 | */ 167 | @property (nonatomic) BOOL appTransportSecurityEnable; 168 | 169 | /** 170 | * 进程内还原开关,默认开启。 171 | */ 172 | @property (nonatomic) BOOL symbolicateInProcessEnable; 173 | 174 | /** 175 | * 非正常退出事件记录开关,默认关闭 176 | */ 177 | @property (nonatomic) BOOL unexpectedTerminatingDetectionEnable; 178 | 179 | /** 180 | * 页面信息记录开关,默认开启 181 | */ 182 | @property (nonatomic) BOOL viewControllerTrackingEnable; 183 | 184 | /** 185 | * SDK回调 186 | */ 187 | @property (nonatomic, assign) id delegate; 188 | 189 | /** 190 | * 控制自定义日志上报,默认值为BuglyLogLevelWarn,只上报Warn、Error的日志。 191 | * 设置为BuglyLogLevelSilent可关闭日志上报。 192 | */ 193 | @property (nonatomic, assign) BuglyLogLevel reportLogLevel; 194 | 195 | ``` 196 | 197 | ### 2. SDK回调 198 | 199 | ```objecitve-c 200 | /** 201 | * 发生异常时回调 202 | * 203 | * @param exception 异常信息 204 | * 205 | * @return 返回需上报记录,随异常上报一起上报 206 | */ 207 | - (NSString *)attachmentForException:(NSException *)exception; 208 | 209 | ``` 210 | 211 | ### 3. 功能接口 212 | 213 | ```objective-c 214 | /** 215 | * 初始化Bugly,使用默认BuglyConfig 216 | * 217 | * @param appId 注册Bugly分配的应用唯一标识,如果appId为空,则读取Info.plist中的参数配置 218 | */ 219 | + (void)startWithAppId:(nullable NSString *)appId; 220 | 221 | /** 222 | * 使用指定配置初始化Bugly 223 | * 224 | * @param appId 注册Bugly分配的应用唯一标识 225 | * @param config 传入配置的 BuglyConfig 226 | */ 227 | + (void)startWithAppId:(nullable NSString *)appId 228 | config:(nullable BuglyConfig *)config; 229 | 230 | /** 231 | * 设置用户标识 232 | * 233 | * @param userId 用户标识 234 | */ 235 | + (void)setUserIdentifier:(nonnull NSString *)userId; 236 | 237 | /** 238 | * 更新应用版本信息 239 | * 240 | * @param version 应用版本信息 241 | */ 242 | + (void)updateAppVersion:(NSString *)version; 243 | 244 | /** 245 | * 设置关键数据,随崩溃信息上报 246 | * 247 | * @param value 248 | * @param key 249 | */ 250 | + (void)setUserValue:(nonnull NSString *)value 251 | forKey:(nonnull NSString *)key; 252 | 253 | /** 254 | * 获取关键数据 255 | * 256 | * @return 关键数据 257 | */ 258 | + (nullable NSDictionary *)allUserValues; 259 | 260 | /** 261 | * 设置标签 262 | * 263 | * @param tag 标签ID,可在网站生成 264 | */ 265 | + (void)setTag:(NSUInteger)tag; 266 | 267 | /** 268 | * 获取当前设置标签 269 | * 270 | * @return 当前标签ID 271 | */ 272 | + (NSUInteger)currentTag; 273 | 274 | /** 275 | * 上报自定义异常 276 | * 277 | * @param exception 异常信息 278 | */ 279 | + (void)reportException:(nonnull NSException *)exception; 280 | 281 | /** 282 | * 上报错误 283 | * 284 | * @param error 错误信息 285 | */ 286 | + (void)reportError:(NSError *)error; 287 | 288 | /** 289 | * SDK 版本信息 290 | * 291 | * @return 292 | */ 293 | + (nonnull NSString *)sdkVersion; 294 | 295 | /** 296 | * 获取设备ID 297 | * 298 | * @return 设备ID 299 | */ 300 | + (nonnull NSString *)deviceId; 301 | 302 | ``` 303 | -------------------------------------------------------------------------------- /README_OLD.md: -------------------------------------------------------------------------------- 1 | # Bugly iOS SDK 接入指南 2 | 3 | ## 1. SDK 集成 4 | 5 | Bugly 提供两种集成 SDK 方式供 iOS 开发者选择 6 | 7 | * CocoaPods 8 | 9 | * 手动集成 10 | 11 | ### 1.1 CocoaPods 集成方式 12 | 13 | 在工程的 **Podfile** 里面添加以下代码 14 | 15 | ```ruby 16 | 17 | pod 'Bugly' 18 | 19 | ``` 20 | 21 | 保存并运行`pod install`,然后用后缀为`.xcworkspace`的文件打开工程 22 | 23 | 关于`CocoaPods`的更多信息请查看 [CocoaPods官方网站](https://cocoapods.org "CocoaPods") 24 | 25 | ### 1.2 手动集成方式 26 | 27 | * 下载并解压 [iOS SDK](http://bugly.qq.com/whitebook "iOS SDK") 28 | * 拖拽`Bugly_libc++`目录下的`Bugly.framework`文件到 Xcode 工程内 (请勾选`Copy items if needed`选项) 29 | * 添加依赖库 30 | - `SystemConfiguration.framework` 31 | - `Security.framework` 32 | - `libz.dylib` 33 | - `libc++.dylib` 34 | 35 | **如果你的 Xcode 工程里的 `C++ Standard Library` 配置为`libstdc++`** 36 | 37 | 1. 请选择`Bugly_libstdc++`目录下的`Bugly.framework` 38 | 2. 并将上述依赖库中的`libc++.dylib`替换为`libstdc++.dylib` 39 | 40 | ## 2. 初始化SDK 41 | 42 | ### 1.导入头文件 43 | 44 | 在工程的`AppDelegate.m`中导入头文件 45 | 46 | `#import ` 47 | 48 | **如果是 Swift 工程,请在对应`bridging-header.h`中导入** 49 | 50 | ### 2.初始化 Bugly 51 | 52 | 在工程`AppDelegate.m`的`application didFinishLaunch...`方法中初始化 Bugly 53 | 54 | **Objective-C** 55 | 56 | ```objective-c 57 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 58 | [[CrashReporter sharedInstance] installWithAppId:@"此处替换为你的AppId"]; 59 | return YES; 60 | } 61 | ``` 62 | **Swift** 63 | 64 | ```swift 65 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 66 | CrashReporter.sharedInstance().installWithAppId("此处替换为你的AppId") 67 | return true 68 | } 69 | ``` 70 | 71 | ### 3.iOS Extension 初始化 72 | 73 | 如果工程内包含 Extension Target,则初始化方法需要带上共用的 App Group 标识符 74 | 75 | **Objective-C** 76 | 77 | ```objective-c 78 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 79 | [[CrashReporter sharedInstance] installWithAppId:@"此处替换为你的AppId" applicationGroupIdentifier:@"此处替换为你的App Group标识符"]; 80 | return YES; 81 | } 82 | ``` 83 | 84 | **Swift** 85 | 86 | ```swift 87 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 88 | CrashReporter.sharedInstance().installWithAppId("此处替换为你的AppId" applicationGroupIdentifier:"此处替换为你的App Group标识符") 89 | return true 90 | } 91 | ``` 92 | 93 | 关于 Extension 的接入流程请参见 [Bugly iOS Extension SDK 接入指南](./advanced/EXTENSION.md) 94 | 95 | #### 至此,恭喜你的工程已经成功集成 Bugly,接下来编译并运行你的工程吧 :) 96 | 97 | 98 | ---- 99 | 100 | ## 如何确认成功接入 Bugly ? 101 | 102 | Bugly 会在 log 中输出关键步骤,为了完成接入检测,请在你的 App 代码中手动构建一个异常,如下述例子 103 | 104 | **Objective-C** 105 | 106 | ```objective-c 107 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 108 | [[CrashReporter sharedInstance] installWithAppId:@"此处替换为你的AppId"]; 109 | [self performSelector:@selector(crash) withObject:nil afterDelay:3.0]; 110 | return YES; 111 | } 112 | ``` 113 | 114 | **Swift** 115 | 116 | ```swift 117 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 118 | CrashReporter.sharedInstance().installWithAppId("此处替换为你的AppId") 119 | NSObject.performSelector("crash", withObject: nil, afterDelay: 2.0) 120 | return true 121 | } 122 | ``` 123 | 124 | **请在初始化 Bugly 代码前打开 log 输出** 125 | 126 | `- (void)enableLog:(BOOL)enabled;` 127 | 128 | **Objective-C** 129 | 130 | ```objective-c 131 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 132 | [[CrashReporter sharedInstance] enableLog:YES]; 133 | [[CrashReporter sharedInstance] installWithAppId:@"此处替换为你的AppId"]; 134 | [self performSelector:@selector(crash) withObject:nil afterDelay:3.0]; 135 | return YES; 136 | } 137 | ``` 138 | 139 | **Swift** 140 | 141 | ```swift 142 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 143 | CrashReporter.sharedInstance().enableLog(true) 144 | CrashReporter.sharedInstance().installWithAppId("此处替换为你的AppId") 145 | NSObject.performSelector("crash", withObject: nil, afterDelay: 3.0) 146 | return true 147 | } 148 | ``` 149 | 150 | **准备步骤** 151 | 152 | * 连接 iOS 设备,编译并运行,点击 Xcode 的中止按钮断开调试模式 153 | 154 | *编译启动后,点击图片中箭头所指按钮关闭 Xcode 调试模式* 155 | ![关闭调试模式](./advanced/xcode_debug@2x.jpg) 156 | 157 | * 进入 Xcode 中的 Devices 选项,选中调试设备并展开设备日志 (入口在Xcode上方菜单栏的`Window` -> `Devices`) 158 | 159 | ![打开设备日志窗口](./advanced/deviceLog@2x.jpg) 160 | 161 | * 重新启动刚才编译的 App 开始关键步骤确认 162 | 163 | 164 | 165 | ### 关键步骤 log 输出 166 | 167 | **请在设备日志输出的 Log 中查找以下关键字** 168 | 169 | - 初始化 SDK 170 | 171 | `: init sdk ...` 172 | 173 | - 成功安装异常捕获模块 174 | 175 | `: sdk install signal handler success, exception handler success` 176 | 177 | - 成功向服务器发送请求 178 | 179 | `: ******Http request successed` 180 | 181 | - 成功捕获异常的输出 182 | 183 | `Bugly : Catch uncaught exception:` 184 | 185 | - 成功持久化异常信息 186 | 187 | ` Bugly : save one crash` 188 | 189 | - 成功将异常上报至服务器 190 | 191 | `Bugly : CrashUploadHandler SUCC finish crash uploading. with 1 records and 1 crashes` 192 | 193 | **如果上述关键步骤 log 都能找到,即可到 Bugly 官网 *崩溃列表* 处查看新上报的异常信息了** 194 | 195 | - 有其他第三方 SDK 抢注了系统崩溃捕获接口 196 | 197 | ` Bugly: Note: there is another uncaught exception handler ...` 198 | 199 | **如果在日志中见到上行记录,请先手动调用存在崩溃捕获能力的第三方 SDK 的关闭接口,最后再初始化Bugly** 200 | 201 | **如示例:关闭 友盟,TalkingData,Testin 相关能力的代码:** 202 | 203 | **Objective-C** 204 | 205 | ```objective-c 206 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 207 | // 友盟 208 | [MobClick setCrashReportEnabled:NO]; 209 | [MobClick startWithAppkey:@"UMENG_APPKEY"]; 210 | // talking data 211 | [TalkingData sessionStarted:@"TALKINGDATA_APPID" withChannelId:nil]; 212 | [TalkingData setExceptionReportEnabled:NO]; 213 | [TalkingData setSignalReportEnabled:NO]; 214 | // testin 215 | TestinConfig *config = [TestinConfig defaultConfig]; 216 | config.enabledMonitorException = NO; 217 | [TestinAgent init:@"TESTIN_APPID" channel:nil config:config]; 218 | // 初始化Bugly 219 | [[CrashReporter sharedInstance] enableLog:YES]; 220 | [[CrashReporter sharedInstance] installWithAppId:@"BUGLY_APPID"]; 221 | return YES; 222 | } 223 | ``` 224 | 225 | **如果第三方SDK不在上述例子中,请查阅第三方SDK头文件或文档找到相应关闭接口进行关闭,如找不到相应接口,请尝试延迟初始化 Bugly** 226 | 227 | **Objective-C** 228 | 229 | ```objective-c 230 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 231 | //第三方SDK初始化 232 | 233 | //延迟3秒初始化Bugly 234 | [self performSelector:@selector(setupBugly) withObject:nil afterDelay:3]; 235 | return YES; 236 | } 237 | 238 | - (void)setupBugly { 239 | [[CrashReporter sharedInstance] enableLog:YES]; 240 | [[CrashReporter sharedInstance] installWithAppId:@"BUGLY_APPID"]; 241 | } 242 | ``` 243 | 244 | **如按照上述步骤确认成功仍无法正常上报,请联系客服协助解决** 245 | 246 | 247 | ## 高级功能 248 | 249 | Bugly 提供了众多功能强大的模块供开发者开启,如 250 | 251 | - 符号还原 252 | 253 | - 卡顿监测 254 | 255 | - 自动上传符号表 256 | 257 | - 异常回调..等 258 | 259 | #### 关于Bugly更多高级功能的使用,请移步 [Bugly高级功能使用指南](./advanced/ADVANCED.md) 260 | 261 | -------------------------------------------------------------------------------- /UPGRADE_GUIDE.md: -------------------------------------------------------------------------------- 1 | # Bugly 旧版本顺滑升级指引 2 | 3 | 为了SDK接口更加清晰明了,避免使用中的困惑,我们重新梳理调整了Bugly SDK中的接口,请旧版本(< 2.0)用户参照此指引进行升级。 4 | 5 | ### 初始化 6 | 7 | - 导入头文件 8 | 9 | ```objective-c 10 | #import 11 | ``` 12 | **改为** 13 | 14 | ```objective-c 15 | #import 16 | ``` 17 | 18 | - 初始化SDK 19 | 20 | ```objective-c 21 | [[CrashReporter sharedInstance] installWithAppkey:@"BUGLY_APP_ID"]; 22 | ``` 23 | **改为** 24 | 25 | ```objective-c 26 | [Bugly startWithAppId:@"BUGLY_APP_ID"]; 27 | ``` 28 | 29 | 如需要配合Extension的使用,需要设置App Group Identifier 的,采用以下方式 30 | 31 | ```objective-c 32 | [[CrashReporter sharedInstance] installWithAppkey:@"BUGLY_APP_ID" 33 | applicationGroupIdentifier:@"APP_GROUP_ID"]; 34 | ``` 35 | **改为** 36 | 37 | ```objective-c 38 | BuglyConfig *config = [[BuglyConfig alloc] init]; 39 | config.applicationGroupIdentifier = @"APP_GROUP_ID"; 40 | [Bugly startWithAppId:@"BUGLY_APP_ID" config:config]; 41 | ``` 42 | 43 | ### 功能开关 44 | 45 | **在新版本(2.0 +) Bugly接口中,所有的功能开关均在 BuglyConfig 中设置,请在初始化 Bugly 前先自定义 BuglyConfig** 46 | 47 | ```objective-c 48 | BuglyConfig *config = [[BuglyConfig alloc] init]; 49 | // 自定义config 50 | // 如:config.unexpectedTerminatingDetectionEnable = YES; 51 | [Bugly startWithAppId:@"BUGLY_APP_ID" config:config]; 52 | ``` 53 | 54 | - 非正常退出事件(SIGKILL) 55 | 56 | ```objective-c 57 | [[CrashReporter sharedInstance] enableUnexpectedTerminatingDetection:YES]; 58 | ``` 59 | **改为** 60 | 61 | ```objective-c 62 | config.unexpectedTerminatingDetectionEnable = YES; 63 | ``` 64 | 65 | - 卡顿监控 66 | 67 | ```objective-c 68 | [[CrashReporter sharedInstance] enableBlockMonitor:YES]; 69 | ``` 70 | **改为** 71 | 72 | ```objective-c 73 | config.blockMonitorEnable = YES; 74 | ``` 75 | 76 | - 开启SDK日志 77 | 78 | ```objective-c 79 | [[CrashReporter sharedInstance] enableLog:YES]; 80 | ``` 81 | **改为** 82 | 83 | ```objective-c 84 | config.debugMode = YES; 85 | ``` 86 | 87 | - App Transport Security ( 上报是否采用 HTTPS ) 88 | 89 | ```objective-c 90 | [[CrashReporter sharedInstance] enableAppTransportSecurity:YES]; 91 | ``` 92 | **改为** 93 | 94 | ```objective-c 95 | config.appTransportSecurityEnable = YES; 96 | ``` 97 | 98 | - App Transport Security ( 上报是否采用 HTTPS ) 99 | 100 | ```objective-c 101 | [[CrashReporter sharedInstance] enableAppTransportSecurity:YES]; 102 | ``` 103 | **改为** 104 | 105 | ```objective-c 106 | config.appTransportSecurityEnable = YES; 107 | ``` 108 | 109 | - 进程内还原符号 110 | 111 | ```objective-c 112 | [[CrashReporter sharedInstance] setEnableSymbolicateInProcess:YES]; 113 | ``` 114 | **改为** 115 | 116 | ```objective-c 117 | config.symbolicateInProcessEnable = YES; 118 | ``` 119 | 120 | ### 自定义数据 121 | 122 | **在新版本(2.0 +) Bugly接口中,部分自定义数据在 BuglyConfig 中设置,请在初始化 Bugly 前先自定义 BuglyConfig。** 123 | 124 | - 渠道标识 125 | 126 | ```objective-c 127 | [[CrashReporter sharedInstance] setChannel:@"AppStore"]; 128 | ``` 129 | **改为** 130 | 131 | ```objective-c 132 | config.channel = @"AppStore"; 133 | ``` 134 | 135 | - 自定义版本号 136 | 137 | ```objective-c 138 | [[CrashReporter sharedInstance] setBundleVer:@"1.0"]; 139 | ``` 140 | **改为** 141 | 142 | ```objective-c 143 | config.version = @"1.0"; 144 | ``` 145 | 146 | - 设备标识 147 | 148 | ```objective-c 149 | [[CrashReporter sharedInstance] setDeviceId:@"DEVICE_ID"]; 150 | ``` 151 | **改为** 152 | 153 | ```objective-c 154 | config.deviceId = @"DEVICE_ID"; 155 | ``` 156 | 157 | - 卡顿阀值 158 | 159 | *注意:旧接口中单位为毫秒(ms),默认值3000ms,新接口中单位为秒(s),默认值3s 160 | 161 | ```objective-c 162 | [[CrashReporter sharedInstance] setBlockMonitorJudgementLoopTimeout:1000]; 163 | ``` 164 | **改为** 165 | 166 | ```objective-c 167 | config.blockMonitorTimeout = 1.0; 168 | ``` 169 | 170 | - 上报自定义KeyValue数据 171 | 172 | ```objective-c 173 | [[CrashReporter sharedInstance] setUserData:@"Test Key" value:@"Test Value"]; 174 | ``` 175 | **改为** 176 | 177 | ```objective-c 178 | [Bugly setUserValue:@"Test Value" forKey:@"Test Key"]; 179 | ``` 180 | 181 | - 设置Tag 182 | 183 | ```objective-c 184 | [[CrashReporter sharedInstance] setSceneTag:1]; 185 | ``` 186 | **改为** 187 | 188 | ```objective-c 189 | [Bugly setTag:1]; 190 | ``` 191 | 192 | - 设置用户标识 193 | 194 | ```objective-c 195 | [[CrashReporter sharedInstance] setUserId:@"USER_ID"]; 196 | ``` 197 | **改为** 198 | 199 | ```objective-c 200 | [Bugly setUserIdentifier:@"USER_ID"]; 201 | ``` 202 | 203 | - 主动上报异常 204 | 205 | ```objective-c 206 | NSException *exception = [NSException exceptionWithName:@"NAME" 207 | reason:@"REASON" 208 | userInfo:@{@"KEY":@"VALUE"}]; 209 | [[CrashReporter sharedInstance] reportException:exception 210 | reason:@"INFO" 211 | extraInfo:@{@"KEY":@"VALUE"}]; 212 | ``` 213 | **改为** 214 | 215 | ```objective-c 216 | NSException *exception = [NSException exceptionWithName:@"NAME" 217 | reason:@"REASON" 218 | userInfo:@{@"KEY":@"VALUE"}]; 219 | [Bugly reportException:exception]; 220 | ``` 221 | 222 | -------------------------------------------------------------------------------- /advanced/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/.DS_Store -------------------------------------------------------------------------------- /advanced/ADVANCED.md: -------------------------------------------------------------------------------- 1 | # Bugly iOS SDK 高级功能使用指南 2 | 3 | ## 功能控制 4 | 5 | **注意:所有功能控制接口请在初始化 Bugly 前调用** 6 | 7 | - 日志输出控制 8 | 9 | 开启/关闭 Bugly日志输出,默认关闭。建议 release 时关闭 10 | 11 | ```objective-c 12 | - (void)enableLog:(BOOL)enabled; 13 | ``` 14 | 15 | - 卡顿监测功能控制 16 | 17 | 开启/关闭 卡顿监测及上报功能,捕获功能默认开启,上报默认开启 18 | 19 | ```objective-c 20 | - (void)enableBlockMonitor:(BOOL)monitor autoReport:(BOOL)reporter; 21 | ``` 22 | 23 | ## 自定义参数 24 | 25 | - 设置渠道标识 26 | 27 | 自定义渠道标识,默认为空值 28 | 29 | ```objective-c 30 | - (void)setChannel:(NSString *)channel; 31 | ``` 32 | 33 | - 设置设备标识 34 | 35 | SDK默认使用CFUDID标识设备,**注意: 平台依据 deviceId 统计用户数, 如果设置修改, 请保证其唯一性** 36 | 37 | ```objective-c 38 | - (void)setDeviceId:(NSString *)deviceId; 39 | ``` 40 | - 设置应用版本 41 | 42 | SDK默认读取Info.plist文件中的版本信息,并组装成`CFBundleShortVersionString(CFBundleVersion)`格式 43 | 44 | ```objective-c 45 | - (void)setBundleVer:(NSString *)bundleVer; 46 | ``` 47 | - 设置用户标识 48 | 49 | SDK默认值为 10000 50 | 51 | ```objective-c 52 | - (void)setUserId:(NSString *)userid; 53 | ``` 54 | - 自定义应用 Bundle Id 55 | 56 | ```objective-c 57 | - (void)setBundleId:(NSString *)bundleId; 58 | ``` 59 | - 自定义附件 60 | 61 | 崩溃发生时, 添加附件内容。附件格式为字符串,字符最大长度为10 * 1024 **在回调方法中调用** 62 | 63 | ```objective-c 64 | - (void)setAttachLog:(NSString *)attachment; 65 | ``` 66 | - 自定义 Key Value 67 | 68 | ```objective-c 69 | - (void)setUserData:(NSString *)key value:(NSString *)value; 70 | ``` 71 | ## 异常回调 72 | 73 | 在异常发生后进行调用,应用可以设置回调函数,并在回调中保存异常现场信息等信息,异常现场等信息可以通过 `getCrashXXX` 接口获取 74 | 75 | 使用示例: 76 | 77 | ```objective-c 78 | static int exception_callback_handler() { 79 | NSLog(@"Crash occur in the app"); 80 | [... setAttachLog:@""]; 81 | return 1; 82 | } 83 | 84 | exp_call_back_func=&exception_callback_handler; 85 | 86 | ``` 87 | ## 配置符号表 88 | 89 | Bugly 提供了两种配置符号表的方式 90 | 91 | - sh脚本自动上传 92 | 93 | - 手动上传 94 | 95 | ### sh脚本自动上传 96 | 97 | - 我们的符号表提取工具依赖 java 运行环境 [java 环境下载](https://support.apple.com/kb/DL1572?locale=zh_CN) 98 | 99 | - 下载解压 [自动配置符号表 zip 文件](http://bugly.qq.com/sdkdown?id=6ecfd28d-d8ea-4446-a9c8-13aed4a94f04) 100 | 101 | - 把符号表提取工具`buglySymbolIOS.jar` 保存在 `~/bin` 目录下 (~为用户主目录,如用户主目录没有`bin`文件夹,请自行创建) 102 | 103 | - 在 Xcode 工程对应 Target 的`Build Phases`中新增`Run Scrpit Phase` 104 | ![](./dSYMUpload_1@2x.jpg) 105 | 106 | ![](./dSYMUpload_2@2x.jpg) 107 | 108 | - 打开`dSYM_upload.sh`,复制所有内容,在新增的`Run Scrpit Phase`中粘贴 109 | 110 | - 修改新增的`Run Scrpit`中的 `` 为您的 appid,``为您的 appkey,`` 为 app 的 Bundle Id 111 | ![](./dSYMUpload_3@2x.jpg) 112 | 113 | 脚本默认在 **Debug** 模式及 **模拟器编译** 情况下不会上传符号表,在需要上传的时候,请修改下列选项 114 | 115 | - Debug模式编译是否上传,1=上传 0=不上传,默认不上传 116 | 117 | `UPLOAD_DEBUG_SYMBOLS=0` 118 | 119 | - 模拟器编译是否上传,1=上传 0=不上传,默认不上传 120 | 121 | `UPLOAD_SIMULATOR_SYMBOLS=0` 122 | 123 | 至此,自动上传符号表脚本配置完毕,Bugly 会在每次 Xcode 工程编译后自动完成符号表配置工作。 124 | 125 | 如果不想自动上传模拟器编译后的符号文件,请修改脚本`UPLOAD_SIMULATOR_SYMBOLS=0` 126 | 127 | ### 手动上传 128 | 129 | 关于手动上传符号表,请参阅 [手动符号表配置指南](http://bugly.qq.com/iossymbol) 130 | 131 | 132 | ### 更多功能请查阅 Bugly 头文件`CrashReporter.h` 133 | -------------------------------------------------------------------------------- /advanced/EXTENSION.md: -------------------------------------------------------------------------------- 1 | # Bugly iOS Extension SDK 接入指南 2 | 3 | ## 1. 集成 SDK 4 | 5 | **注意:BuglyExtension 依赖于 `Bugly iOS SDK 1.2.9` 及以上版本** 6 | 7 | BuglyExtension 提供两种集成 SDK 的方式供 iOS 开发者选择 8 | 9 | * CocoaPods 10 | 11 | * 手动集成 12 | 13 | ### 1.1 CocoaPods 集成方式 14 | 15 | 在工程的 **Podfile** 里对应的 Extension Target 中添加以下代码 16 | 17 | ```ruby 18 | pod 'BuglyExtension' 19 | ``` 20 | 示例: 21 | 22 | ```ruby 23 | target 'ExtensionPodTest WatchKit Extension' do 24 | pod 'BuglyExtension' 25 | end 26 | ``` 27 | 28 | 保存并运行`pod install`,然后用后缀为`.xcworkspace`的文件打开工程 29 | 30 | 关于`CocoaPods`的更多信息请查看 [CocoaPods官方网站](https://cocoapods.org "CocoaPods") 31 | 32 | ### 1.2 手动集成方式 33 | 34 | * 下载并解压 [iOS Extension SDK](http://bugly.qq.com/sdkdown?id=05deedf8-796e-4e95-9d1d-3bb3d9890e78 "iOS Extension SDK") 35 | 36 | * 拖拽`BuglyExtension.framework`文件到 Xcode 工程内 (如下图) 37 | - **请勾选`Copy items if needed`选项** 38 | - **如有多个 Extension Targets ,则一一进行勾选** 39 | 40 | ![](./ImportFramework@2x.jpg) 41 | 42 | --- 43 | 44 | ## 2. 初始化 SDK 45 | 46 | ### 1.导入头文件 47 | 48 | 在工程的`InterfaceController.h`中导入头文件 49 | 50 | `#import ` 51 | 52 | **如果是其它类型的 Extension,请在对应的入口`ViewController.h`中导入** 53 | 54 | **如果是 Swift 工程,请在对应的`bridging-header.h`中导入** 55 | 56 | ### 2.初始化 BuglyExtension SDK 57 | 58 | #### 2.1 Watch Extension 59 | 60 | 在工程`InterfaceController.m`的`- (instancetype)init`方法中初始化 Bugly Extension SDK 61 | 62 | 如果 Xcode 初始模板没有此方法,直接复制以下代码粘贴即可 63 | 64 | **Objective-C** 65 | 66 | ```objective-c 67 | - (instancetype)init { 68 | self = [super init]; 69 | if (self) { 70 | [CrashReporterLite startWithApplicationGroupIdentifier:@"此处替换为您的 App Group Identifier"]; 71 | } 72 | return self; 73 | } 74 | ``` 75 | 76 | **Swift** 77 | 78 | ```swift 79 | override init() { 80 | CrashReporterLite.startWithApplicationGroupIdentifier("此处替换为您的 App Group Identifier") 81 | super.init() 82 | } 83 | ``` 84 | **如果 Apple Watch App 中还有 Glance 或 Notification 交互实现,则需在各自的入口`Controller`中添加上述代码。** 85 | 86 | #### 2.2 其它类型 Extension 87 | 88 | 其它类型的 iOS Extension,如 Today Extension,Share Extension 等,请在对应的`ViewController.m`的`- (instancetype)initWithCoder`方法中初始化 89 | 90 | 如果 Xcode 初始模板没有此方法,直接复制以下代码粘贴即可 91 | 92 | **Objective-C** 93 | 94 | ```objective-c 95 | - (instancetype)initWithCoder:(NSCoder *)aDecoder { 96 | self = [super initWithCoder:aDecoder]; 97 | if (self) { 98 | [CrashReporterLite startWithApplicationGroupIdentifier:@"此处替换为您的 App Group Identifier"]; 99 | } 100 | return self; 101 | } 102 | ``` 103 | 104 | **Swift** 105 | 106 | ```swift 107 | required init(coder aDecoder: NSCoder) { 108 | CrashReporterLite.startWithApplicationGroupIdentifier("此处替换为您的 App Group Identifier") 109 | super.init(coder: aDecoder) 110 | } 111 | ``` 112 | 113 | #### 2.3 Host App 中的初始化 114 | 115 | BuglyExtension SDK 依赖于 `Bugly iOS SDK 1.2.9` 及以上版本。 116 | 117 | 如需支持 Extension 的异常捕获,在 Host App 中的初始化方法需要变更为以下方法: 118 | 119 | **Objective-C** 120 | 121 | ```objective-c 122 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 123 | [[CrashReporter sharedInstance] installWithAppId:@"此处替换为你的AppId" applicationGroupIdentifier:@"此处替换为你的App Group标识符"]; 124 | return YES; 125 | } 126 | ``` 127 | 128 | **Swift** 129 | 130 | ```swift 131 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 132 | CrashReporter.sharedInstance().installWithAppId("此处替换为你的AppId" applicationGroupIdentifier:"此处替换为你的App Group标识符") 133 | return true 134 | } 135 | ``` 136 | #### 至此,恭喜您的工程已经成功集成 BuglyExtension SDK,接下来编译并运行您的工程吧 :) 137 | -------------------------------------------------------------------------------- /advanced/ImportFramework@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/ImportFramework@2x.jpg -------------------------------------------------------------------------------- /advanced/dSYMUpload_1@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/dSYMUpload_1@2x.jpg -------------------------------------------------------------------------------- /advanced/dSYMUpload_2@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/dSYMUpload_2@2x.jpg -------------------------------------------------------------------------------- /advanced/dSYMUpload_3@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/dSYMUpload_3@2x.jpg -------------------------------------------------------------------------------- /advanced/deviceLog@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/deviceLog@2x.jpg -------------------------------------------------------------------------------- /advanced/xcode_debug@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/advanced/xcode_debug@2x.jpg -------------------------------------------------------------------------------- /release/Bugly-1.2.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.2.7.zip -------------------------------------------------------------------------------- /release/Bugly-1.2.8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.2.8.zip -------------------------------------------------------------------------------- /release/Bugly-1.2.9.10.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.2.9.10.zip -------------------------------------------------------------------------------- /release/Bugly-1.2.9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.2.9.zip -------------------------------------------------------------------------------- /release/Bugly-1.3.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.3.1.zip -------------------------------------------------------------------------------- /release/Bugly-1.3.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.3.2.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.0.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.1.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.2.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.3.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.4.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.5.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.6.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.7.zip -------------------------------------------------------------------------------- /release/Bugly-1.4.8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-1.4.8.zip -------------------------------------------------------------------------------- /release/Bugly-2.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.1.zip -------------------------------------------------------------------------------- /release/Bugly-2.2.3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.2.3.zip -------------------------------------------------------------------------------- /release/Bugly-2.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.2.zip -------------------------------------------------------------------------------- /release/Bugly-2.3.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.3.0.zip -------------------------------------------------------------------------------- /release/Bugly-2.3.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.3.1.zip -------------------------------------------------------------------------------- /release/Bugly-2.4.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.4.0.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.0.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.2.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.4.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.5.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.71.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.71.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.8.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.9.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.91.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.91.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.92.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.92.zip -------------------------------------------------------------------------------- /release/Bugly-2.5.93.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.5.93.zip -------------------------------------------------------------------------------- /release/Bugly-2.6.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.6.0.zip -------------------------------------------------------------------------------- /release/Bugly-2.6.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/Bugly-2.6.1.zip -------------------------------------------------------------------------------- /release/BuglyExtension-1.0.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/BuglyExtension-1.0.7.zip -------------------------------------------------------------------------------- /release/BuglyExtension-1.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/BuglyExtension-1.0.zip -------------------------------------------------------------------------------- /release/BuglyExtension-1.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/BuglyExtension-1.1.zip -------------------------------------------------------------------------------- /release/BuglyWatchOS-1.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/BuglyWatchOS-1.0.1.zip -------------------------------------------------------------------------------- /release/BuglyWatchOS-1.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuglyDevTeam/Bugly-iOS/85509e7bd825edfa8c3848eba23e4d070267d166/release/BuglyWatchOS-1.0.zip --------------------------------------------------------------------------------