SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.pbxproj
New file @@ -0,0 +1,669 @@ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 84419351215CC98E0091BD4C /* XHAuxiliaryResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8441934A215CC98E0091BD4C /* XHAuxiliaryResource.bundle */; }; 84419352215CC98E0091BD4C /* libXHAuxiliary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8441934B215CC98E0091BD4C /* libXHAuxiliary.a */; }; 84563B32208D86E700B0BC52 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84563B31208D86E700B0BC52 /* StoreKit.framework */; }; 87223C841F1F3D27004F83B3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 87223C831F1F3D27004F83B3 /* main.m */; }; 87223C871F1F3D27004F83B3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 87223C861F1F3D27004F83B3 /* AppDelegate.m */; }; 87223C8A1F1F3D27004F83B3 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 87223C891F1F3D27004F83B3 /* ViewController.m */; }; 87223C8D1F1F3D27004F83B3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 87223C8B1F1F3D27004F83B3 /* Main.storyboard */; }; 87223C8F1F1F3D27004F83B3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 87223C8E1F1F3D27004F83B3 /* Assets.xcassets */; }; 87223C921F1F3D27004F83B3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 87223C901F1F3D27004F83B3 /* LaunchScreen.storyboard */; }; 87223C9D1F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 87223C9C1F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.m */; }; 87223CA81F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 87223CA71F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.m */; }; 8723FD111F459E1800E351F5 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8723FD101F459E1800E351F5 /* libz.tbd */; }; 87E5A48C1F20A3F60042D1A9 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87E5A48B1F20A3F60042D1A9 /* AdSupport.framework */; }; 87E5A48E1F20A3FB0042D1A9 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87E5A48D1F20A3FB0042D1A9 /* Security.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 87223C991F1F3D27004F83B3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 87223C771F1F3D27004F83B3 /* Project object */; proxyType = 1; remoteGlobalIDString = 87223C7E1F1F3D27004F83B3; remoteInfo = LLGameSDKExampleDemo; }; 87223CA41F1F3D27004F83B3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 87223C771F1F3D27004F83B3 /* Project object */; proxyType = 1; remoteGlobalIDString = 87223C7E1F1F3D27004F83B3; remoteInfo = LLGameSDKExampleDemo; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 8440B556208D82E20030679A /* LLGameSDKExampleDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = LLGameSDKExampleDemo.entitlements; sourceTree = "<group>"; }; 8441934A215CC98E0091BD4C /* XHAuxiliaryResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = XHAuxiliaryResource.bundle; sourceTree = "<group>"; }; 8441934B215CC98E0091BD4C /* libXHAuxiliary.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libXHAuxiliary.a; sourceTree = "<group>"; }; 8441934E215CC98E0091BD4C /* XHAuxiliaryHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XHAuxiliaryHeader.h; sourceTree = "<group>"; }; 8441934F215CC98E0091BD4C /* XHAuxiliarySDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XHAuxiliarySDK.h; sourceTree = "<group>"; }; 84419350215CC98E0091BD4C /* XHAuxiliaryUserAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XHAuxiliaryUserAccount.h; sourceTree = "<group>"; }; 84563B31208D86E700B0BC52 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; 871913521F2EE6710036445C /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 871913541F2EE67D0036445C /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 87223C7F1F1F3D27004F83B3 /* LLGameSDKExampleDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LLGameSDKExampleDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 87223C831F1F3D27004F83B3 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 87223C851F1F3D27004F83B3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 87223C861F1F3D27004F83B3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 87223C881F1F3D27004F83B3 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; 87223C891F1F3D27004F83B3 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; 87223C8C1F1F3D27004F83B3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 87223C8E1F1F3D27004F83B3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 87223C911F1F3D27004F83B3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 87223C931F1F3D27004F83B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 87223C981F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LLGameSDKExampleDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 87223C9C1F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LLGameSDKExampleDemoTests.m; sourceTree = "<group>"; }; 87223C9E1F1F3D27004F83B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 87223CA31F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LLGameSDKExampleDemoUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 87223CA71F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LLGameSDKExampleDemoUITests.m; sourceTree = "<group>"; }; 87223CA91F1F3D27004F83B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 8723FD101F459E1800E351F5 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 87E5A48B1F20A3F60042D1A9 /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; }; 87E5A48D1F20A3FB0042D1A9 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 87223C7C1F1F3D27004F83B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 84419352215CC98E0091BD4C /* libXHAuxiliary.a in Frameworks */, 8723FD111F459E1800E351F5 /* libz.tbd in Frameworks */, 84563B32208D86E700B0BC52 /* StoreKit.framework in Frameworks */, 87E5A48E1F20A3FB0042D1A9 /* Security.framework in Frameworks */, 87E5A48C1F20A3F60042D1A9 /* AdSupport.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 87223C951F1F3D27004F83B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 87223CA01F1F3D27004F83B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 8441934C215CC98E0091BD4C /* include */ = { isa = PBXGroup; children = ( 8441934D215CC98E0091BD4C /* XHAuxiliary */, ); path = include; sourceTree = "<group>"; }; 8441934D215CC98E0091BD4C /* XHAuxiliary */ = { isa = PBXGroup; children = ( 8441934E215CC98E0091BD4C /* XHAuxiliaryHeader.h */, 8441934F215CC98E0091BD4C /* XHAuxiliarySDK.h */, 84419350215CC98E0091BD4C /* XHAuxiliaryUserAccount.h */, ); path = XHAuxiliary; sourceTree = "<group>"; }; 84B0BC6220849D8600500608 /* SDK */ = { isa = PBXGroup; children = ( 8441934C215CC98E0091BD4C /* include */, 8441934B215CC98E0091BD4C /* libXHAuxiliary.a */, 8441934A215CC98E0091BD4C /* XHAuxiliaryResource.bundle */, ); path = SDK; sourceTree = SOURCE_ROOT; }; 87223C761F1F3D27004F83B3 = { isa = PBXGroup; children = ( 87223C811F1F3D27004F83B3 /* JSHDSDKExampleDemo */, 87223C9B1F1F3D27004F83B3 /* JSHDSDKExampleDemoTests */, 87223CA61F1F3D27004F83B3 /* JSHDSDKExampleDemoUITests */, 87223C801F1F3D27004F83B3 /* Products */, 87E5A4881F20A3F20042D1A9 /* Frameworks */, ); sourceTree = "<group>"; }; 87223C801F1F3D27004F83B3 /* Products */ = { isa = PBXGroup; children = ( 87223C7F1F1F3D27004F83B3 /* LLGameSDKExampleDemo.app */, 87223C981F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.xctest */, 87223CA31F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.xctest */, ); name = Products; sourceTree = "<group>"; }; 87223C811F1F3D27004F83B3 /* JSHDSDKExampleDemo */ = { isa = PBXGroup; children = ( 8440B556208D82E20030679A /* LLGameSDKExampleDemo.entitlements */, 84B0BC6220849D8600500608 /* SDK */, 87223C851F1F3D27004F83B3 /* AppDelegate.h */, 87223C861F1F3D27004F83B3 /* AppDelegate.m */, 87223C881F1F3D27004F83B3 /* ViewController.h */, 87223C891F1F3D27004F83B3 /* ViewController.m */, 87223C8B1F1F3D27004F83B3 /* Main.storyboard */, 87223C8E1F1F3D27004F83B3 /* Assets.xcassets */, 87223C901F1F3D27004F83B3 /* LaunchScreen.storyboard */, 87223C931F1F3D27004F83B3 /* Info.plist */, 87223C821F1F3D27004F83B3 /* Supporting Files */, ); path = JSHDSDKExampleDemo; sourceTree = "<group>"; }; 87223C821F1F3D27004F83B3 /* Supporting Files */ = { isa = PBXGroup; children = ( 87223C831F1F3D27004F83B3 /* main.m */, ); name = "Supporting Files"; sourceTree = "<group>"; }; 87223C9B1F1F3D27004F83B3 /* JSHDSDKExampleDemoTests */ = { isa = PBXGroup; children = ( 87223C9C1F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.m */, 87223C9E1F1F3D27004F83B3 /* Info.plist */, ); path = JSHDSDKExampleDemoTests; sourceTree = "<group>"; }; 87223CA61F1F3D27004F83B3 /* JSHDSDKExampleDemoUITests */ = { isa = PBXGroup; children = ( 87223CA71F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.m */, 87223CA91F1F3D27004F83B3 /* Info.plist */, ); path = JSHDSDKExampleDemoUITests; sourceTree = "<group>"; }; 87E5A4881F20A3F20042D1A9 /* Frameworks */ = { isa = PBXGroup; children = ( 84563B31208D86E700B0BC52 /* StoreKit.framework */, 8723FD101F459E1800E351F5 /* libz.tbd */, 871913541F2EE67D0036445C /* CoreGraphics.framework */, 871913521F2EE6710036445C /* QuartzCore.framework */, 87E5A48D1F20A3FB0042D1A9 /* Security.framework */, 87E5A48B1F20A3F60042D1A9 /* AdSupport.framework */, ); name = Frameworks; sourceTree = "<group>"; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 87223C7E1F1F3D27004F83B3 /* JSHDSDKExampleDemo */ = { isa = PBXNativeTarget; buildConfigurationList = 87223CAC1F1F3D27004F83B3 /* Build configuration list for PBXNativeTarget "JSHDSDKExampleDemo" */; buildPhases = ( 87223C7B1F1F3D27004F83B3 /* Sources */, 87223C7C1F1F3D27004F83B3 /* Frameworks */, 87223C7D1F1F3D27004F83B3 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = JSHDSDKExampleDemo; productName = LLGameSDKExampleDemo; productReference = 87223C7F1F1F3D27004F83B3 /* LLGameSDKExampleDemo.app */; productType = "com.apple.product-type.application"; }; 87223C971F1F3D27004F83B3 /* JSHDSDKExampleDemoTests */ = { isa = PBXNativeTarget; buildConfigurationList = 87223CAF1F1F3D27004F83B3 /* Build configuration list for PBXNativeTarget "JSHDSDKExampleDemoTests" */; buildPhases = ( 87223C941F1F3D27004F83B3 /* Sources */, 87223C951F1F3D27004F83B3 /* Frameworks */, 87223C961F1F3D27004F83B3 /* Resources */, ); buildRules = ( ); dependencies = ( 87223C9A1F1F3D27004F83B3 /* PBXTargetDependency */, ); name = JSHDSDKExampleDemoTests; productName = LLGameSDKExampleDemoTests; productReference = 87223C981F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; 87223CA21F1F3D27004F83B3 /* JSHDSDKExampleDemoUITests */ = { isa = PBXNativeTarget; buildConfigurationList = 87223CB21F1F3D27004F83B3 /* Build configuration list for PBXNativeTarget "JSHDSDKExampleDemoUITests" */; buildPhases = ( 87223C9F1F1F3D27004F83B3 /* Sources */, 87223CA01F1F3D27004F83B3 /* Frameworks */, 87223CA11F1F3D27004F83B3 /* Resources */, ); buildRules = ( ); dependencies = ( 87223CA51F1F3D27004F83B3 /* PBXTargetDependency */, ); name = JSHDSDKExampleDemoUITests; productName = LLGameSDKExampleDemoUITests; productReference = 87223CA31F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 87223C771F1F3D27004F83B3 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0920; ORGANIZATIONNAME = linglei; TargetAttributes = { 87223C7E1F1F3D27004F83B3 = { CreatedOnToolsVersion = 8.3.3; DevelopmentTeam = SZASPR2N8J; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.ApplePay = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 1; }; }; }; 87223C971F1F3D27004F83B3 = { CreatedOnToolsVersion = 8.3.3; ProvisioningStyle = Automatic; TestTargetID = 87223C7E1F1F3D27004F83B3; }; 87223CA21F1F3D27004F83B3 = { CreatedOnToolsVersion = 8.3.3; ProvisioningStyle = Automatic; TestTargetID = 87223C7E1F1F3D27004F83B3; }; }; }; buildConfigurationList = 87223C7A1F1F3D27004F83B3 /* Build configuration list for PBXProject "JSHDSDKExampleDemo" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = 87223C761F1F3D27004F83B3; productRefGroup = 87223C801F1F3D27004F83B3 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 87223C7E1F1F3D27004F83B3 /* JSHDSDKExampleDemo */, 87223C971F1F3D27004F83B3 /* JSHDSDKExampleDemoTests */, 87223CA21F1F3D27004F83B3 /* JSHDSDKExampleDemoUITests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 87223C7D1F1F3D27004F83B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 87223C921F1F3D27004F83B3 /* LaunchScreen.storyboard in Resources */, 87223C8F1F1F3D27004F83B3 /* Assets.xcassets in Resources */, 84419351215CC98E0091BD4C /* XHAuxiliaryResource.bundle in Resources */, 87223C8D1F1F3D27004F83B3 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; 87223C961F1F3D27004F83B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 87223CA11F1F3D27004F83B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 87223C7B1F1F3D27004F83B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 87223C8A1F1F3D27004F83B3 /* ViewController.m in Sources */, 87223C871F1F3D27004F83B3 /* AppDelegate.m in Sources */, 87223C841F1F3D27004F83B3 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 87223C941F1F3D27004F83B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 87223C9D1F1F3D27004F83B3 /* LLGameSDKExampleDemoTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 87223C9F1F1F3D27004F83B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 87223CA81F1F3D27004F83B3 /* LLGameSDKExampleDemoUITests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 87223C9A1F1F3D27004F83B3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 87223C7E1F1F3D27004F83B3 /* JSHDSDKExampleDemo */; targetProxy = 87223C991F1F3D27004F83B3 /* PBXContainerItemProxy */; }; 87223CA51F1F3D27004F83B3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 87223C7E1F1F3D27004F83B3 /* JSHDSDKExampleDemo */; targetProxy = 87223CA41F1F3D27004F83B3 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ 87223C8B1F1F3D27004F83B3 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( 87223C8C1F1F3D27004F83B3 /* Base */, ); name = Main.storyboard; sourceTree = "<group>"; }; 87223C901F1F3D27004F83B3 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( 87223C911F1F3D27004F83B3 /* Base */, ); name = LaunchScreen.storyboard; sourceTree = "<group>"; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 87223CAA1F1F3D27004F83B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 armv7s armv7"; }; name = Debug; }; 87223CAB1F1F3D27004F83B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VALID_ARCHS = "arm64 armv7s armv7"; }; name = Release; }; 87223CAD1F1F3D27004F83B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = SZASPR2N8J; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/SDK"; INFOPLIST_FILE = JSHDSDKExampleDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/SDK", ); MACH_O_TYPE = mh_execute; ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = ( "-Objc", "-force_load", "\"$(SRCROOT)/SDK/libXHAuxiliary.a\"", ); OTHER_LIBTOOLFLAGS = "-Objc"; PRODUCT_BUNDLE_IDENTIFIER = com.thxxg.ios.lm; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; VALID_ARCHS = "arm64 armv7s armv7"; }; name = Debug; }; 87223CAE1F1F3D27004F83B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = SZASPR2N8J; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/SDK"; INFOPLIST_FILE = JSHDSDKExampleDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/SDK", ); MACH_O_TYPE = mh_execute; OTHER_LDFLAGS = ( "-Objc", "-force_load", "\"$(SRCROOT)/SDK/libXHAuxiliary.a\"", ); OTHER_LIBTOOLFLAGS = "-Objc"; PRODUCT_BUNDLE_IDENTIFIER = com.thxxg.ios.lm; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; VALID_ARCHS = "arm64 armv7s armv7"; }; name = Release; }; 87223CB01F1F3D27004F83B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = LLGameSDKExampleDemoTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = linglei.com.LLGameSDKExampleDemoTests; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/JSHDSDKExampleDemo.app/JSHDSDKExampleDemo"; }; name = Debug; }; 87223CB11F1F3D27004F83B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = LLGameSDKExampleDemoTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = linglei.com.LLGameSDKExampleDemoTests; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/JSHDSDKExampleDemo.app/JSHDSDKExampleDemo"; }; name = Release; }; 87223CB31F1F3D27004F83B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = LLGameSDKExampleDemoUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = linglei.com.LLGameSDKExampleDemoUITests; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_TARGET_NAME = LLGameSDKExampleDemo; }; name = Debug; }; 87223CB41F1F3D27004F83B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = LLGameSDKExampleDemoUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = linglei.com.LLGameSDKExampleDemoUITests; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_TARGET_NAME = LLGameSDKExampleDemo; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 87223C7A1F1F3D27004F83B3 /* Build configuration list for PBXProject "JSHDSDKExampleDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( 87223CAA1F1F3D27004F83B3 /* Debug */, 87223CAB1F1F3D27004F83B3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 87223CAC1F1F3D27004F83B3 /* Build configuration list for PBXNativeTarget "JSHDSDKExampleDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( 87223CAD1F1F3D27004F83B3 /* Debug */, 87223CAE1F1F3D27004F83B3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 87223CAF1F1F3D27004F83B3 /* Build configuration list for PBXNativeTarget "JSHDSDKExampleDemoTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 87223CB01F1F3D27004F83B3 /* Debug */, 87223CB11F1F3D27004F83B3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 87223CB21F1F3D27004F83B3 /* Build configuration list for PBXNativeTarget "JSHDSDKExampleDemoUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( 87223CB31F1F3D27004F83B3 /* Debug */, 87223CB41F1F3D27004F83B3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 87223C771F1F3D27004F83B3 /* Project object */; } SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <Workspace version = "1.0"> <FileRef location = "self:/Users/linglei/Desktop/未命名文件夹2/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj"> </FileRef> </Workspace> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/IDEFindNavigatorScopes.plist
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array/> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstateBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/linglei.xcuserdatad/UserInterfaceState.xcuserstateBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
New file @@ -0,0 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <Bucket type = "1" version = "2.0"> <Breakpoints> <BreakpointProxy BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint"> <BreakpointContent shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" scope = "0" stopOnStyle = "0"> </BreakpointContent> </BreakpointProxy> </Breakpoints> </Bucket> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/LLGameSDKExampleDemo.xcscheme
New file @@ -0,0 +1,113 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme LastUpgradeVersion = "0920" version = "1.3"> <BuildAction parallelizeBuildables = "YES" buildImplicitDependencies = "YES"> <BuildActionEntries> <BuildActionEntry buildForTesting = "YES" buildForRunning = "YES" buildForProfiling = "YES" buildForArchiving = "YES" buildForAnalyzing = "YES"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "JSHDSDKExampleDemo.app" BlueprintName = "JSHDSDKExampleDemo" ReferencedContainer = "container:JSHDSDKExampleDemo.xcodeproj"> </BuildableReference> </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" language = "" shouldUseLaunchSchemeArgsEnv = "YES"> <Testables> <TestableReference skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C971F1F3D27004F83B3" BuildableName = "JSHDSDKExampleDemoTests.xctest" BlueprintName = "JSHDSDKExampleDemoTests" ReferencedContainer = "container:JSHDSDKExampleDemo.xcodeproj"> </BuildableReference> </TestableReference> <TestableReference skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223CA21F1F3D27004F83B3" BuildableName = "JSHDSDKExampleDemoUITests.xctest" BlueprintName = "JSHDSDKExampleDemoUITests" ReferencedContainer = "container:JSHDSDKExampleDemo.xcodeproj"> </BuildableReference> </TestableReference> </Testables> <MacroExpansion> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "JSHDSDKExampleDemo.app" BlueprintName = "JSHDSDKExampleDemo" ReferencedContainer = "container:JSHDSDKExampleDemo.xcodeproj"> </BuildableReference> </MacroExpansion> <AdditionalOptions> </AdditionalOptions> </TestAction> <LaunchAction buildConfiguration = "Release" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> <BuildableProductRunnable runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "JSHDSDKExampleDemo.app" BlueprintName = "JSHDSDKExampleDemo" ReferencedContainer = "container:JSHDSDKExampleDemo.xcodeproj"> </BuildableReference> </BuildableProductRunnable> <AdditionalOptions> </AdditionalOptions> </LaunchAction> <ProfileAction buildConfiguration = "Release" shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> <BuildableProductRunnable runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "JSHDSDKExampleDemo.app" BlueprintName = "JSHDSDKExampleDemo" ReferencedContainer = "container:JSHDSDKExampleDemo.xcodeproj"> </BuildableReference> </BuildableProductRunnable> </ProfileAction> <AnalyzeAction buildConfiguration = "Debug"> </AnalyzeAction> <ArchiveAction buildConfiguration = "Release" revealArchiveInOrganizer = "YES"> </ArchiveAction> </Scheme> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>SchemeUserState</key> <dict> <key>LLGameSDKExampleDemo.xcscheme</key> <dict> <key>orderHint</key> <integer>0</integer> </dict> </dict> <key>SuppressBuildableAutocreation</key> <dict> <key>87223C7E1F1F3D27004F83B3</key> <dict> <key>primary</key> <true/> </dict> <key>87223C971F1F3D27004F83B3</key> <dict> <key>primary</key> <true/> </dict> <key>87223CA21F1F3D27004F83B3</key> <dict> <key>primary</key> <true/> </dict> </dict> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/linglei.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
New file @@ -0,0 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <Bucket type = "1" version = "2.0"> <Breakpoints> <BreakpointProxy BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint"> <BreakpointContent shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" scope = "0" stopOnStyle = "0"> </BreakpointContent> </BreakpointProxy> </Breakpoints> </Bucket> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/linglei.xcuserdatad/xcschemes/LLGameSDKExampleDemo.xcscheme
New file @@ -0,0 +1,111 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme LastUpgradeVersion = "0830" version = "1.3"> <BuildAction parallelizeBuildables = "YES" buildImplicitDependencies = "YES"> <BuildActionEntries> <BuildActionEntry buildForTesting = "YES" buildForRunning = "YES" buildForProfiling = "YES" buildForArchiving = "YES" buildForAnalyzing = "YES"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "LLGameSDKExampleDemo.app" BlueprintName = "LLGameSDKExampleDemo" ReferencedContainer = "container:LLGameSDKExampleDemo.xcodeproj"> </BuildableReference> </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> <Testables> <TestableReference skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C971F1F3D27004F83B3" BuildableName = "LLGameSDKExampleDemoTests.xctest" BlueprintName = "LLGameSDKExampleDemoTests" ReferencedContainer = "container:LLGameSDKExampleDemo.xcodeproj"> </BuildableReference> </TestableReference> <TestableReference skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223CA21F1F3D27004F83B3" BuildableName = "LLGameSDKExampleDemoUITests.xctest" BlueprintName = "LLGameSDKExampleDemoUITests" ReferencedContainer = "container:LLGameSDKExampleDemo.xcodeproj"> </BuildableReference> </TestableReference> </Testables> <MacroExpansion> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "LLGameSDKExampleDemo.app" BlueprintName = "LLGameSDKExampleDemo" ReferencedContainer = "container:LLGameSDKExampleDemo.xcodeproj"> </BuildableReference> </MacroExpansion> <AdditionalOptions> </AdditionalOptions> </TestAction> <LaunchAction buildConfiguration = "Release" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> <BuildableProductRunnable runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "LLGameSDKExampleDemo.app" BlueprintName = "LLGameSDKExampleDemo" ReferencedContainer = "container:LLGameSDKExampleDemo.xcodeproj"> </BuildableReference> </BuildableProductRunnable> <AdditionalOptions> </AdditionalOptions> </LaunchAction> <ProfileAction buildConfiguration = "Release" shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> <BuildableProductRunnable runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "87223C7E1F1F3D27004F83B3" BuildableName = "LLGameSDKExampleDemo.app" BlueprintName = "LLGameSDKExampleDemo" ReferencedContainer = "container:LLGameSDKExampleDemo.xcodeproj"> </BuildableReference> </BuildableProductRunnable> </ProfileAction> <AnalyzeAction buildConfiguration = "Debug"> </AnalyzeAction> <ArchiveAction buildConfiguration = "Release" revealArchiveInOrganizer = "YES"> </ArchiveAction> </Scheme> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/linglei.xcuserdatad/xcschemes/xcschememanagement.plist
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>SchemeUserState</key> <dict> <key>LLGameSDKExampleDemo.xcscheme</key> <dict> <key>orderHint</key> <integer>0</integer> </dict> </dict> <key>SuppressBuildableAutocreation</key> <dict> <key>87223C7E1F1F3D27004F83B3</key> <dict> <key>primary</key> <true/> </dict> <key>87223C971F1F3D27004F83B3</key> <dict> <key>primary</key> <true/> </dict> <key>87223CA21F1F3D27004F83B3</key> <dict> <key>primary</key> <true/> </dict> </dict> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/AppDelegate.h
New file @@ -0,0 +1,17 @@ // // AppDelegate.h // LLGameSDKExampleDemo // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/AppDelegate.m
New file @@ -0,0 +1,102 @@ // // AppDelegate.m // XHAuxiliarySDKExampleDemo // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import "AppDelegate.h" #import "XHAuxiliarySDK.h" #import "XHAuxiliaryHeader.h" #import "XHAuxiliaryUserAccount.h" @interface AppDelegate ()<XHAuxiliaryDelegate> @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. /* åå§åSDK */ [XHAuxiliarySDK setDelegate:self]; [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliarySDKInitWithCompletion:^(XHAuxiliaryInitErrorCode result) { if (result == XHAuxiliaryInitErrorCodeNone) { // åå§åSDKæå }else if (result == XHAuxiliaryInitErrorCodeConig){ // é ç½®ä¿¡æ¯æè¯¯ }else if(result == XHAuxiliaryInitErrorCodeNet){ // ç½ç»é误 }else{ // æ¸¸ææ´æ°ä¸ } }]; return YES; } - (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount *)model{ if(result == XHAuxiliary_SUCCESS){ NSLog(@"token = %@, uid = %@",model.accountToken,model.accountUid); } } - (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data{ if (result == XHAuxiliary_SUCCESS) { NSLog(@"æå%@",data); }else{ NSLog(@"é误"); } } - (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data{ if (result == XHAuxiliary_SUCCESS) { NSLog(@"æå %@",data); }else if (result == XHAuxiliary_CANCEL){ NSLog(@"ç¨æ·åæ¶ %@",data); }else if (result == XHAuxiliary_UNKNOW){ NSLog(@"é误 %@",data); } } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{ return YES; } @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon50x50@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon50x50~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon72x72@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon72x72~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
New file @@ -0,0 +1,158 @@ { "images" : [ { "size" : "20x20", "idiom" : "iphone", "filename" : "AppIcon20x20@2x.png", "scale" : "2x" }, { "size" : "20x20", "idiom" : "iphone", "filename" : "AppIcon20x20@3x.png", "scale" : "3x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "AppIcon29x29.png", "scale" : "1x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "AppIcon29x29@2x.png", "scale" : "2x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "AppIcon29x29@3x.png", "scale" : "3x" }, { "size" : "40x40", "idiom" : "iphone", "filename" : "AppIcon40x40@2x.png", "scale" : "2x" }, { "size" : "40x40", "idiom" : "iphone", "filename" : "AppIcon40x40@3x.png", "scale" : "3x" }, { "size" : "57x57", "idiom" : "iphone", "filename" : "AppIcon57x57.png", "scale" : "1x" }, { "size" : "57x57", "idiom" : "iphone", "filename" : "AppIcon57x57@2x.png", "scale" : "2x" }, { "size" : "60x60", "idiom" : "iphone", "filename" : "AppIcon60x60@2x.png", "scale" : "2x" }, { "size" : "60x60", "idiom" : "iphone", "filename" : "AppIcon60x60@3x.png", "scale" : "3x" }, { "size" : "20x20", "idiom" : "ipad", "filename" : "AppIcon20x20~ipad.png", "scale" : "1x" }, { "size" : "20x20", "idiom" : "ipad", "filename" : "AppIcon20x20@2x~ipad.png", "scale" : "2x" }, { "size" : "29x29", "idiom" : "ipad", "filename" : "AppIcon29x29~ipad.png", "scale" : "1x" }, { "size" : "29x29", "idiom" : "ipad", "filename" : "AppIcon29x29@2x~ipad.png", "scale" : "2x" }, { "size" : "40x40", "idiom" : "ipad", "filename" : "AppIcon40x40~ipad.png", "scale" : "1x" }, { "size" : "40x40", "idiom" : "ipad", "filename" : "AppIcon40x40@2x~ipad.png", "scale" : "2x" }, { "size" : "50x50", "idiom" : "ipad", "filename" : "AppIcon50x50~ipad.png", "scale" : "1x" }, { "size" : "50x50", "idiom" : "ipad", "filename" : "AppIcon50x50@2x~ipad.png", "scale" : "2x" }, { "size" : "72x72", "idiom" : "ipad", "filename" : "AppIcon72x72~ipad.png", "scale" : "1x" }, { "size" : "72x72", "idiom" : "ipad", "filename" : "AppIcon72x72@2x~ipad.png", "scale" : "2x" }, { "size" : "76x76", "idiom" : "ipad", "filename" : "AppIcon76x76~ipad.png", "scale" : "1x" }, { "size" : "76x76", "idiom" : "ipad", "filename" : "AppIcon76x76@2x~ipad.png", "scale" : "2x" }, { "size" : "83.5x83.5", "idiom" : "ipad", "filename" : "AppIcon83.5x83.5@2x~ipad.png", "scale" : "2x" }, { "size" : "1024x1024", "idiom" : "ios-marketing", "filename" : "QQå¾ç20171229102337.png", "scale" : "1x" } ], "info" : { "version" : 1, "author" : "xcode" } } SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/QQͼƬ20171229102337.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/Contents.json
New file @@ -0,0 +1,6 @@ { "info" : { "version" : 1, "author" : "xcode" } } SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Base.lproj/LaunchScreen.storyboard
New file @@ -0,0 +1,27 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11134" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> <dependencies> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11106"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <scenes> <!--View Controller--> <scene sceneID="EHf-IW-A2E"> <objects> <viewController id="01J-lp-oVM" sceneMemberID="viewController"> <layoutGuides> <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/> <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </view> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> <point key="canvasLocation" x="53" y="375"/> </scene> </scenes> </document> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Base.lproj/Main.storyboard
New file @@ -0,0 +1,73 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> <device id="retina4_7" orientation="portrait"> <adaptation id="fullscreen"/> </device> <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> <capability name="Constraints to layout margins" minToolsVersion="6.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <scenes> <!--View Controller--> <scene sceneID="tne-QT-ifu"> <objects> <viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController"> <layoutGuides> <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jht-GP-Vt0"> <rect key="frame" x="41" y="208" width="293" height="66"/> <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> <constraints> <constraint firstAttribute="height" constant="66" id="NKg-cW-3EK"/> </constraints> <state key="normal" title="è°èµ·SDKç»å½çé¢"/> <connections> <action selector="loginAction:" destination="BYZ-38-t0r" eventType="touchUpInside" id="bOp-dd-JfP"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f3w-rR-dW9"> <rect key="frame" x="41" y="300" width="293" height="66"/> <color key="backgroundColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/> <constraints> <constraint firstAttribute="height" constant="66" id="tSd-X6-5Mn"/> </constraints> <state key="normal" title="注é"/> <connections> <action selector="logout:" destination="BYZ-38-t0r" eventType="touchUpInside" id="fh4-9Q-tBI"/> </connections> </button> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7DK-0G-zrX"> <rect key="frame" x="41" y="402" width="293" height="66"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <color key="backgroundColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/> <state key="normal" title="注é"/> <connections> <action selector="pay:" destination="BYZ-38-t0r" eventType="touchUpInside" id="iv0-Ze-mCc"/> </connections> </button> </subviews> <color key="backgroundColor" red="0.43061410211811757" green="0.58145084293041027" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="jht-GP-Vt0" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="topMargin" constant="188" id="0uM-NL-c8I"/> <constraint firstAttribute="trailingMargin" secondItem="jht-GP-Vt0" secondAttribute="trailing" constant="25" id="G0g-XE-mpE"/> <constraint firstAttribute="trailingMargin" secondItem="f3w-rR-dW9" secondAttribute="trailing" constant="25" id="Gbq-uh-Sbq"/> <constraint firstItem="f3w-rR-dW9" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="25" id="HXy-GF-B8o"/> <constraint firstItem="jht-GP-Vt0" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="25" id="UDh-l1-wBP"/> <constraint firstItem="f3w-rR-dW9" firstAttribute="top" secondItem="jht-GP-Vt0" secondAttribute="bottom" constant="26" id="x5w-FX-Cc0"/> </constraints> </view> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> </objects> <point key="canvasLocation" x="88.799999999999997" y="103.89805097451276"/> </scene> </scenes> </document> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Info.plist
New file @@ -0,0 +1,68 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>$(PRODUCT_NAME)</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string></string> <key>CFBundleURLSchemes</key> <array/> </dict> <dict/> </array> <key>CFBundleVersion</key> <string>1</string> <key>LSApplicationCategoryType</key> <string></string> <key>LSRequiresIPhoneOS</key> <true/> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> <key>UIBackgroundModes</key> <array> <string>bluetooth-central</string> </array> <key>UILaunchStoryboardName</key> <string>LaunchScreen</string> <key>UIMainStoryboardFile</key> <string>Main</string> <key>UIRequiredDeviceCapabilities</key> <array> <string>armv7</string> </array> <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationPortrait</string> </array> <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/LLGameSDKExampleDemo.entitlements
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict/> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/ViewController.h
New file @@ -0,0 +1,15 @@ // // ViewController.h // LLGameSDKExampleDemo // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/ViewController.m
New file @@ -0,0 +1,101 @@ // // ViewController.m // XHAuxiliarySDKExampleDemo // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import "ViewController.h" #import "XHAuxiliarySDK.h" @interface ViewController (){ BOOL isSDKInit; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (IBAction)loginAction:(id)sender { int i = [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliaryLoginInView:self.view]; if (i == 0) { /* æå */ }else{ [self creatAlertVCForTitle:@"æç¤º" message:@"å°æªåå§åSDK" btnTitle:@"好ç" handler:nil]; } } - (IBAction)pay:(id)sender { [[XHAuxiliarySDK defaultXHAuxiliary] tool:[self timerStamp] andWithLLItemID:@"com.thxxg.yx.198" andWithLLItemP:1 andWithLLReserved:@"çå" andWithLLDesc:@"æ¯é¾å"]; } - (IBAction)pay2:(id)sender { NSMutableDictionary * dict = [NSMutableDictionary dictionary]; [dict setObject:[self timerStamp] forKey:@"user"]; [dict setObject:@"1" forKey:@"amount"]; [dict setObject:@"æ¯é¾å" forKey:@"desc"]; [dict setObject:@"çå" forKey:@"userInfo"]; [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliaryUserInfo:dict]; } - (NSString *)timerStamp{ NSDate *sendDate = [NSDate date]; NSString * timerStamp = [NSString stringWithFormat:@"%f",[sendDate timeIntervalSince1970]]; return timerStamp; } - (IBAction)logout:(id)sender { if ([XHAuxiliarySDK defaultXHAuxiliary].isLogined == YES) { [[XHAuxiliarySDK defaultXHAuxiliary] LLLogout]; [self creatAlertVCForTitle:@"æç¤º" message:@"注éæå" btnTitle:@"好ç" handler:nil]; }else{ [self creatAlertVCForTitle:@"æç¤º" message:@"å°æªç»å½ï¼æ³¨é失败" btnTitle:@"好ç" handler:nil]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES]; } - (void)creatAlertVCForTitle:(NSString *)title message:(NSString *)message btnTitle:(NSString *)btnTitle handler:(void (^ __nullable)(UIAlertAction *action))handler{ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"åæ¶" style:UIAlertActionStyleDefault handler:nil]; [alertController addAction:cancelAction]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:btnTitle style:UIAlertActionStyleDefault handler:handler]; [alertController addAction:okAction]; [self presentViewController:alertController animated:YES completion:nil]; } @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/main.m
New file @@ -0,0 +1,17 @@ // // main.m // LLGameSDKExampleDemo // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoTests/Info.plist
New file @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>$(PRODUCT_NAME)</string> <key>CFBundlePackageType</key> <string>BNDL</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>CFBundleVersion</key> <string>1</string> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoTests/LLGameSDKExampleDemoTests.m
New file @@ -0,0 +1,39 @@ // // LLGameSDKExampleDemoTests.m // LLGameSDKExampleDemoTests // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import <XCTest/XCTest.h> @interface LLGameSDKExampleDemoTests : XCTestCase @end @implementation LLGameSDKExampleDemoTests - (void)setUp { [super setUp]; // Put setup code here. This method is called before the invocation of each test method in the class. } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. [super tearDown]; } - (void)testExample { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. } - (void)testPerformanceExample { // This is an example of a performance test case. [self measureBlock:^{ // Put the code you want to measure the time of here. }]; } @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoUITests/Info.plist
New file @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>$(PRODUCT_NAME)</string> <key>CFBundlePackageType</key> <string>BNDL</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>CFBundleVersion</key> <string>1</string> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoUITests/LLGameSDKExampleDemoUITests.m
New file @@ -0,0 +1,40 @@ // // LLGameSDKExampleDemoUITests.m // LLGameSDKExampleDemoUITests // // Created by linglei on 2017/7/19. // Copyright © 2017å¹´ linglei. All rights reserved. // #import <XCTest/XCTest.h> @interface LLGameSDKExampleDemoUITests : XCTestCase @end @implementation LLGameSDKExampleDemoUITests - (void)setUp { [super setUp]; // Put setup code here. This method is called before the invocation of each test method in the class. // In UI tests it is usually best to stop immediately when a failure occurs. self.continueAfterFailure = NO; // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. [[[XCUIApplication alloc] init] launch]; // In UI tests itâs important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. [super tearDown]; } - (void)testExample { // Use recording to get started writing UI tests. // Use XCTAssert and related functions to verify your tests produce the correct results. } @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/Root.plist
New file @@ -0,0 +1,61 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>StringsTable</key> <string>Root</string> <key>PreferenceSpecifiers</key> <array> <dict> <key>Type</key> <string>PSGroupSpecifier</string> <key>Title</key> <string>Group</string> </dict> <dict> <key>Type</key> <string>PSTextFieldSpecifier</string> <key>Title</key> <string>Name</string> <key>Key</key> <string>name_preference</string> <key>DefaultValue</key> <string></string> <key>IsSecure</key> <false/> <key>KeyboardType</key> <string>Alphabet</string> <key>AutocapitalizationType</key> <string>None</string> <key>AutocorrectionType</key> <string>No</string> </dict> <dict> <key>Type</key> <string>PSToggleSwitchSpecifier</string> <key>Title</key> <string>Enabled</string> <key>Key</key> <string>enabled_preference</string> <key>DefaultValue</key> <true/> </dict> <dict> <key>Type</key> <string>PSSliderSpecifier</string> <key>Key</key> <string>slider_preference</string> <key>DefaultValue</key> <real>0.5</real> <key>MinimumValue</key> <integer>0</integer> <key>MaximumValue</key> <integer>1</integer> <key>MinimumValueImage</key> <string></string> <key>MaximumValueImage</key> <string></string> </dict> </array> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliaryConfig.plist
New file @@ -0,0 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>APPID</key> <string>1071</string> <key>SID</key> <string>59</string> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Back_Icon.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Close_Icon.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_NormalBtn_icon@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_seletedBtn_icon@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/en.lproj/Root.stringsBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/userIcon.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/include/XHAuxiliary/XHAuxiliaryHeader.h
New file @@ -0,0 +1,48 @@ // // XHAuxiliaryHeader.h // XHAuxiliarySDK // // Created by lllll-xy on 18/3/28. // Copyright © 2018å¹´ lllll-xy. All rights reserved. // #ifndef XHAuxiliaryHeader_h #define XHAuxiliaryHeader_h @class XHAuxiliaryUserAccount; typedef NS_ENUM(NSUInteger, XHAuxiliaryToolStatus) { AMGEL_FAIL = 0, XHAuxiliary_SUCCESS, XHAuxiliary_CANCEL, XHAuxiliary_UNKNOW, }; @protocol XHAuxiliaryDelegate <NSObject> @optional /* @brief SDKç»å½åè°äºä»¶ @param result ç»å½ç»æ @param model ç»å½æåä¿¡æ¯æè å¤±è´¥ä¿¡æ¯ */ - (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount *)model; /* @brief è¹ææ¯ä»åè°äºä»¶ @param result æ¯ä»ç¶æ @param model æ¯ä»è¿åçä¿¡æ¯ NSStringä¿¡æ¯ å¦ææ¥é乿¯èå´NSStringä¿¡æ¯ */ - (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data; /* @brief 注åå·¥å ·è¿åä¿¡æ¯ @param result å½åç¶æ @param model è¿åç»æNsstring æå为nil */ - (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data; @end #endif /* XHAuxiliaryHeader_h */ SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/include/XHAuxiliary/XHAuxiliarySDK.h
New file @@ -0,0 +1,71 @@ // // XHAuxiliarySDK.h // XHAuxiliarySDK // // Created by lllll-xy on 18/1/30. // Copyright © 2018å¹´ lllll-xy. All rights reserved. // #import <Foundation/Foundation.h> #import "XHAuxiliaryHeader.h" typedef enum { XHAuxiliaryInitErrorCodeNone = 0, //åå§åæå XHAuxiliaryInitErrorCodeNet = 1, //ç½ç»å¼å¸¸ XHAuxiliaryInitErrorCodeConig = 2, //appidé ç½®é误 XHAuxiliaryInitErrorCodeUpdating = 3 //æ¸¸ææ´æ°ä¸ }XHAuxiliaryInitErrorCode; typedef enum { XHAuxiliarySuccess = 0, //æå XHAuxiliaryFail = 1, //失败 }XHAuxiliaryStatus; typedef void (^XHAuxiliaryInitErrorCodeBlock)(XHAuxiliaryInitErrorCode result); typedef void (^XHAuxiliaryStatusBlock)(XHAuxiliaryStatus result); @interface XHAuxiliarySDK : NSObject @property (strong,nonatomic,readonly)NSString *APPID; + (XHAuxiliarySDK *)defaultXHAuxiliary; /* @brief SDKåè°äºä»¶è®¾ç½®æ¥å£ @param delegate åè°æ¶é´çè§å¯è ,建议使ç¨å ¨å±åéä½ä¸ºåæ° */ + (void)setDelegate:(id<XHAuxiliaryDelegate>)delegate; /* @brief SDKåºç¨åå§å彿°,弿¥å½æ°ï¼result 0表示æåï¼1表示ç½ç»å¼å¸¸ï¼2表示appidãsecreté误 @param appid ç³è¯·çAPPID */ - (void)XHAuxiliarySDKInitWithCompletion:(XHAuxiliaryInitErrorCodeBlock)completion; - (void)XHAuxiliaryUploadLoacationWithLatitude:(NSString*)latitude longitude:(NSString*)longitude Completion:(XHAuxiliaryStatusBlock)completion; - (void)tool:(NSString *)LLSerialNumber andWithLLItemID:(NSString *)LLItemID andWithLLItemP:(NSInteger)LLItemP andWithLLReserved:(NSString *)LLReserved andWithLLDesc:(NSString *)LLDesc; - (void)XHAuxiliaryUserInfo:(NSDictionary *)info; /* @breif è°ç¨ç»å½, ç»å½ç»æä¼ä»¥éç¥å½¢å¼è¿åï¼è¥ç»å½æåï¼å°èªå¨éåºç»å½é¡µé¢ @param view å½åview å¯å¡«nil @return è¿å00è¿å ¥sdkç»å½çé¢ï¼ é0表示sdkç»å½ç¯å¢å¼å¸¸ */ - (int)XHAuxiliaryLoginInView:(UIView *)view; /* @brief 夿æ¯å¦å·²ç»å½å¹¶ä¸ææ */ - (BOOL)isLogined; /* @brief 注éï¼åæ¥æ¹æ³ */ - (void)LLLogout; @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/include/XHAuxiliary/XHAuxiliaryUserAccount.h
New file @@ -0,0 +1,19 @@ // // XHAuxiliaryUserAccount.h // XHAuxiliarySDK // // Created by lllll-xy on 18/4/4. // Copyright © 2018å¹´ lllll-xy. All rights reserved. // #import <Foundation/Foundation.h> @interface XHAuxiliaryUserAccount : NSObject @property (nonatomic,copy) NSString *accountToken; @property (nonatomic,copy) NSString *accountUid; @property (nonatomic,copy) NSString *errorMsg; @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/libXHAuxiliary.aBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/.DS_StoreBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/Root.plist
New file @@ -0,0 +1,61 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>StringsTable</key> <string>Root</string> <key>PreferenceSpecifiers</key> <array> <dict> <key>Type</key> <string>PSGroupSpecifier</string> <key>Title</key> <string>Group</string> </dict> <dict> <key>Type</key> <string>PSTextFieldSpecifier</string> <key>Title</key> <string>Name</string> <key>Key</key> <string>name_preference</string> <key>DefaultValue</key> <string></string> <key>IsSecure</key> <false/> <key>KeyboardType</key> <string>Alphabet</string> <key>AutocapitalizationType</key> <string>None</string> <key>AutocorrectionType</key> <string>No</string> </dict> <dict> <key>Type</key> <string>PSToggleSwitchSpecifier</string> <key>Title</key> <string>Enabled</string> <key>Key</key> <string>enabled_preference</string> <key>DefaultValue</key> <true/> </dict> <dict> <key>Type</key> <string>PSSliderSpecifier</string> <key>Key</key> <string>slider_preference</string> <key>DefaultValue</key> <real>0.5</real> <key>MinimumValue</key> <integer>0</integer> <key>MaximumValue</key> <integer>1</integer> <key>MinimumValueImage</key> <string></string> <key>MaximumValueImage</key> <string></string> </dict> </array> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliaryConfig.plist
New file @@ -0,0 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>APPID</key> <string>1059</string> <key>SID</key> <string>59</string> </dict> </plist> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Back_Icon.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Close_Icon.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_NormalBtn_icon@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_seletedBtn_icon@2x.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/en.lproj/Root.stringsBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/userIcon.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/include/XHAuxiliary/XHAuxiliaryHeader.h
New file @@ -0,0 +1,48 @@ // // XHAuxiliaryHeader.h // XHAuxiliarySDK // // Created by lllll-xy on 18/3/28. // Copyright © 2018å¹´ lllll-xy. All rights reserved. // #ifndef XHAuxiliaryHeader_h #define XHAuxiliaryHeader_h @class XHAuxiliaryUserAccount; typedef NS_ENUM(NSUInteger, XHAuxiliaryToolStatus) { AMGEL_FAIL = 0, XHAuxiliary_SUCCESS, XHAuxiliary_CANCEL, XHAuxiliary_UNKNOW, }; @protocol XHAuxiliaryDelegate <NSObject> @optional /* @brief SDKç»å½åè°äºä»¶ @param result ç»å½ç»æ @param model ç»å½æåä¿¡æ¯æè å¤±è´¥ä¿¡æ¯ */ - (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount *)model; /* @brief è¹ææ¯ä»åè°äºä»¶ @param result æ¯ä»ç¶æ @param model æ¯ä»è¿åçä¿¡æ¯ NSStringä¿¡æ¯ å¦ææ¥é乿¯èå´NSStringä¿¡æ¯ */ - (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data; /* @brief 注åå·¥å ·è¿åä¿¡æ¯ @param result å½åç¶æ @param model è¿åç»æNsstring æå为nil */ - (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data; @end #endif /* XHAuxiliaryHeader_h */ SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/include/XHAuxiliary/XHAuxiliarySDK.h
New file @@ -0,0 +1,71 @@ // // XHAuxiliarySDK.h // XHAuxiliarySDK // // Created by lllll-xy on 18/1/30. // Copyright © 2018å¹´ lllll-xy. All rights reserved. // #import <Foundation/Foundation.h> #import "XHAuxiliaryHeader.h" typedef enum { XHAuxiliaryInitErrorCodeNone = 0, //åå§åæå XHAuxiliaryInitErrorCodeNet = 1, //ç½ç»å¼å¸¸ XHAuxiliaryInitErrorCodeConig = 2, //appidé ç½®é误 XHAuxiliaryInitErrorCodeUpdating = 3 //æ¸¸ææ´æ°ä¸ }XHAuxiliaryInitErrorCode; typedef enum { XHAuxiliarySuccess = 0, //æå XHAuxiliaryFail = 1, //失败 }XHAuxiliaryStatus; typedef void (^XHAuxiliaryInitErrorCodeBlock)(XHAuxiliaryInitErrorCode result); typedef void (^XHAuxiliaryStatusBlock)(XHAuxiliaryStatus result); @interface XHAuxiliarySDK : NSObject @property (strong,nonatomic,readonly)NSString *APPID; + (XHAuxiliarySDK *)defaultXHAuxiliary; /* @brief SDKåè°äºä»¶è®¾ç½®æ¥å£ @param delegate åè°æ¶é´çè§å¯è ,建议使ç¨å ¨å±åéä½ä¸ºåæ° */ + (void)setDelegate:(id<XHAuxiliaryDelegate>)delegate; /* @brief SDKåºç¨åå§å彿°,弿¥å½æ°ï¼result 0表示æåï¼1表示ç½ç»å¼å¸¸ï¼2表示appidãsecreté误 @param appid ç³è¯·çAPPID */ - (void)XHAuxiliarySDKInitWithCompletion:(XHAuxiliaryInitErrorCodeBlock)completion; - (void)XHAuxiliaryUploadLoacationWithLatitude:(NSString*)latitude longitude:(NSString*)longitude Completion:(XHAuxiliaryStatusBlock)completion; - (void)tool:(NSString *)LLSerialNumber andWithLLItemID:(NSString *)LLItemID andWithLLItemP:(NSInteger)LLItemP andWithLLReserved:(NSString *)LLReserved andWithLLDesc:(NSString *)LLDesc; - (void)XHAuxiliaryUserInfo:(NSDictionary *)info; /* @breif è°ç¨ç»å½, ç»å½ç»æä¼ä»¥éç¥å½¢å¼è¿åï¼è¥ç»å½æåï¼å°èªå¨éåºç»å½é¡µé¢ @param view å½åview å¯å¡«nil @return è¿å00è¿å ¥sdkç»å½çé¢ï¼ é0表示sdkç»å½ç¯å¢å¼å¸¸ */ - (int)XHAuxiliaryLoginInView:(UIView *)view; /* @brief 夿æ¯å¦å·²ç»å½å¹¶ä¸ææ */ - (BOOL)isLogined; /* @brief 注éï¼åæ¥æ¹æ³ */ - (void)LLLogout; @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/include/XHAuxiliary/XHAuxiliaryUserAccount.h
New file @@ -0,0 +1,19 @@ // // XHAuxiliaryUserAccount.h // XHAuxiliarySDK // // Created by lllll-xy on 18/4/4. // Copyright © 2018å¹´ lllll-xy. All rights reserved. // #import <Foundation/Foundation.h> @interface XHAuxiliaryUserAccount : NSObject @property (nonatomic,copy) NSString *accountToken; @property (nonatomic,copy) NSString *accountUid; @property (nonatomic,copy) NSString *errorMsg; @end SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/libXHAuxiliary.aBinary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15000291634650/15002630668378.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15218645611599/15218647411887.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15247325130602.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15247325476416.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15247325693214.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15247326179674.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15247342904434.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15294041489281.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/1538040599429.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/1538040658861.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/1538040749589.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/15380417827399.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/1538043389688.jpg
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/media/15247324793229/D896D96D6B5E7D782240A27329296F75.png
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/ÁíÀà SDK ½ÓÈëÎĵµ £¨iOS£©.html
New file @@ -0,0 +1,660 @@ <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style> html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline} html{line-height:1} ol,ul{list-style:none} table{border-collapse:collapse;border-spacing:0; margin-top: 0; margin-bottom: 0.8em; } caption,th,td{text-align:left;font-weight:normal;vertical-align:middle} q,blockquote{quotes:none} q:before,q:after,blockquote:before,blockquote:after{content:"";content:none} a img{border:none} article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block} a{color:#1863a1} a:visited{color:#751590} a:focus{color:#0181eb} a:hover{color:#0181eb} a:active{color:#01579f} aside.sidebar a{color:#222} aside.sidebar a:focus{color:#0181eb} aside.sidebar a:hover{color:#0181eb} aside.sidebar a:active{color:#01579f} a{-webkit-transition:color 0.3s;-moz-transition:color 0.3s;-o-transition:color 0.3s;transition:color 0.3s} body,h1,h2,h3,h4,h5,h6,footer{font-family:"PT Sans","Helvetica Neue","Optima","Hiragino Sans GB",sans-serif} body{line-height:1.5em;color:#222 -webkit-text-size-adjust:none; min-width: 200px; max-width: 760px; margin: 0 auto; padding: 1em;} pre,code,tt,p code,li code{font-family:Menlo,Monaco,"Andale Mono","lucida console","Courier New",monospace} h1{font-size:2.2em;line-height:1.2em} h1,h2,h3,h4,h5,h6{text-rendering:optimizelegibility;margin-bottom:1em;font-weight:bold} h2,section h1{font-size:1.5em} h3,section h2,section section h1{font-size:1.3em} h4,section h3,section section h2,section section section h1{font-size:1em} h5,section h4,section section h3{font-size:.9em} h6,section h5,section section h4,section section section h3{font-size:.8em} .markdown-body{padding: 0px 4px;} .markdown-body h1{position:relative;padding-top:1em;padding-bottom:0.2em;margin-bottom:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAABCAYAAACsXeyTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAFUlEQVQIHWNIS0sr/v//PwMMDzY+ADqMahlW4J91AAAAAElFTkSuQmCC') bottom left repeat-x} .markdown-body h1 a{text-decoration:none} .markdown-body h1 a:hover{text-decoration:underline} .markdown-body h2{padding-top:0.8em;padding-bottom:0.2em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAABCAYAAACsXeyTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAFUlEQVQIHWNIS0sr/v//PwMMDzY+ADqMahlW4J91AAAAAElFTkSuQmCC') bottom left repeat-x} .markdown-body h2:first-child,.markdown-body header+h2{padding-top:0} .markdown-body h2:first-child,.markdown-body header+h2{background:none} p,.markdown-body blockquote,ul,ol{margin-bottom:0.8em; margin-top:0.8em;} ul{list-style-type:disc} ul ul{list-style-type:circle;margin-bottom:0px} ul ul ul{list-style-type:square;margin-bottom:0px} ol{list-style-type:decimal} ol ol{list-style-type:lower-alpha;margin-bottom:0px} ol ol ol{list-style-type:lower-roman;margin-bottom:0px} ul,ul ul,ul ol,ol,ol ul,ol ol{margin-left:1.3em} ul ul,ul ol,ol ul,ol ol{margin-bottom:0em} strong{font-weight:bold} em{font-style:italic} sup,sub{font-size:0.75em;position:relative;display:inline-block;padding:0 .2em;line-height:.8em} sup{top:-.5em} sub{bottom:-.5em} a[rev='footnote']{font-size:.75em;padding:0 .3em;line-height:1} q{font-style:italic} q:before{content:"\201C"} q:after{content:"\201D"} em,dfn{font-style:italic} strong,dfn{font-weight:bold} del,s{text-decoration:line-through} abbr,acronym{border-bottom:1px dotted;cursor:help} small{font-size:.8em} big{font-size:1.2em} .markdown-body hr { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #ddd; } .markdown-body hr:before { display: table; content: ""; } .markdown-body hr:after { display: table; clear: both; content: ""; } .markdown-body table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; } .markdown-body table th { font-weight: bold; } .markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #ddd; } .markdown-body table tr { background-color: #fff; border-top: 1px solid #ccc; } .markdown-body table tr:nth-child(2n) { background-color: #f8f8f8; } .markdown-body blockquote{font-style:italic;position:relative;font-size:1.2em;line-height:1.5em;padding-left:1em;border-left:4px solid rgba(170,170,170,0.5)} .markdown-body blockquote cite{font-style:italic} .markdown-body blockquote cite a{color:#aaa !important;word-wrap:break-word} .markdown-body blockquote cite:before{content:'\2014';padding-right:.3em;padding-left:.3em;color:#aaa} .markdown-body a{white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word} body>header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdown-body>div,.markdown-body>article{width:100%} aside.sidebar{float:none;padding:0 18px 1px;background-color:#f7f7f7;border-top:1px solid #e0e0e0} .flex-content,article img,article video,article .flash-video,aside.sidebar img{max-width:100%;height:auto} .basic-alignment.left,article img.left,article video.left,article .left.flash-video,aside.sidebar img.left{float:left;margin-right:1.5em} .basic-alignment.right,article img.right,article video.right,article .right.flash-video,aside.sidebar img.right{float:right;margin-left:1.5em} .basic-alignment.center,article img.center,article video.center,article .center.flash-video,aside.sidebar img.center{display:block;margin:0 auto 1.5em} .basic-alignment.left,article img.left,article video.left,article .left.flash-video,aside.sidebar img.left,.basic-alignment.right,article img.right,article video.right,article .right.flash-video,aside.sidebar img.right{margin-bottom:.8em} .toggle-sidebar,.no-sidebar .toggle-sidebar{display:none} .markdown-body img,.markdown-body video,.markdown-body .flash-video{ -webkit-border-radius:0.3em;-moz-border-radius:0.3em;-ms-border-radius:0.3em;-o-border-radius:0.3em;border-radius:0.3em;-webkit-box-shadow:rgba(0,0,0,0.15) 0 1px 4px;-moz-box-shadow:rgba(0,0,0,0.15) 0 1px 4px;box-shadow:rgba(0,0,0,0.15) 0 1px 4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:#fff 0.5em solid;} .markdown-body img,.markdown-body video{max-width: 100%;} .markdown-body video,.markdown-body .flash-video{margin:0 auto 1.5em} .markdown-body video{display:block;width:100%} .markdown-body .flash-video>div{position:relative;display:block;padding-bottom:56.25%;padding-top:1px;height:0;overflow:hidden} .markdown-body .flash-video>div iframe,.markdown-body .flash-video>div object,.markdown-body .flash-video>div embed{position:absolute;top:0;left:0;width:100%;height:100%} .markdown-body>footer{padding-bottom:2.5em;margin-top:2em} .markdown-body>footer p.meta{margin-bottom:.8em;font-size:.85em;clear:both;overflow:hidden} body,pre{ background:#fdf6e3 url('data:image/png;base64,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') top left;} body{ background-color: #f8f8f8;} pre{-webkit-border-radius:0.4em;-moz-border-radius:0.4em;-ms-border-radius:0.4em;-o-border-radius:0.4em;border-radius:0.4em;border:1px solid #e7dec3;line-height:1.45em;font-size:13px;margin-bottom:2.1em;padding:.8em 1em;color:#586e75;overflow:auto} .markdown-body code{background: none;} h3.filename+pre{-moz-border-radius-topleft:0px;-webkit-border-top-left-radius:0px;border-top-left-radius:0px;-moz-border-radius-topright:0px;-webkit-border-top-right-radius:0px;border-top-right-radius:0px} p code,li code{display:inline-block;white-space:no-wrap;background:#fff;font-size:.8em;line-height:1.5em;color:#555;border:1px solid #ddd;-webkit-border-radius:0.4em;-moz-border-radius:0.4em;-ms-border-radius:0.4em;-o-border-radius:0.4em;border-radius:0.4em;padding:0 .3em;margin:-1px 0} p pre code,li pre code{font-size:1em !important;background:none;border:none} /* Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com> */ .hljs { display: block; overflow-x: auto; padding: 0.5em; background: #fdf6e3; color: #657b83; -webkit-text-size-adjust: none; } .hljs-comment, .diff .hljs-header, .hljs-doctype, .hljs-pi, .lisp .hljs-string { color: #93a1a1; } /* Solarized Green */ .hljs-keyword, .hljs-winutils, .method, .hljs-addition, .css .hljs-tag, .hljs-request, .hljs-status, .nginx .hljs-title { color: #859900; } /* Solarized Cyan */ .hljs-number, .hljs-command, .hljs-string, .hljs-tag .hljs-value, .hljs-rule .hljs-value, .hljs-doctag, .tex .hljs-formula, .hljs-regexp, .hljs-hexcolor, .hljs-link_url { color: #2aa198; } /* Solarized Blue */ .hljs-title, .hljs-localvars, .hljs-chunk, .hljs-decorator, .hljs-built_in, .hljs-identifier, .vhdl .hljs-literal, .hljs-id, .css .hljs-function, .hljs-name { color: #268bd2; } /* Solarized Yellow */ .hljs-attribute, .hljs-variable, .lisp .hljs-body, .smalltalk .hljs-number, .hljs-constant, .hljs-class .hljs-title, .hljs-parent, .hljs-type, .hljs-link_reference { color: #b58900; } /* Solarized Orange */ .hljs-preprocessor, .hljs-preprocessor .hljs-keyword, .hljs-pragma, .hljs-shebang, .hljs-symbol, .hljs-symbol .hljs-string, .diff .hljs-change, .hljs-special, .hljs-attr_selector, .hljs-subst, .hljs-cdata, .css .hljs-pseudo, .hljs-header { color: #cb4b16; } /* Solarized Red */ .hljs-deletion, .hljs-important { color: #dc322f; } /* Solarized Violet */ .hljs-link_label { color: #6c71c4; } .tex .hljs-formula { background: #eee8d5; } </style> <style> @media print{ .hljs{overflow: visible; word-wrap: break-word !important;} }</style></head><body><div class="markdown-body"> <h1 id="toc_0"># å¦ç±» SDK æ¥å ¥ææ¡£ ï¼iOSï¼</h1> <p>ç®å½ï¼</p> <ul> <li> <a href="#toc_0"># å¦ç±» SDK æ¥å ¥ææ¡£ ï¼iOSï¼</a> <ul> <li> <a href="#toc_1">çæ¬æ´æ°</a> </li> <li> <a href="#toc_2">1 ææ¡£è¯´æ</a> <ul> <li> <a href="#toc_3">1.1 åè½æè¿°</a> </li> <li> <a href="#toc_4">1.2 é 读对象</a> </li> <li> <a href="#toc_5">1.3å ¼å®¹æ§</a> </li> </ul> </li> <li> <a href="#toc_6">2 è§èè¦æ±</a> </li> <li> <a href="#toc_7">3 iOS客æ·ç«¯æ¥å ¥</a> <ul> <li> <a href="#toc_8">3.1 å·¥ç¨é ç½®</a> </li> <li> <a href="#toc_9">3.2 iOS9 Xcode7 以åéé æ³¨æäºé¡¹</a> </li> <li> <a href="#toc_10">3.4 SDK æ¥å£è¯´æ</a> </li> </ul> </li> </ul> </li> </ul> <h2 id="toc_1">çæ¬æ´æ°</h2> <table> <thead> <tr> <th>æ¶é´</th> <th>ææ¡£çæ¬</th> <th>修订人</th> <th>夿³¨</th> </tr> </thead> <tbody> <tr> <td>2017/7.18</td> <td>1.0.1</td> <td>BIGBOSS</td> <td>æ·»å ç»å½æ¨¡å忝仿¨¡å</td> </tr> <tr> <td>2017/8.16</td> <td>1.1.0</td> <td>BIGBOSS</td> <td>å ¨æ°ä¼åçé¢</td> </tr> <tr> <td>2017/8.24</td> <td>1.1.1</td> <td>BIGBOSS</td> <td>ä¼åæ¯ä»ç³»ç»ï¼æ°å ç»è®¡æ¹æ¡ï¼åå§åSDKå±è½channelID</td> </tr> <tr> <td>2017/9.4</td> <td>1.1.2</td> <td>BIGBOSS</td> <td>ä¿®å¤ç»å®ææºæ¡æ æ³æ£å¸¸éåºé®é¢/ä¿®æ¹è·åtokenæ¹å¼è¯¦æ çdemo以å代ç 说æ</td> </tr> <tr> <td>2017/9.6</td> <td>1.1.3</td> <td>BIGBOSS</td> <td>æ·»å æ¯ä»åè°</td> </tr> <tr> <td>2017/10.11</td> <td>1.2.1</td> <td>BIGBOSS</td> <td>ä¼åUIï¼ä¼å代ç ä¿®å¤iOS11çæ¬é®é¢ï¼ä¿®æ¹æ¯ä»åå§åæ¹å¼è¯¦ç»çdemo以å代ç 说æ</td> </tr> <tr> <td>2017/10.18</td> <td>1.3.1</td> <td>BIGBOSS</td> <td>å å ¥æ··æ·ï¼ä¼åæ¯ä»</td> </tr> <tr> <td>2017/11.4</td> <td>1.3.2</td> <td>BIGBOSS</td> <td>å»é¤æ··æ·ï¼ä¼å代ç </td> </tr> <tr> <td>2017/12.5</td> <td>2.0.1</td> <td>BIGBOSS</td> <td>å å ¥æµ®æ åè½ï¼éé iOSX11ï¼ä¼åæ§è½</td> </tr> <tr> <td>2017/12.26</td> <td>2.1.1</td> <td>BIGBOSS</td> <td>ä¼åæ¯ä»åè½ï¼æ´æ°æ¯ä»æ¥å£</td> </tr> <tr> <td>2018/4.10</td> <td>2.1.1</td> <td>BIGBOSS</td> <td>æ´æ¢æ°çSDK</td> </tr> <tr> <td>2018/9.15</td> <td>3.0.0</td> <td>BIGBOSS</td> <td>æ´æ¢æ°çSDK</td> </tr> </tbody> </table> <h2 id="toc_2">1 ææ¡£è¯´æ</h2> <h3 id="toc_3">1.1 åè½æè¿°</h3> <pre><code> å¦ç±»SDK主è¦ç¨æ¥åç¬¬ä¸æ¹åºç¨ç¨åºæä¾ä¾¿æ·ãå®å ¨ä»¥åå¯é çè´¦å·ä½ç³»åæ¯ä»æå¡ãæ¬æä¸»è¦æè¿°å®¢æ·ç«¯SDKæ¥å£çä½¿ç¨æ¹æ³ï¼ä¾åä½ä¼ä¼´çå¼åè æ¥å ¥ä½¿ç¨ã </code></pre> <h3 id="toc_4">1.2 é 读对象</h3> <pre><code> æ¬ææ¡£é¢åå ·æä¸å® iOS 客æ·ç«¯å¼åè½å,äºè§£ iOS 客æ·ç«¯çå¼åå管ç人åã </code></pre> <h3 id="toc_5">1.3å ¼å®¹æ§</h3> <pre><code> æ¬SDKæ¯æiOS8.0ä»¥ä¸ </code></pre> <h2 id="toc_6">2 è§èè¦æ±</h2> <p>ææ </p> <h2 id="toc_7">3 iOS客æ·ç«¯æ¥å ¥</h2> <h3 id="toc_8">3.1 å·¥ç¨é ç½®</h3> <p>1ï¼ è·å appID, client secret key,é ç½®ç»å½æ¯ä»åè°ï¼<br/> æå¼<a href="https://open.linglei.cn........%E7%99%BB%E5%BD%95%E8%B4%A6%E5%8F%B7%E8%8E%B7%E5%8F%96%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF">https://open.linglei.cn........ç»å½è´¦å·è·åé 置信æ¯</a></p> <p>2ï¼ æ·»å å¦ç±»SDKç®å½ä¸çæææä»¶ï¼å æ¬èµæºæä»¶ã头æä»¶ <br/> åéæåºï¼<br/> <img src="media/15247324793229/1538040599429.jpg" alt="1538040599429"/></p> <pre><code> å¾ 1:å¦ç±»SDKç®å½ä¸çæä»¶ </code></pre> <p>3ï¼ æ·»å SDKæä¾èµçç³»ç»åºï¼å¦ä¸å¾ 2 æç¤º<br/> <img src="media/15247324793229/15247325476416.jpg" alt=""/></p> <pre><code> å¾ 2ï¼å¦ç±»SDKä¾èµçç³»ç»åº </code></pre> <p>4) ä¿®æ¹å·¥ç¨DeploymentTarget(ç®åSDKæ¯æ8.x以ä¸); <br/> æ¹æ³:ç¨åº Target->General->Deployment Info->Deployment Target ä¸ã</p> <p>5) å·¥ç¨OtherLinkerFlags设置; <br/> æ¹æ³:ç¨åº Target->Build Settings->Linking->Other Linker Flags æ·»å -force_loadã "\((SRCROOT)/SDK/AngelFSDK.framework/AngelFSDK"(ä¿®æ¹ä¸ºå¯¼å ¥ sdk å°å·¥ç¨çè·¯å¾)ï¼æ³¨æ:\)(SRCROOT) è¡¨ç¤ºå·¥ç¨æä»¶è·¯å¾ãå¦ä¸å¾æç¤º: <br/> <img src="media/15247324793229/1538040658861.jpg" alt="1538040658861"/></p> <p>6ï¼Capabilitiesé ç½®<br/> <img src="media/15218645611599/15218647411887.jpg" alt=""/></p> <p>7) AngelConfig.plisté ç½®APPIDåSID<br/> <img src="media/15247324793229/1538040749589.jpg" alt="1538040749589"/></p> <p>éè¦å¡«åAPPIDä¸ç»è®¡çSID</p> <h3 id="toc_9">3.2 iOS9 Xcode7 以åéé æ³¨æäºé¡¹</h3> <p>1) iOS Deployment Targetæ¯æçæä½çæ¬ä¸ºiOS8.0ã â¨<br/> 2ï¼é»è®¤åªæ¯æhttps请æ±ï¼http请æ±éè¦å¨info.plist䏿·»å é ç½®ï¼æ¹æ³å¦ä¸: <br/> <img src="media/15000291634650/15002630668378.jpg" alt=""/><br/> å¾ 4:é ç½®å 许 IOS9å æ¯æ HTTP è¯·æ± </p> <h3 id="toc_10">3.4 SDK æ¥å£è¯´æ</h3> <p>1ï¼ åºç¨åå§å以åç»å½ç¸å ³æ¥å£è¯´æï¼</p> <pre><code> 表 3-1 XHAuxiliarySDK æ¥å£æ¹æ³å表 </code></pre> <table> <thead> <tr> <th>æ¹æ³å</th> <th>æ¹æ³æè¿°</th> <th>夿³¨</th> </tr> </thead> <tbody> <tr> <td>+ (XHAuxiliarySDK *)defaultXHAuxiliary;</td> <td>è·åæå¡å®ä¾</td> <td></td> </tr> <tr> <td>- (void)XHAuxiliarySDKInitWithCompletion:(XHAuxiliaryInitErrorCodeBlock)completion;</td> <td>åºç¨åå§å 彿°</td> <td></td> </tr> <tr> <td>- (int)XHAuxiliaryLoginInView:(UIView *)view;</td> <td>è°ç¨ç»å½å¹¶è¿åç»æ</td> <td>æ¾ç¤ºç»å½é¡µé¢ã</td> </tr> <tr> <td>- (void)LLLogout;</td> <td>注é</td> <td>ä½ç¨ä»¥åè¯´æææ </td> </tr> <tr> <td>+ (void)setDelegate:(id<AngelDelegate>)delegate</td> <td>设置ç»å½åè°äºä»¶</td> <td>åè°çè§å¯è ,建议使ç¨å ¨å±åéä½ä¸ºåæ°</td> </tr> <tr> <td>- (void)tool:(NSString *)LLSerialNumber andWithLLItemID:(NSString *)LLItemID andWithLLItemP:(NSInteger)LLItemP andWithLLReserved:(NSString *)LLReserved andWithLLDesc:(NSString *)LLDesc;</td> <td>æèµ·æ¯ä»æ¥å£</td> <td></td> </tr> <tr> <td>- (void)XHAuxiliaryUserInfo:(NSDictionary *)info</td> <td>ç¬¬ä¸æ¹æ¯ä»æ¥å£</td> <td></td> </tr> </tbody> </table> <ul> <li> 代ç å¦ä¸ï¼</li> </ul> <pre><code> /* åå§åSDK */ [XHAuxiliarySDK setDelegate:self]; [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliarySDKInitWithCompletion:^(XHAuxiliaryInitErrorCode result) { if (result == XHAuxiliaryInitErrorCodeNone) { // åå§åSDKæå }else if (result == XHAuxiliaryInitErrorCodeConig){ // é ç½®ä¿¡æ¯æè¯¯ }else if(result == XHAuxiliaryInitErrorCodeNet){ // ç½ç»é误 }else{ // æ¸¸ææ´æ°ä¸ } }]; **** </code></pre> <pre><code>/* ç»å½ */ int i = [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliaryLoginInView:self.view]; if (i == 0) { /* æå */ }else{ [self creatAlertVCForTitle:@"æç¤º" message:@"å°æªåå§åSDK" btnTitle:@"好ç" handler:nil]; } </code></pre> <p>æ¯ä»åæ°è¯´æ<br/> <img src="media/15247324793229/15380417827399.jpg" alt=""/></p> <pre><code>æ¯ä»æ¥å£ [[XHAuxiliarySDK defaultXHAuxiliary] tool:[self timerStamp] andWithLLItemID:@"com.thxxg.yx.198" andWithLLItemP:1 andWithLLReserved:@"çå" andWithLLDesc:@"æ¯é¾å"]; </code></pre> <p>ç¬¬ä¸æ¹æ¯ä»æ¥å£åæ°è¯´æ<br/> <img src="media/15247324793229/1538043389688.jpg" alt="1538043389688"/></p> <pre><code>NSMutableDictionary * dict = [NSMutableDictionary dictionary]; [dict setObject:[self timerStamp] forKey:@"user"]; [dict setObject:@"1" forKey:@"amount"]; [dict setObject:@"æ¯é¾å" forKey:@"desc"]; [dict setObject:@"çå" forKey:@"userInfo"]; [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliaryUserInfo:dict]; </code></pre> <pre><code> 表 3-3 AngelDelegate 代çåè°æ¹æ³å表 </code></pre> <table> <thead> <tr> <th>æ¹æ³å</th> <th>æ¹æ³æè¿°</th> <th>夿³¨</th> </tr> </thead> <tbody> <tr> <td>- (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount <em>)model</em></td> <td>ç»å½ä»£çåè°</td> <td>****çå¬ç»å½æååè¿åçtoken ï¼uid</td> </tr> <tr> <td>- (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data</td> <td>è¹ææ¯ä»åè°</td> <td>****æ¯ä»æåæè 失败è¿åçç¶æï¼ä»¥åä¿¡æ¯</td> </tr> <tr> <td>- (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data</td> <td>ç¬¬ä¸æ¹æ¯ä»åè°</td> <td>ç¹å¼ç´æ¥è¿åæå</td> </tr> </tbody> </table> <p>代ç å¦ä¸ ï¼</p> <pre><code>设置代ç以åç»§æ¿åè®®å - (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount *)model{ if(result == XHAuxiliary_SUCCESS){ NSLog(@"token = %@, uid = %@",model.accountToken,model.accountUid); } } - (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data{ if (result == XHAuxiliary_SUCCESS) { NSLog(@"æå%@",data); }else{ NSLog(@"é误"); } } - (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data{ if (result == XHAuxiliary_SUCCESS) { NSLog(@"æå %@",data); }else if (result == XHAuxiliary_CANCEL){ NSLog(@"ç¨æ·åæ¶ %@",data); }else if (result == XHAuxiliary_UNKNOW){ NSLog(@"é误 %@",data); } } </code></pre> <br><br><br><br> </div></body> </html> SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/ÁíÀà SDK ½ÓÈëÎĵµ £¨iOS£©.md
New file @@ -0,0 +1,218 @@ # # å¦ç±» SDK æ¥å ¥ææ¡£ ï¼iOSï¼ ç®å½ï¼ [TOC] ## çæ¬æ´æ° æ¶é´ | ææ¡£çæ¬ | 修订人 | 夿³¨ --------- | -------------- | ------------- | ------------- 2017/7.18 | 1.0.1 | BIGBOSS | æ·»å ç»å½æ¨¡å忝仿¨¡å 2017/8.16 | 1.1.0 | BIGBOSS | å ¨æ°ä¼åçé¢ 2017/8.24 | 1.1.1 | BIGBOSS | ä¼åæ¯ä»ç³»ç»ï¼æ°å ç»è®¡æ¹æ¡ï¼åå§åSDKå±è½channelID 2017/9.4 | 1.1.2 | BIGBOSS | ä¿®å¤ç»å®ææºæ¡æ æ³æ£å¸¸éåºé®é¢/ä¿®æ¹è·åtokenæ¹å¼è¯¦æ çdemo以å代ç 说æ 2017/9.6 | 1.1.3 | BIGBOSS | æ·»å æ¯ä»åè° 2017/10.11 | 1.2.1 | BIGBOSS | ä¼åUIï¼ä¼å代ç ä¿®å¤iOS11çæ¬é®é¢ï¼ä¿®æ¹æ¯ä»åå§åæ¹å¼è¯¦ç»çdemo以å代ç 说æ 2017/10.18 | 1.3.1 | BIGBOSS | å å ¥æ··æ·ï¼ä¼åæ¯ä» 2017/11.4 | 1.3.2 | BIGBOSS | å»é¤æ··æ·ï¼ä¼å代ç 2017/12.5 | 2.0.1 | BIGBOSS | å å ¥æµ®æ åè½ï¼éé iOSX11ï¼ä¼åæ§è½ 2017/12.26 | 2.1.1 | BIGBOSS | ä¼åæ¯ä»åè½ï¼æ´æ°æ¯ä»æ¥å£ 2018/4.10 | 2.1.1 | BIGBOSS | æ´æ¢æ°çSDK 2018/9.15 | 3.0.0 | BIGBOSS | æ´æ¢æ°çSDK ## 1 ææ¡£è¯´æ ### 1.1 åè½æè¿° å¦ç±»SDK主è¦ç¨æ¥åç¬¬ä¸æ¹åºç¨ç¨åºæä¾ä¾¿æ·ãå®å ¨ä»¥åå¯é çè´¦å·ä½ç³»åæ¯ä»æå¡ãæ¬æä¸»è¦æè¿°å®¢æ·ç«¯SDKæ¥å£çä½¿ç¨æ¹æ³ï¼ä¾åä½ä¼ä¼´çå¼åè æ¥å ¥ä½¿ç¨ã ### 1.2 é 读对象 æ¬ææ¡£é¢åå ·æä¸å® iOS 客æ·ç«¯å¼åè½å,äºè§£ iOS 客æ·ç«¯çå¼åå管ç人åã ### 1.3å ¼å®¹æ§ æ¬SDKæ¯æiOS8.0ä»¥ä¸ ## 2 è§èè¦æ± ææ ## 3 iOS客æ·ç«¯æ¥å ¥ ### 3.1 å·¥ç¨é ç½® 1ï¼ è·å appID, client secret key,é ç½®ç»å½æ¯ä»åè°ï¼ æå¼https://open.linglei.cn........ç»å½è´¦å·è·åé ç½®ä¿¡æ¯ 2ï¼ æ·»å å¦ç±»SDKç®å½ä¸çæææä»¶ï¼å æ¬èµæºæä»¶ã头æä»¶ åéæåºï¼  å¾ 1:å¦ç±»SDKç®å½ä¸çæä»¶ 3ï¼ æ·»å SDKæä¾èµçç³»ç»åºï¼å¦ä¸å¾ 2 æç¤º  å¾ 2ï¼å¦ç±»SDKä¾èµçç³»ç»åº 4) ä¿®æ¹å·¥ç¨DeploymentTarget(ç®åSDKæ¯æ8.x以ä¸); æ¹æ³:ç¨åº Target->General->Deployment Info->Deployment Target ä¸ã 5) å·¥ç¨OtherLinkerFlags设置; æ¹æ³:ç¨åº Target->Build Settings->Linking->Other Linker Flags æ·»å -force_loadã "$(SRCROOT)/SDK/AngelFSDK.framework/AngelFSDK"(ä¿®æ¹ä¸ºå¯¼å ¥ sdk å°å·¥ç¨çè·¯å¾)ï¼æ³¨æ:$(SRCROOT) è¡¨ç¤ºå·¥ç¨æä»¶è·¯å¾ãå¦ä¸å¾æç¤º:  6ï¼Capabilitiesé ç½®  7) AngelConfig.plisté ç½®APPIDåSID  éè¦å¡«åAPPIDä¸ç»è®¡çSID ### 3.2 iOS9 Xcode7 以åéé æ³¨æäºé¡¹ 1) iOS Deployment Targetæ¯æçæä½çæ¬ä¸ºiOS8.0ã 2ï¼é»è®¤åªæ¯æhttps请æ±ï¼http请æ±éè¦å¨info.plist䏿·»å é ç½®ï¼æ¹æ³å¦ä¸:  å¾ 4:é ç½®å 许 IOS9å æ¯æ HTTP è¯·æ± ### 3.4 SDK æ¥å£è¯´æ 1ï¼ åºç¨åå§å以åç»å½ç¸å ³æ¥å£è¯´æï¼ 表 3-1 XHAuxiliarySDK æ¥å£æ¹æ³å表 æ¹æ³å | æ¹æ³æè¿° | 夿³¨ --------- | -------------- | ------------- + (XHAuxiliarySDK *)defaultXHAuxiliary; | è·åæå¡å®ä¾ | - (void)XHAuxiliarySDKInitWithCompletion:(XHAuxiliaryInitErrorCodeBlock)completion;| åºç¨åå§å 彿° | - (int)XHAuxiliaryLoginInView:(UIView *)view;| è°ç¨ç»å½å¹¶è¿åç»æ | æ¾ç¤ºç»å½é¡µé¢ã - (void)LLLogout; | 注é | ä½ç¨ä»¥åè¯´æææ + (void)setDelegate:(id<AngelDelegate>)delegate | 设置ç»å½åè°äºä»¶ | åè°çè§å¯è ,建议使ç¨å ¨å±åéä½ä¸ºåæ° - (void)tool:(NSString *)LLSerialNumber andWithLLItemID:(NSString *)LLItemID andWithLLItemP:(NSInteger)LLItemP andWithLLReserved:(NSString *)LLReserved andWithLLDesc:(NSString *)LLDesc; | æèµ·æ¯ä»æ¥å£ | - (void)XHAuxiliaryUserInfo:(NSDictionary *)info | ç¬¬ä¸æ¹æ¯ä»æ¥å£ | - 代ç å¦ä¸ï¼ ``` /* åå§åSDK */ [XHAuxiliarySDK setDelegate:self]; [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliarySDKInitWithCompletion:^(XHAuxiliaryInitErrorCode result) { if (result == XHAuxiliaryInitErrorCodeNone) { // åå§åSDKæå }else if (result == XHAuxiliaryInitErrorCodeConig){ // é ç½®ä¿¡æ¯æè¯¯ }else if(result == XHAuxiliaryInitErrorCodeNet){ // ç½ç»é误 }else{ // æ¸¸ææ´æ°ä¸ } }]; **** ``` ``` /* ç»å½ */ int i = [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliaryLoginInView:self.view]; if (i == 0) { /* æå */ }else{ [self creatAlertVCForTitle:@"æç¤º" message:@"å°æªåå§åSDK" btnTitle:@"好ç" handler:nil]; } ``` æ¯ä»åæ°è¯´æ  ``` æ¯ä»æ¥å£ [[XHAuxiliarySDK defaultXHAuxiliary] tool:[self timerStamp] andWithLLItemID:@"com.thxxg.yx.198" andWithLLItemP:1 andWithLLReserved:@"çå" andWithLLDesc:@"æ¯é¾å"]; ``` ç¬¬ä¸æ¹æ¯ä»æ¥å£åæ°è¯´æ  ``` NSMutableDictionary * dict = [NSMutableDictionary dictionary]; [dict setObject:[self timerStamp] forKey:@"user"]; [dict setObject:@"1" forKey:@"amount"]; [dict setObject:@"æ¯é¾å" forKey:@"desc"]; [dict setObject:@"çå" forKey:@"userInfo"]; [[XHAuxiliarySDK defaultXHAuxiliary] XHAuxiliaryUserInfo:dict]; ``` 表 3-3 AngelDelegate 代çåè°æ¹æ³å表 æ¹æ³å | æ¹æ³æè¿° | 夿³¨ --------- | -------------- | ------------- - (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount *)model* | ç»å½ä»£çåè° | ****çå¬ç»å½æååè¿åçtoken ï¼uid - (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data | è¹ææ¯ä»åè° | ****æ¯ä»æåæè 失败è¿åçç¶æï¼ä»¥åä¿¡æ¯ - (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data | ç¬¬ä¸æ¹æ¯ä»åè° | ç¹å¼ç´æ¥è¿åæå 代ç å¦ä¸ ï¼ ``` 设置代ç以åç»§æ¿åè®®å - (void)accountLoginResult:(XHAuxiliaryToolStatus)result User:(XHAuxiliaryUserAccount *)model{ if(result == XHAuxiliary_SUCCESS){ NSLog(@"token = %@, uid = %@",model.accountToken,model.accountUid); } } - (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data{ if (result == XHAuxiliary_SUCCESS) { NSLog(@"æå%@",data); }else{ NSLog(@"é误"); } } - (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data{ if (result == XHAuxiliary_SUCCESS) { NSLog(@"æå %@",data); }else if (result == XHAuxiliary_CANCEL){ NSLog(@"ç¨æ·åæ¶ %@",data); }else if (result == XHAuxiliary_UNKNOW){ NSLog(@"é误 %@",data); } } ``` SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/½ÓÖ§¸¶½Ó¿ÚÏêϸ˵Ã÷£¨±ØÔĶÁ£©.pdfBinary files differ