client_Hale
2018-09-30 62f3e3775ffcfb246b0b1428684f70ff422dd7fa
update 极速SDK资源提交
99个文件已添加
3011 ■■■■■ 已修改文件
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.pbxproj 669 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/IDEFindNavigatorScopes.plist 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/linglei.xcuserdatad/UserInterfaceState.xcuserstate 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/LLGameSDKExampleDemo.xcscheme 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/linglei.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/linglei.xcuserdatad/xcschemes/LLGameSDKExampleDemo.xcscheme 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/xcuserdata/linglei.xcuserdatad/xcschemes/xcschememanagement.plist 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/AppDelegate.h 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/AppDelegate.m 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon20x20~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon29x29~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon40x40~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon50x50@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon50x50~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon57x57.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon57x57@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon72x72@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon72x72~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/Contents.json 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/QQ图片20171229102337.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/Contents.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Base.lproj/LaunchScreen.storyboard 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Base.lproj/Main.storyboard 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Info.plist 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/LLGameSDKExampleDemo.entitlements 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/ViewController.h 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/ViewController.m 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/main.m 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoTests/Info.plist 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoTests/LLGameSDKExampleDemoTests.m 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoUITests/Info.plist 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemoUITests/LLGameSDKExampleDemoUITests.m 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/Root.plist 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliaryConfig.plist 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Back_Icon.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Close_Icon.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_NormalBtn_icon@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_seletedBtn_icon@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/en.lproj/Root.strings 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/XHAuxiliaryResource.bundle/userIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/include/XHAuxiliary/XHAuxiliaryHeader.h 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/include/XHAuxiliary/XHAuxiliarySDK.h 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/include/XHAuxiliary/XHAuxiliaryUserAccount.h 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/JSHDSDKExampleDemo/SDK/libXHAuxiliary.a 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/Root.plist 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliaryConfig.plist 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Back_Icon.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_Close_Icon.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_NormalBtn_icon@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/XHAuxiliary_seletedBtn_icon@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/en.lproj/Root.strings 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/XHAuxiliaryResource.bundle/userIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/include/XHAuxiliary/XHAuxiliaryHeader.h 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/include/XHAuxiliary/XHAuxiliarySDK.h 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/include/XHAuxiliary/XHAuxiliaryUserAccount.h 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/SDK/libXHAuxiliary.a 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15000291634650/15002630668378.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15218645611599/15218647411887.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15247325130602.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15247325476416.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15247325693214.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15247326179674.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15247342904434.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15294041489281.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/1538040599429.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/1538040658861.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/1538040749589.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/15380417827399.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/1538043389688.jpg 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/media/15247324793229/D896D96D6B5E7D782240A27329296F75.png 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/另类 SDK 接入文档 (iOS).html 660 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/另类 SDK 接入文档 (iOS).md 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDK相关/极速SDK/iOS/SDK及SDK接入文档/JSHDSDKandDemo/接支付接口详细说明(必阅读).pdf 补丁 | 查看 | 原始文档 | blame | 历史
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/.DS_Store
Binary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/.DS_Store
Binary 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/&#x672a;&#x547d;&#x540d;&#x6587;&#x4ef6;&#x5939;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.xcuserstate
Binary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo.xcodeproj/project.xcworkspace/xcuserdata/linglei.xcuserdatad/UserInterfaceState.xcuserstate
Binary 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_Store
Binary 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_Store
Binary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/JSHDSDKExampleDemo/JSHDSDKExampleDemo/Assets.xcassets/AppIcon.appiconset/.DS_Store
Binary 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_Store
Binary 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.strings
Binary 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.a
Binary files differ
SDKÏà¹Ø/¼«ËÙSDK/iOS/SDK¼°SDK½ÓÈëÎĵµ/JSHDSDKandDemo/SDK/.DS_Store
Binary 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.strings
Binary 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.a
Binary 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-&gt;General-&gt;Deployment Info-&gt;Deployment Target ä¸‹ã€‚</p>
<p>5) å·¥ç¨‹OtherLinkerFlags设置; <br/>
方法:程序 Target-&gt;Build Settings-&gt;Linking-&gt;Other Linker Flags æ·»åŠ -force_load。 &quot;\((SRCROOT)/SDK/AngelFSDK.framework/AngelFSDK&quot;(修改为导入 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:@&quot;提示&quot; message:@&quot;尚未初始化SDK&quot; btnTitle:@&quot;好的&quot; handler:nil];
    }
</code></pre>
<p>支付参数说明<br/>
<img src="media/15247324793229/15380417827399.jpg" alt=""/></p>
<pre><code>支付接口
[[XHAuxiliarySDK defaultXHAuxiliary] tool:[self timerStamp] andWithLLItemID:@&quot;com.thxxg.yx.198&quot; andWithLLItemP:1 andWithLLReserved:@&quot;真假&quot; andWithLLDesc:@&quot;毒龙刀&quot;];
</code></pre>
<p>第三方支付接口参数说明<br/>
    <img src="media/15247324793229/1538043389688.jpg" alt="1538043389688"/></p>
<pre><code>NSMutableDictionary * dict = [NSMutableDictionary dictionary];
    [dict setObject:[self timerStamp] forKey:@&quot;user&quot;];
    [dict setObject:@&quot;1&quot; forKey:@&quot;amount&quot;];
    [dict setObject:@&quot;毒龙刀&quot; forKey:@&quot;desc&quot;];
    [dict setObject:@&quot;真假&quot; forKey:@&quot;userInfo&quot;];
    [[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(@&quot;token = %@, uid = %@&quot;,model.accountToken,model.accountUid);
    }
}
- (void)toolResult:(XHAuxiliaryToolStatus)result data:(id)data{
    if (result == XHAuxiliary_SUCCESS) {
        NSLog(@&quot;成功%@&quot;,data);
    }else{
        NSLog(@&quot;错误&quot;);
    }
}
-  (void)appstoreResult:(XHAuxiliaryToolStatus)result data:(id)data{
    if (result == XHAuxiliary_SUCCESS) {
        NSLog(@&quot;成功  %@&quot;,data);
    }else if (result == XHAuxiliary_CANCEL){
        NSLog(@&quot;用户取消  %@&quot;,data);
    }else if (result == XHAuxiliary_UNKNOW){
        NSLog(@&quot;错误  %@&quot;,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目录下的所有文件,包括资源文件、头文件
和静态库;
![1538040599429](media/15247324793229/1538040599429.jpg)
       å›¾ 1:另类SDK目录下的文件
3)  æ·»åŠ SDK所依赖的系统库,如下图 2 æ‰€ç¤º
![](media/15247324793229/15247325476416.jpg)
       å›¾ 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) è¡¨ç¤ºå·¥ç¨‹æ–‡ä»¶è·¯å¾„。如下图所示:
![1538040658861](media/15247324793229/1538040658861.jpg)
6)Capabilities配置
![](media/15218645611599/15218647411887.jpg)
7) AngelConfig.plist配置APPID和SID
![1538040749589](media/15247324793229/1538040749589.jpg)
需要填写APPID与统计的SID
### 3.2 iOS9 Xcode7 ä»¥åŽé€‚配注意事项
1) iOS Deployment Target支持的最低版本为iOS8.0。
2)默认只支持https请求,http请求需要在info.plist中添加配置,方法如下:
![](media/15000291634650/15002630668378.jpg)
        å›¾ 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];
    }
```
支付参数说明
![](media/15247324793229/15380417827399.jpg)
```
支付接口
[[XHAuxiliarySDK defaultXHAuxiliary] tool:[self timerStamp] andWithLLItemID:@"com.thxxg.yx.198" andWithLLItemP:1 andWithLLReserved:@"真假" andWithLLDesc:@"毒龙刀"];
```
第三方支付接口参数说明
    ![1538043389688](media/15247324793229/1538043389688.jpg)
```
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/½ÓÖ§¸¶½Ó¿ÚÏêϸ˵Ã÷£¨±ØÔĶÁ£©.pdf
Binary files differ