├── LFBSocialSDK.podspec ├── LFBSocialSDK ├── Assets.xcassets │ ├── Contents.json │ ├── icon_share_pengyouquan.imageset │ │ ├── Contents.json │ │ ├── icon_share_pengyouquan@2x.png │ │ └── icon_share_pengyouquan@3x.png │ ├── icon_share_qq.imageset │ │ ├── Contents.json │ │ ├── icon_share_qq@2x.png │ │ └── icon_share_qq@3x.png │ ├── icon_share_weibo.imageset │ │ ├── Contents.json │ │ ├── icon_share_weibo@2x.png │ │ └── icon_share_weibo@3x.png │ ├── icon_share_weixin.imageset │ │ ├── Contents.json │ │ ├── icon_share_weixin@2x.png │ │ └── icon_share_weixin@3x.png │ └── icon_share_zone.imageset │ │ ├── Contents.json │ │ ├── icon_share_zone@2x.png │ │ └── icon_share_zone@3x.png ├── LFBChannelBase.h ├── LFBChannelBase.m ├── LFBChannelHeaderFile.h ├── LFBChannelManager.h ├── LFBChannelManager.m ├── LFBChannelPYQ.h ├── LFBChannelPYQ.m ├── LFBChannelQQ.h ├── LFBChannelQQ.m ├── LFBChannelQQZone.h ├── LFBChannelQQZone.m ├── LFBChannelSinaWB.h ├── LFBChannelSinaWB.m ├── LFBChannelWX.h ├── LFBChannelWX.m ├── LFBDataInfo.h ├── LFBDataInfo.m ├── LFBOpProcessProtocol.h ├── LFBShareChannelConfig.h ├── LFBShareChannelConfig.m ├── LFBShareInfo.h ├── LFBShareInfo.m ├── LFBShareMoudle │ ├── LFBShareCollectionCell.h │ ├── LFBShareCollectionCell.m │ ├── LFBShareCollectionView.h │ ├── LFBShareCollectionView.m │ ├── LFBShareDefine.h │ ├── LFBShareMoudle.h │ ├── LFBShareMoudle.m │ ├── LFBShareMoudleView.h │ ├── LFBShareMoudleView.m │ ├── LFBSharePlateforms.h │ ├── LFBSharePlateforms.m │ ├── UIColor+RGB.h │ └── UIColor+RGB.m ├── LFBSocialSDK.h └── readme.md ├── LFBSocialSDKDemo.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings │ └── xcuserdata │ │ └── yxyt.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings ├── xcshareddata │ └── xcschemes │ │ └── LFBSocialSDKDemo.xcscheme └── xcuserdata │ └── yxyt.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ └── xcschememanagement.plist ├── LFBSocialSDKDemo.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── yxyt.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── LFBSocialSDKDemo ├── AppDelegate+Scheme.h ├── AppDelegate+Scheme.m ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── bg_default_01.imageset │ │ ├── Contents.json │ │ └── bg_default_01@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── LFBSocialSDKDemo.entitlements ├── ViewController.h ├── ViewController.m └── main.m ├── LFBSocialSDKDemoTests ├── Info.plist ├── LFBSocialSDKDemoTests.m └── banner.png ├── LFBSocialSDKDemoUITests ├── Info.plist └── LFBSocialSDKDemoUITests.m ├── LICENSE ├── Podfile.lock ├── Pods ├── Headers │ ├── Private │ │ ├── Masonry │ │ │ ├── MASCompositeConstraint.h │ │ │ ├── MASConstraint+Private.h │ │ │ ├── MASConstraint.h │ │ │ ├── MASConstraintMaker.h │ │ │ ├── MASLayoutConstraint.h │ │ │ ├── MASUtilities.h │ │ │ ├── MASViewAttribute.h │ │ │ ├── MASViewConstraint.h │ │ │ ├── Masonry.h │ │ │ ├── NSArray+MASAdditions.h │ │ │ ├── NSArray+MASShorthandAdditions.h │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ │ ├── View+MASAdditions.h │ │ │ ├── View+MASShorthandAdditions.h │ │ │ └── ViewController+MASAdditions.h │ │ ├── WechatOpenSDK │ │ │ ├── WXApi.h │ │ │ ├── WXApiObject.h │ │ │ └── WechatAuthSDK.h │ │ └── WeiboSDK │ │ │ ├── WBHttpRequest+WeiboGame.h │ │ │ ├── WBHttpRequest+WeiboShare.h │ │ │ ├── WBHttpRequest+WeiboToken.h │ │ │ ├── WBHttpRequest+WeiboUser.h │ │ │ ├── WBHttpRequest.h │ │ │ ├── WBSDKBasicButton.h │ │ │ ├── WBSDKCommentButton.h │ │ │ ├── WBSDKRelationshipButton.h │ │ │ ├── WeiboSDK.h │ │ │ └── WeiboUser.h │ └── Public │ │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraintMaker.h │ │ ├── MASLayoutConstraint.h │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewConstraint.h │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── View+MASAdditions.h │ │ ├── View+MASShorthandAdditions.h │ │ └── ViewController+MASAdditions.h │ │ ├── WechatOpenSDK │ │ ├── WXApi.h │ │ ├── WXApiObject.h │ │ └── WechatAuthSDK.h │ │ └── WeiboSDK │ │ ├── WBHttpRequest+WeiboGame.h │ │ ├── WBHttpRequest+WeiboShare.h │ │ ├── WBHttpRequest+WeiboToken.h │ │ ├── WBHttpRequest+WeiboUser.h │ │ ├── WBHttpRequest.h │ │ ├── WBSDKBasicButton.h │ │ ├── WBSDKCommentButton.h │ │ ├── WBSDKRelationshipButton.h │ │ ├── WeiboSDK.h │ │ └── WeiboUser.h ├── Manifest.lock ├── Masonry │ ├── LICENSE │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASCompositeConstraint.m │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraint.m │ │ ├── MASConstraintMaker.h │ │ ├── MASConstraintMaker.m │ │ ├── MASLayoutConstraint.h │ │ ├── MASLayoutConstraint.m │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewAttribute.m │ │ ├── MASViewConstraint.h │ │ ├── MASViewConstraint.m │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASAdditions.m │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.m │ │ ├── View+MASAdditions.h │ │ ├── View+MASAdditions.m │ │ ├── View+MASShorthandAdditions.h │ │ ├── ViewController+MASAdditions.h │ │ └── ViewController+MASAdditions.m │ └── README.md ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── yxyt.xcuserdatad │ │ └── xcschemes │ │ ├── Masonry.xcscheme │ │ ├── Pods-LFBSocialSDKDemo.xcscheme │ │ ├── Pods-LFBSocialSDKDemoTests.xcscheme │ │ ├── Pods-LFBSocialSDKDemoUITests.xcscheme │ │ ├── TencentOpenAPI.xcscheme │ │ ├── WechatOpenSDK.xcscheme │ │ ├── WeiboSDK.xcscheme │ │ └── xcschememanagement.plist ├── Target Support Files │ ├── Masonry │ │ ├── Masonry-dummy.m │ │ ├── Masonry-prefix.pch │ │ └── Masonry.xcconfig │ ├── Pods-LFBSocialSDKDemo │ │ ├── Pods-LFBSocialSDKDemo-acknowledgements.markdown │ │ ├── Pods-LFBSocialSDKDemo-acknowledgements.plist │ │ ├── Pods-LFBSocialSDKDemo-dummy.m │ │ ├── Pods-LFBSocialSDKDemo-frameworks.sh │ │ ├── Pods-LFBSocialSDKDemo-resources-Debug-input-files.xcfilelist │ │ ├── Pods-LFBSocialSDKDemo-resources-Debug-output-files.xcfilelist │ │ ├── Pods-LFBSocialSDKDemo-resources-Release-input-files.xcfilelist │ │ ├── Pods-LFBSocialSDKDemo-resources-Release-output-files.xcfilelist │ │ ├── Pods-LFBSocialSDKDemo-resources.sh │ │ ├── Pods-LFBSocialSDKDemo.debug.xcconfig │ │ └── Pods-LFBSocialSDKDemo.release.xcconfig │ ├── Pods-LFBSocialSDKDemoTests │ │ ├── Pods-LFBSocialSDKDemoTests-acknowledgements.markdown │ │ ├── Pods-LFBSocialSDKDemoTests-acknowledgements.plist │ │ ├── Pods-LFBSocialSDKDemoTests-dummy.m │ │ ├── Pods-LFBSocialSDKDemoTests-frameworks.sh │ │ ├── Pods-LFBSocialSDKDemoTests-resources.sh │ │ ├── Pods-LFBSocialSDKDemoTests.debug.xcconfig │ │ └── Pods-LFBSocialSDKDemoTests.release.xcconfig │ ├── Pods-LFBSocialSDKDemoUITests │ │ ├── Pods-LFBSocialSDKDemoUITests-acknowledgements.markdown │ │ ├── Pods-LFBSocialSDKDemoUITests-acknowledgements.plist │ │ ├── Pods-LFBSocialSDKDemoUITests-dummy.m │ │ ├── Pods-LFBSocialSDKDemoUITests-frameworks.sh │ │ ├── Pods-LFBSocialSDKDemoUITests-resources.sh │ │ ├── Pods-LFBSocialSDKDemoUITests.debug.xcconfig │ │ └── Pods-LFBSocialSDKDemoUITests.release.xcconfig │ ├── TencentOpenAPI │ │ └── TencentOpenAPI.xcconfig │ ├── WechatOpenSDK │ │ └── WechatOpenSDK.xcconfig │ └── WeiboSDK │ │ └── WeiboSDK.xcconfig ├── TencentOpenAPI │ ├── LICENSE │ ├── README.md │ ├── TencentOpenAPI.framework │ │ ├── Headers │ │ │ ├── QQApiInterface.h │ │ │ ├── QQApiInterfaceObject.h │ │ │ ├── TencentApiInterface.h │ │ │ ├── TencentMessageObject.h │ │ │ ├── TencentOAuth.h │ │ │ ├── TencentOAuthObject.h │ │ │ └── sdkdef.h │ │ ├── Resources │ │ │ └── ios_open_sdk_3.2.2.500_iphone_release │ │ └── TencentOpenAPI │ └── TencentOpenApi_IOS_Bundle.bundle │ │ ├── Info.plist │ │ ├── error.png │ │ ├── local.html │ │ ├── qqicon.png │ │ └── success.png ├── WechatOpenSDK │ └── OpenSDK1.8.7.1 │ │ ├── WXApi.h │ │ ├── WXApiObject.h │ │ ├── WechatAuthSDK.h │ │ └── libWeChatSDK.a └── WeiboSDK │ ├── LICENSE │ ├── README.md │ └── libWeiboSDK │ ├── WBHttpRequest+WeiboGame.h │ ├── WBHttpRequest+WeiboShare.h │ ├── WBHttpRequest+WeiboToken.h │ ├── WBHttpRequest+WeiboUser.h │ ├── WBHttpRequest.h │ ├── WBSDKBasicButton.h │ ├── WBSDKCommentButton.h │ ├── WBSDKRelationshipButton.h │ ├── WeiboSDK.bundle │ ├── images │ │ ├── alert_error_icon@2x.png │ │ ├── alert_success_icon@2x.png │ │ ├── close.png │ │ ├── close@2x.png │ │ ├── common_button_big_blue@2x.png │ │ ├── common_button_big_blue_disable@2x.png │ │ ├── common_button_big_blue_highlighted@2x.png │ │ ├── common_button_white.png │ │ ├── common_button_white@2x.png │ │ ├── common_button_white_highlighted.png │ │ ├── common_button_white_highlighted@2x.png │ │ ├── common_icon_arrow@2x.png │ │ ├── compose_keyboardbutton_background.png │ │ ├── compose_keyboardbutton_background@2x.png │ │ ├── compose_toolbar_background.png │ │ ├── compose_toolbar_background@2x.png │ │ ├── empty_failed.png │ │ ├── empty_failed@2x.png │ │ ├── login_background@2x.png │ │ ├── login_country_background@2x.png │ │ ├── login_country_background_highlighted@2x.png │ │ ├── navigationbar_background.png │ │ ├── navigationbar_background@2x.png │ │ ├── navigationbar_background_os7.png │ │ ├── navigationbar_background_os7@2x.png │ │ ├── progresshud_background@2x.png │ │ ├── sdk_weibo_logo.png │ │ ├── sdk_weibo_logo@2x.png │ │ ├── sdk_weibo_logo@3x.png │ │ ├── timeline_relationship_icon_addattention.png │ │ ├── timeline_relationship_icon_addattention@2x.png │ │ ├── timeline_relationship_icon_addattention@3x.png │ │ ├── timeline_relationship_icon_attention.png │ │ ├── timeline_relationship_icon_attention@2x.png │ │ ├── timeline_relationship_icon_attention@3x.png │ │ ├── verify_code_button@2x.png │ │ ├── verify_code_button@3x.png │ │ ├── verify_code_button_highlighted@2x.png │ │ └── verify_code_button_highlighted@3x.png │ └── others │ │ ├── countryList │ │ └── mfp.cer │ ├── WeiboSDK.h │ ├── WeiboUser.h │ └── libWeiboSDK.a ├── README.md ├── imageFolder ├── icon_share_appstore_doam.png ├── icon_share_associatedDomain.png ├── icon_share_ercilianjie_wechat.png ├── icon_share_libraries.png ├── icon_share_login_frae.png ├── icon_share_other_linkes.png ├── icon_share_schem_set.png ├── icon_share_scheme.jpeg ├── icon_share_universal_sets.png └── icon_share_universal_wechat.png └── podfile /LFBSocialSDK.podspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pod::Spec.new do |s| 4 | 5 | # 库名字 6 | s.name = "LFBSocialSDK" 7 | # 库的版本 8 | s.version = "1.0.6" 9 | # 库摘要 10 | s.summary = "share framework for iOS (powerful,superior performance)" 11 | # 库描述 12 | s.description = <<-DESC 13 | 简单易容的分享框架,目前提供微信、 14 | 朋友圈、QQ、QQ空间、新浪微博分享服务, 15 | 同时也提供了第三方登录功能 16 | 持续更新中... 17 | DESC 18 | 19 | # 远程仓库地址,即GitHub地址,或者你使用的其他Gitlab地址 20 | s.homepage = "https://github.com/LiuFuBo/LFBSocialSDK" 21 | 22 | # MIT许可证 (The MIT License),软件授权条款 23 | s.license = "MIT" 24 | 25 | 26 | # 作者信息 27 | s.author = { "liufubo" => "18380438251@163.com" } 28 | # 作者信息 29 | s.social_media_url = "http://www.jianshu.com/u/7d935e492eec" 30 | 31 | 32 | # 支持的系统及支持的最低系统版本 33 | s.platform = :ios 34 | s.platform = :ios, "8.0" 35 | 36 | # 支持多平台使用时配置 37 | # s.ios.deployment_target = "5.0" 38 | # s.osx.deployment_target = "10.7" 39 | # s.watchos.deployment_target = "2.0" 40 | # s.tvos.deployment_target = "9.0" 41 | 42 | 43 | # 下载地址,远程仓库的 GitHub下载地址(clone 地址), 使用.git结尾 44 | # 如果使用版本号做为tag那么不能频繁的打tag,必须要保持版本号和tag一致,否在拉取到的将是版本号作为tag对应提交的内容 45 | s.source = { :git => "https://github.com/LiuFuBo/LFBSocialSDK.git", :tag => "#{s.version}" } 46 | 47 | 48 | # 库文件在仓库中的相对路径 49 | # 等号后面的第一个参数表示的是要添加 Cocoapods 依赖的库在项目中的相对路径 50 | # 我的库在库根目录,所以直接就是LFBSocialSDK 51 | # 如果库放在其他地方,比如LFBSocial/LFBSocialSDK,则填写实际相对路径 52 | # 等号后的第二个参数,表示LFBSocialSDK文件夹下的哪些文件需要 Cocoapods依赖 53 | # "**"这个通配符代表LFBSocialSDK文件下所有文件,"*.{h,m}代表所有的.h,.m文件" 54 | s.source_files = "LFBSocialSDK", "LFBSocialSDK/**/*.{h,m,md}" 55 | # 指明 LFBSocialSDK文件夹下不需要添加到 Cocoapods的文件 56 | # 这里 Exclude 文件夹内的内容 57 | #s.exclude_files = "LFBSocialSDK/Exclude" 58 | # 公开头文件 59 | #s.public_header_files = "LFBSocialSDK/Classes/**/*.h" 60 | 61 | # 项目中是否用到ARC 62 | s.requires_arc = true 63 | 64 | # 项目中的图片资源 65 | s.resource_bundles = { 66 | 'LFBSocialSDK' => ['LFBSocialSDK/**/*.{xcassets}'] 67 | } 68 | 69 | 70 | 71 | 72 | # 库中用到的框架或系统库 (没有用到可以没有) 73 | #s.static_framework = true 74 | # s.framework = "SomeFramework" 75 | # s.frameworks = "SomeFramework", "AnotherFramework" 76 | 77 | # s.library = "iconv" 78 | # s.libraries = "iconv", "xml2" 79 | 80 | 81 | # 如果库中依赖其他的三方库,可以添加这些依赖库 82 | s.dependency "WechatOpenSDK", "~> 1.8.7.1" 83 | s.dependency "TencentOpenAPI", "~> 1.0.0" 84 | s.dependency "WeiboSDK", "~> 3.1.3" 85 | s.dependency "Masonry", "~> 1.1.0" 86 | 87 | end 88 | -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_pengyouquan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_share_pengyouquan@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_share_pengyouquan@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_pengyouquan.imageset/icon_share_pengyouquan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_pengyouquan.imageset/icon_share_pengyouquan@2x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_pengyouquan.imageset/icon_share_pengyouquan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_pengyouquan.imageset/icon_share_pengyouquan@3x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_qq.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_share_qq@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_share_qq@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_qq.imageset/icon_share_qq@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_qq.imageset/icon_share_qq@2x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_qq.imageset/icon_share_qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_qq.imageset/icon_share_qq@3x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_weibo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_share_weibo@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_share_weibo@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_weibo.imageset/icon_share_weibo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_weibo.imageset/icon_share_weibo@2x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_weibo.imageset/icon_share_weibo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_weibo.imageset/icon_share_weibo@3x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_weixin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_share_weixin@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_share_weixin@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_weixin.imageset/icon_share_weixin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_weixin.imageset/icon_share_weixin@2x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_weixin.imageset/icon_share_weixin@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_weixin.imageset/icon_share_weixin@3x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_zone.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_share_zone@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_share_zone@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_zone.imageset/icon_share_zone@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_zone.imageset/icon_share_zone@2x.png -------------------------------------------------------------------------------- /LFBSocialSDK/Assets.xcassets/icon_share_zone.imageset/icon_share_zone@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDK/Assets.xcassets/icon_share_zone.imageset/icon_share_zone@3x.png -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelBase.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelBase.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBShareInfo.h" 11 | #import "LFBDataInfo.h" 12 | #import "LFBOpProcessProtocol.h" 13 | #import 14 | #import "LFBChannelHeaderFile.h" 15 | #import "LFBChannelManager.h" 16 | 17 | /* 18 | * 所有渠道的基类,在分类里面实现了LFBOpProcessProtocol协议,这个协议的方法,是每个步骤(比如分享,登录等)操作完成之后的处理; 19 | * 之所以放在分类里实现,是为了让外部不能调用;外部也不应该直接调用协议的方法 20 | * 需要继承自LFBChannelBase的子类,也该在分类里面实现LFBOpProcessProtocol协议 21 | */ 22 | 23 | @interface LFBChannelBase : NSObject 24 | //渠道未安装回调,这个block需要自己显示设置 25 | @property (nonatomic, copy) LFBNotSupportBlock notSupportBlock; 26 | //渠道名称,可以在配置文件中配置,若未配置,渠道初始化会给个默认名称 27 | @property (nonatomic, copy) NSString *channelName; 28 | //渠道类型,各个渠道初始化的时候会自己赋值 29 | @property (nonatomic, readonly) LFBChannelType channelType; 30 | //以下三个icon,可以配置(只支持imageNamed:方式配置),也可以自己设置 31 | //正常的icon 32 | @property (nonatomic) UIImage *normalIcon; 33 | //选中的icon 34 | @property (nonatomic) UIImage *selectedIcon; 35 | //高亮的icon 36 | @property (nonatomic) UIImage *highlightedIcon; 37 | //保存用户自己和渠道相关的信息 38 | @property (nonatomic) id userInfo; 39 | 40 | //设置渠道相关的信息,比如appkey (必须),appSecret(微信必须) 等信息;(NS_REQUIRES_SUPER 子类必须先调用这个父类不然就会有警告) 41 | - (void)setupWithInfo:(NSDictionary *)info NS_REQUIRES_SUPER; 42 | 43 | //客户端是否支持分享 44 | - (BOOL)couldShare; 45 | 46 | //登录,拿回授权信息,success回调里的参数是LFBAuthInfo 47 | - (void)login:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail cancel:(LFBOpCancelBlock)cancel; 48 | 49 | //登录之后,将登录返回的授权信息拿来获取用户头像,昵称等信息 50 | - (void)getUserInfoWithAuth:(LFBAuthInfo *)authInfo success:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail; 51 | 52 | //发起分享请求 53 | - (void)shareInfo:(LFBShareInfo *)shareInfo success:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail cancel:(LFBOpCancelBlock)cancel; 54 | 55 | //OpenURL回调 56 | - (BOOL)handleOpenURL:(NSURL *)url; 57 | 58 | //通过通用链接启动应用时传递的参数(注:目前仅微信支持) 59 | - (BOOL)handleOpenUniversalLink:(NSUserActivity *)universalLink; 60 | 61 | @end 62 | 63 | 64 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelBase.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelBase.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelBase.h" 10 | 11 | @interface LFBChannelBase () 12 | //操作成功回调 13 | @property (nonatomic) LFBOpSuccessBlock successBlock; 14 | //取消操作回调 15 | @property (nonatomic) LFBOpCancelBlock cancelBlock; 16 | //操作失败回调 17 | @property (nonatomic) LFBOpFailBlock failBlock; 18 | //渠道类型 19 | @property (nonatomic) LFBChannelType channelType; 20 | 21 | /** 22 | * 以下是子类需要覆写的方法 23 | */ 24 | //channel是否支持登陆 25 | - (BOOL)couldLogin; 26 | 27 | //每个子类的登陆操作 28 | - (void)login; 29 | 30 | //每个子类的分享操作 31 | - (void)shareInfo:(LFBShareInfo *)shareInfo; 32 | 33 | //获得特定渠道的用户信息 34 | - (void)getUserInfo:(LFBAuthInfo *)authInfo; 35 | 36 | 37 | @end 38 | 39 | @implementation LFBChannelBase 40 | 41 | - (BOOL)couldLogin{ 42 | return NO; 43 | } 44 | 45 | - (BOOL)couldShare{ 46 | return NO; 47 | } 48 | 49 | - (void)login:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail cancel:(LFBOpCancelBlock)cancel 50 | { 51 | self.successBlock = success; 52 | self.failBlock = fail; 53 | self.cancelBlock = cancel; 54 | if ([self couldLogin]) { 55 | [LFBChannelManager sharedManager].currentChannel = self; 56 | [self login]; 57 | }else{ 58 | [self didNotSupport]; 59 | } 60 | } 61 | 62 | - (void)getUserInfoWithAuth:(LFBAuthInfo *)authInfo success:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail 63 | { 64 | self.successBlock = success; 65 | self.failBlock = fail; 66 | if ([self couldLogin]) { 67 | [LFBChannelManager sharedManager].currentChannel = self; 68 | [self getUserInfo:authInfo]; 69 | }else{ 70 | [self didNotSupport]; 71 | } 72 | } 73 | 74 | - (void)shareInfo:(LFBShareInfo *)shareInfo success:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail cancel:(LFBOpCancelBlock)cancel 75 | { 76 | self.successBlock = success; 77 | self.failBlock = fail; 78 | self.cancelBlock = cancel; 79 | if ([self couldShare]) { 80 | [LFBChannelManager sharedManager].currentChannel = self; 81 | [self shareInfo:shareInfo]; 82 | }else{ 83 | [self didNotSupport]; 84 | } 85 | } 86 | 87 | - (void)login{ 88 | //子类实现 89 | } 90 | 91 | - (void)shareInfo:(LFBShareInfo *)shareInfo{ 92 | //子类实现 93 | } 94 | 95 | - (void)getUserInfo:(LFBAuthInfo *)authInfo{ 96 | //子类实现 97 | } 98 | 99 | - (void)setupWithInfo:(NSDictionary *)info{ 100 | if (info[@"channelName"]) { 101 | self.channelName = info[@"channelName"]; 102 | } 103 | if (info[@"normalIcon"] && [info[@"normalIcon"] isKindOfClass:[NSString class]]) { 104 | self.normalIcon = [UIImage imageNamed:info[@"normalIcon"]]; 105 | } 106 | if (info[@"selectedIcon"] && [info[@"selectedIcon"] isKindOfClass:[NSString class]]) { 107 | self.selectedIcon = [UIImage imageNamed:info[@"selectedIcon"]]; 108 | } 109 | if (info[@"highlightedIcon"] && [info[@"highlightedIcon"] isKindOfClass:[NSString class]]) { 110 | self.highlightedIcon = [UIImage imageNamed:info[@"highlightedIcon"]]; 111 | } 112 | } 113 | 114 | - (void)didSuccess:(id)data{ 115 | __unused LFBChannelBase *holder = self; 116 | [self clear]; 117 | if (self.successBlock) { 118 | self.successBlock(self, data); 119 | } 120 | } 121 | 122 | - (void)didFail:(NSError *)error{ 123 | //故意声明一个临时变量持有self,避免clear的时候self被释放掉 124 | __unused LFBChannelBase *holder = self; 125 | [self clear]; 126 | if (self.failBlock) { 127 | self.failBlock(self, error); 128 | } 129 | } 130 | 131 | - (void)didCancel{ 132 | __unused LFBChannelBase *holder = self; 133 | [self clear]; 134 | if (self.cancelBlock) { 135 | self.cancelBlock(self); 136 | } 137 | } 138 | 139 | - (void)didNotSupport 140 | { 141 | [self clear]; 142 | if (self.notSupportBlock) { 143 | self.notSupportBlock(self); 144 | } 145 | } 146 | 147 | - (void)clear{ 148 | [[LFBChannelManager sharedManager] clear]; 149 | } 150 | 151 | - (BOOL)handleOpenURL:(NSURL *)url{ 152 | return NO; 153 | } 154 | 155 | @end 156 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelHeaderFile.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelHeaderFile.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #ifndef LFBChannelHeaderFile_h 10 | #define LFBChannelHeaderFile_h 11 | 12 | @class LFBChannelBase; 13 | 14 | typedef void(^LFBNotSupportBlock)(LFBChannelBase *channel); 15 | typedef void(^LFBOpSuccessBlock)(LFBChannelBase *channel, id data); 16 | typedef void(^LFBOpFailBlock)(LFBChannelBase *channel, NSError *error); 17 | typedef void(^LFBOpCancelBlock)(LFBChannelBase *channel); 18 | typedef void(^LFBSimpleCallBlock)(id sender); 19 | 20 | typedef NS_ENUM(NSInteger, LFBChannelErrorCode){ 21 | LFBChannelErrorCodeCancel, 22 | LFBChannelErrorCodeFail, 23 | LFBChannelErrorCodeDataError, 24 | LFBChannelErrorCodeAuthDeny, 25 | LFBChannelErrorCodeUnsupport, 26 | LFBChannelErrorCodeUnkonwn 27 | }; 28 | 29 | typedef NS_ENUM(NSInteger,LFBChannelType){ 30 | LFBChannelTypeQQ, //QQ好友 31 | LFBChannelTypeQQZone, //QQ空间 32 | LFBChannelTypeWX, //微信 33 | LFBChannelTypePYQ, //朋友圈 34 | LFBChannelTypeSinaWB //新浪微博 35 | }; 36 | 37 | #define LFBChannelError(theCode,desc)\ 38 | ({\ 39 | NSDictionary *userInfo = nil;\ 40 | userInfo = @{NSLocalizedDescriptionKey:desc};\ 41 | NSString *domain = [NSString stringWithFormat:@"%s",__FILE__];\ 42 | [NSError errorWithDomain:domain code:theCode userInfo:userInfo];\ 43 | }); 44 | 45 | #define LFBRequestAcceptContentType(request)\ 46 | {\ 47 | [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];\ 48 | [request addValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];\ 49 | [request addValue:@"text/javascript" forHTTPHeaderField:@"Content-Type"];\ 50 | [request addValue:@"text/json" forHTTPHeaderField:@"Content-Type"];\ 51 | [request addValue:@"text/html" forHTTPHeaderField:@"Content-Type"];\ 52 | [request addValue:@"text/css" forHTTPHeaderField:@"Content-Type"];\ 53 | } 54 | 55 | #ifndef weakify 56 | #define weakify(object) try{} @finally{} {} __weak __typeof__(object) weak##_##object = object; 57 | #endif 58 | 59 | #ifndef strongify 60 | #define strongify(object) try{} @finally{} __typeof__(object) object = weak##_##object; 61 | #endif 62 | 63 | 64 | #endif /* LFBChannelHeaderFile_h */ 65 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelManager.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBChannelBase.h" 11 | 12 | 13 | @interface LFBChannelManager : NSObject 14 | 15 | //当前操作的渠道,操作结束之后,会置为nil 16 | @property (nonatomic) LFBChannelBase *currentChannel; 17 | //它会持有代理,代理不能释放,不然初始化出来的channel,没有appKey等Info 18 | @property (nonatomic) id delegate; 19 | 20 | //单例 21 | + (instancetype)sharedManager; 22 | 23 | //OpenURL回调 24 | - (BOOL)handleOpenURL:(NSURL *)url; 25 | 26 | //通过通用链接启动应用时传递的参数(注:目前仅微信支持) 27 | - (BOOL)handleOpenUniversalLink:(NSUserActivity *)universalLink; 28 | 29 | //根据type,返回对应的channel,并且会配置好相应的信息 (appKey, appScret 等) 30 | - (LFBChannelBase *)channelWithType:(LFBChannelType)channelType; 31 | 32 | //根据type,返回对应的channel,并设置未安装的block回调 33 | - (LFBChannelBase *)channelWithType:(LFBChannelType)channelType notInstallBlock:(LFBNotSupportBlock)block; 34 | 35 | //客户端支持分享的渠道,没安装的不会返回 (QQ, QQ空间, 微信, 朋友圈, 新浪微博等) 36 | - (NSArray *)validChannels; 37 | 38 | //清除保留的渠道等信息 39 | - (void)clear; 40 | 41 | @end 42 | 43 | 44 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelManager.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelManager.h" 10 | #import "LFBChannelWX.h" 11 | #import "LFBChannelPYQ.h" 12 | #import "LFBChannelQQ.h" 13 | #import "LFBChannelQQZone.h" 14 | #import "LFBChannelSinaWB.h" 15 | 16 | @implementation LFBChannelManager 17 | 18 | + (instancetype)sharedManager{ 19 | static id shareInstance = nil; 20 | static dispatch_once_t o; 21 | dispatch_once(&o, ^{ 22 | shareInstance = [[self alloc]init]; 23 | }); 24 | return shareInstance; 25 | } 26 | 27 | - (BOOL)handleOpenURL:(NSURL *)url{ 28 | return [self.currentChannel handleOpenURL:url]; 29 | } 30 | 31 | - (BOOL)handleOpenUniversalLink:(NSUserActivity *)universalLink { 32 | return [self.currentChannel handleOpenUniversalLink:universalLink]; 33 | } 34 | 35 | - (LFBChannelBase *)channelWithType:(LFBChannelType)channelType notInstallBlock:(LFBNotSupportBlock)block{ 36 | LFBChannelBase *channel = [self channelWithType:channelType]; 37 | channel.notSupportBlock = block; 38 | return channel; 39 | } 40 | 41 | - (LFBChannelBase *)channelWithType:(LFBChannelType)channelType 42 | { 43 | LFBChannelBase *baseChannel; 44 | switch (channelType) { 45 | case LFBChannelTypeWX: 46 | baseChannel = [[LFBChannelWX alloc]init]; 47 | break; 48 | case LFBChannelTypePYQ: 49 | baseChannel = [[LFBChannelPYQ alloc]init]; 50 | break; 51 | case LFBChannelTypeQQ: 52 | baseChannel = [[LFBChannelQQ alloc]init]; 53 | break; 54 | case LFBChannelTypeQQZone: 55 | baseChannel = [[LFBChannelQQZone alloc]init]; 56 | break; 57 | case LFBChannelTypeSinaWB: 58 | baseChannel = [[LFBChannelSinaWB alloc]init]; 59 | break; 60 | default: 61 | break; 62 | } 63 | if (!baseChannel) { 64 | #ifdef DEBUG 65 | NSAssert(NO, @"不支持的渠道类型"); 66 | #endif 67 | } 68 | if (baseChannel && [self.delegate respondsToSelector:@selector(channelInfoWithType:)]) { 69 | [baseChannel setupWithInfo:[self.delegate channelInfoWithType:channelType]]; 70 | } 71 | return baseChannel; 72 | } 73 | 74 | - (NSArray *)validChannels 75 | { 76 | NSArray *channelTypes = @[@(LFBChannelTypeWX), 77 | @(LFBChannelTypePYQ), 78 | @(LFBChannelTypeSinaWB), 79 | @(LFBChannelTypeQQ), 80 | @(LFBChannelTypeQQZone)]; 81 | NSMutableArray *channels = [NSMutableArray array]; 82 | 83 | for (NSInteger index = 0; index < channelTypes.count; ++ index) { 84 | LFBChannelType type = [channelTypes[index] integerValue]; 85 | if ([self.delegate channelInfoWithType:type]) { 86 | LFBChannelBase *channel = [self channelWithType:type]; 87 | if ([channel couldShare]) { 88 | [channels addObject:channel]; 89 | } 90 | } 91 | } 92 | if (!channels.count) { 93 | channels = nil; 94 | } 95 | return channels; 96 | } 97 | 98 | - (void)clear{ 99 | self.currentChannel = nil; 100 | } 101 | 102 | 103 | @end 104 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelPYQ.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelPYQ.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelWX.h" 10 | 11 | @interface LFBChannelPYQ : LFBChannelWX 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelPYQ.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelPYQ.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelPYQ.h" 10 | 11 | @implementation LFBChannelPYQ 12 | 13 | - (instancetype)init 14 | { 15 | self = [super init]; 16 | if (self) { 17 | self.channelName = @"朋友圈"; 18 | } 19 | return self; 20 | } 21 | 22 | - (enum WXScene)scene{ 23 | return WXSceneTimeline; 24 | } 25 | 26 | - (BOOL)couldLogin{ 27 | //微信朋友圈不支持登陆 28 | return NO; 29 | } 30 | 31 | - (LFBChannelType)channelType 32 | { 33 | return LFBChannelTypePYQ; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelQQ.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelQQ.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelBase.h" 10 | 11 | typedef NS_ENUM(NSInteger,LFBChannelQQScene){ 12 | LFBChannelQQSceneChat = 0,//qq聊天界面 13 | LFBChannelQQSceneQQZone = 1 //qq空间 14 | }; 15 | 16 | @interface LFBChannelQQ : LFBChannelBase 17 | @property (nonatomic, readonly) LFBChannelQQScene scene; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelQQZone.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelQQZone.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelQQ.h" 10 | 11 | 12 | @interface LFBChannelQQZone : LFBChannelQQ 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelQQZone.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelQQZone.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelQQZone.h" 10 | 11 | @implementation LFBChannelQQZone 12 | 13 | - (instancetype)init 14 | { 15 | self = [super init]; 16 | if (self) { 17 | self.channelName = @"QQ空间"; 18 | } 19 | return self; 20 | } 21 | 22 | - (LFBChannelQQScene)scene 23 | { 24 | return LFBChannelQQSceneQQZone; 25 | } 26 | 27 | - (BOOL)couldLogin 28 | { 29 | //QQ空间不支持登录 30 | return NO; 31 | } 32 | 33 | - (LFBChannelType)channelType 34 | { 35 | return LFBChannelTypeQQZone; 36 | } 37 | 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelSinaWB.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelSinaWB.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelBase.h" 10 | 11 | 12 | @interface LFBChannelSinaWB : LFBChannelBase 13 | 14 | @end 15 | 16 | 17 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBChannelWX.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBChannelWX.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBChannelBase.h" 10 | #import 11 | 12 | @interface LFBChannelWX : LFBChannelBase 13 | @property (nonatomic, readonly) enum WXScene scene; //场景 14 | 15 | @end 16 | 17 | 18 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBDataInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBDataInfo.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBChannelHeaderFile.h" 11 | 12 | 13 | /** 14 | * 登陆用户信息 15 | */ 16 | 17 | typedef NS_ENUM(NSInteger,LFBUserSexType){ 18 | LFBUserSexTypeUnkonwn = 0, 19 | LFBUserSexTypeMale, 20 | LFBUserSexTypeFemale 21 | }; 22 | 23 | @interface LFBUserInfo : NSObject 24 | @property (nonatomic) LFBUserSexType sex; 25 | @property (nonatomic) LFBChannelType channelType; 26 | @property (nonatomic, copy) NSString *nickname; 27 | @property (nonatomic, copy) NSString *profile; 28 | @property (nonatomic, copy) NSString *province; 29 | @property (nonatomic, copy) NSString *city; 30 | @property (nonatomic, copy) NSString *country; 31 | @property (nonatomic, copy) NSString *headImgUrl; 32 | 33 | @end 34 | 35 | /** 36 | * 授权信息 37 | */ 38 | @interface LFBAuthInfo : NSObject 39 | @property (nonatomic) LFBChannelType channelType;//平台 40 | @property (nonatomic, copy) NSString *openId;//授权用户唯一标识 41 | @property (nonatomic, copy) NSString *unionId; //微信独有 42 | @property (nonatomic, copy) NSString *token;//接口调用凭证 43 | @property (nonatomic, copy) NSString *refresh_token;//用户刷新token 44 | @property (nonatomic, copy) NSString *scope;//用户授权的作用域,使用逗号(,)分隔 45 | @property (nonatomic) long long expire;//接口调用凭证超时时间, 单位(秒) 46 | 47 | 48 | 49 | @end 50 | 51 | 52 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBDataInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBDataInfo.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBDataInfo.h" 10 | 11 | @implementation LFBUserInfo 12 | 13 | @end 14 | 15 | @implementation LFBAuthInfo 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBOpProcessProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBOpProcessProtocol.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/18. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBChannelHeaderFile.h" 11 | 12 | @class LFBAuthInfo; 13 | 14 | @protocol LFBOpProcessProtocol 15 | 16 | @optional 17 | 18 | //取消操作之后调用 19 | - (void)didCancel; 20 | 21 | //失败之后调用 22 | - (void)didFail:(NSError *)error; 23 | 24 | //成功之后调用 25 | - (void)didSuccess:(id)data; 26 | 27 | @end 28 | 29 | 30 | @protocol LFBConfigProtocol 31 | 32 | //渠道对应的信息,主要是appKey,appSecret等信息 33 | - (NSDictionary *)channelInfoWithType:(LFBChannelType)channelType; 34 | 35 | @end 36 | 37 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareChannelConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareChannelConfig.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/20. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBOpProcessProtocol.h" 11 | 12 | @interface LFBShareChannelConfig : NSObject 13 | /*! 14 | * 配置分享参数 15 | * channelType 分享渠道 16 | * appkey 平台appkey 17 | * appSecret 平台appSecret 18 | * see universalLink 通用连接 19 | */ 20 | - (void)setChannelType:(LFBChannelType)channelType appKey:(NSString *)appkey appSecret:(NSString *)appSecret universalLink:(NSString *)universalLink; 21 | 22 | @end 23 | 24 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareChannelConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareChannelConfig.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/20. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBShareChannelConfig.h" 10 | 11 | @interface LFBShareChannelConfig () 12 | //渠道map 13 | @property (nonatomic, strong) NSMutableDictionary *channelInfoMap; 14 | @end 15 | 16 | @implementation LFBShareChannelConfig 17 | 18 | - (NSDictionary *)channelInfoWithType:(LFBChannelType)channelType 19 | { 20 | return self.channelInfoMap[@(channelType)]; 21 | } 22 | 23 | - (void)setChannelType:(LFBChannelType)channelType appKey:(NSString *)appkey appSecret:(NSString *)appSecret universalLink:(NSString *)universalLink{ 24 | switch (channelType) { 25 | case LFBChannelTypeWX: 26 | { 27 | if (appkey.length == 0 || appSecret.length == 0 || universalLink.length == 0) { 28 | return; 29 | } 30 | NSDictionary *wxInfo = @{@"appKey": appkey, 31 | @"appSecret": appSecret, 32 | @"normalIcon": @"icon_share_weixin", 33 | @"selectedIcon": @"icon_share_weixin", 34 | @"universalLink":universalLink.length>0 ? universalLink : @"" 35 | }; 36 | [self.channelInfoMap setObject:wxInfo forKey:@(LFBChannelTypeWX)]; 37 | } 38 | break; 39 | case LFBChannelTypePYQ: 40 | { 41 | if (appkey.length == 0 || appSecret.length == 0) { 42 | return; 43 | } 44 | NSDictionary *pyqInfo = @{@"appKey": appkey, 45 | @"appSecret": appSecret, 46 | @"normalIcon": @"icon_share_pengyouquan", 47 | @"selectedIcon": @"icon_share_pengyouquan", 48 | @"universalLink":universalLink.length>0 ? universalLink : @"" 49 | }; 50 | [self.channelInfoMap setObject:pyqInfo forKey:@(LFBChannelTypePYQ)]; 51 | } 52 | break; 53 | case LFBChannelTypeQQ: 54 | { 55 | if (appkey.length == 0) { 56 | return; 57 | } 58 | NSDictionary *qqFriendInfo = @{@"appKey":appkey, 59 | @"normalIcon": @"icon_share_qq", 60 | @"selectedIcon": @"icon_share_qq", 61 | @"universalLink":universalLink.length>0 ? universalLink : @"" 62 | }; 63 | [self.channelInfoMap setObject:qqFriendInfo forKey:@(LFBChannelTypeQQ)]; 64 | } 65 | break; 66 | case LFBChannelTypeQQZone: 67 | { 68 | if (appkey.length == 0) { 69 | return; 70 | } 71 | NSDictionary *qqZoneInfo = @{@"appKey": appkey, 72 | @"normalIcon": @"icon_share_zone", 73 | @"selectedIcon": @"icon_share_zone", 74 | @"universalLink":universalLink.length>0 ? universalLink : @"" 75 | }; 76 | [self.channelInfoMap setObject:qqZoneInfo forKey:@(LFBChannelTypeQQZone)]; 77 | } 78 | break; 79 | case LFBChannelTypeSinaWB: 80 | { 81 | if (appkey.length == 0 || appSecret.length == 0) { 82 | return; 83 | } 84 | NSDictionary *wbInfo = @{@"appKey": appkey, 85 | @"appSecret": appSecret, 86 | @"normalIcon": @"icon_share_weibo", 87 | @"selectedIcon": @"icon_share_weibo", 88 | @"universalLink":universalLink.length>0 ? universalLink : @"" 89 | }; 90 | [self.channelInfoMap setObject:wbInfo forKey:@(LFBChannelTypeSinaWB)]; 91 | } 92 | break; 93 | 94 | default: 95 | break; 96 | } 97 | } 98 | 99 | 100 | #pragma mark - Getter & Setter 101 | - (NSMutableDictionary *)channelInfoMap{ 102 | if (!_channelInfoMap) { 103 | _channelInfoMap = [NSMutableDictionary dictionary]; 104 | } 105 | return _channelInfoMap; 106 | } 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareInfo.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBShareDefine.h" 11 | #import 12 | 13 | 14 | @interface LFBShareInfo : NSObject 15 | 16 | @end 17 | 18 | @interface LFBShareText : LFBShareInfo 19 | @property (nonatomic, copy) NSString *text; 20 | 21 | @end 22 | 23 | @interface LFBShareMedia : LFBShareInfo 24 | @property (nonatomic, copy) NSString *title; 25 | @property (nonatomic, copy) NSString *desc; 26 | 27 | //内容缩略图,一般<32K,如果超过,会导致接口调用失败 28 | @property (nonatomic) NSData *thumbnailData; 29 | @property (nonatomic) NSData *originalImageData; 30 | 31 | @end 32 | 33 | @interface LFBShareImage : LFBShareMedia 34 | @property (nonatomic) UIImage *image; 35 | 36 | @end 37 | 38 | @interface LFBShareWebPage : LFBShareMedia 39 | @property (nonatomic, copy) NSString *url; 40 | 41 | @end 42 | 43 | @interface LFBShareMusic : LFBShareMedia 44 | //音乐网页url地址 45 | @property (nonatomic, copy) NSString *musicUrl; 46 | //音乐数据流url 47 | @property (nonatomic, copy) NSString *musicDataUrl; 48 | //音乐lowband网页url地址 49 | @property (nonatomic, copy) NSString *musicLowBandUrl; 50 | //音乐lowband数据流url 51 | @property (nonatomic, copy) NSString *musicLowBandDataUrl; 52 | 53 | @end 54 | 55 | @interface LFBShareVideo : LFBShareMedia 56 | //视频网页的url,不能为空且长度不能超过255 57 | @property (nonatomic, strong) NSString *videoUrl; 58 | //视频数据流url,长度有限制,不能超过255,否则直接分享失败 59 | @property (nonatomic, strong) NSString *videoStreamUrl; 60 | //视频lowband网页的url 61 | @property (nonatomic, strong) NSString *videoLowBandUrl; 62 | //视频lowband数据流url 63 | @property (nonatomic, strong) NSString *videoLowBandStreamUrl; 64 | 65 | @end 66 | 67 | @interface LFBShareApplet : LFBShareInfo 68 | /** 分享小程序标题 */ 69 | @property (nonatomic, copy) NSString *title; 70 | /** 分享小程序描述 */ 71 | @property (nonatomic, copy) NSString *desc; 72 | /** 兼容低版本的网页链接,备注:限制长度不超过10KB --小程序分享字段 */ 73 | @property (nonatomic, strong) NSString *webPageUrl; 74 | /** 小程序的用户名*/ 75 | @property (nonatomic, strong) NSString *userName; 76 | /** 小程序页面路径 */ 77 | @property (nonatomic, strong) NSString *path; 78 | /** 小程序新版本的预览图二进制数据, < 128KB */ 79 | @property (nonatomic, strong) NSData *hdImageData; 80 | /** 小程序缩略图,< 32KB,新版本优先 */ 81 | @property (nonatomic, strong) NSData *thumbData; 82 | /** 是否使用带shareTicket的分享 */ 83 | @property (nonatomic, assign) BOOL withShareTicket; 84 | /** 小程序的类型 */ 85 | @property (nonatomic, assign) LFBShareMiniInfoType miniProgramType; 86 | @end 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareInfo.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBShareInfo.h" 10 | 11 | @implementation LFBShareInfo 12 | 13 | @end 14 | 15 | @implementation LFBShareText 16 | 17 | @end 18 | 19 | @implementation LFBShareMedia 20 | 21 | @end 22 | 23 | @implementation LFBShareImage 24 | 25 | @end 26 | 27 | @implementation LFBShareWebPage 28 | 29 | @end 30 | 31 | @implementation LFBShareMusic 32 | 33 | @end 34 | 35 | @implementation LFBShareVideo 36 | 37 | 38 | @end 39 | 40 | @implementation LFBShareApplet 41 | 42 | - (void)setHdImageData:(NSData *)hdImageData { 43 | _hdImageData = [self condenceQualityWithObj:hdImageData maxLength:120*1024]; 44 | } 45 | 46 | - (void)setThumbData:(NSData *)thumbData { 47 | _thumbData = [self condenceQualityWithObj:thumbData maxLength:30*1024]; 48 | } 49 | 50 | - (NSData *)condenceQualityWithObj:(NSData *)obj maxLength:(NSInteger)maxLength { 51 | 52 | UIImage *image = nil; 53 | if (obj.length < maxLength) { 54 | return obj; 55 | }else{ 56 | image = [UIImage imageWithData:obj]; 57 | } 58 | CGFloat compression = 1; 59 | NSData *data = UIImageJPEGRepresentation(image, compression); 60 | if (data.length < maxLength) return data; 61 | CGFloat max = 1; 62 | CGFloat min = 0; 63 | for (int i = 0; i < 6; ++i) { 64 | compression = (max + min) / 2; 65 | data = UIImageJPEGRepresentation(image, compression); 66 | if (data.length < maxLength * 0.9) { 67 | min = compression; 68 | } else if (data.length > maxLength) { 69 | max = compression; 70 | } else { 71 | break; 72 | } 73 | } 74 | if (data.length < maxLength) return data; 75 | //连续6次压缩还是大于目标尺寸,则进行尺寸压缩 76 | UIImage *resultImage = [UIImage imageWithData:data]; 77 | NSUInteger lastDataLength = 0; 78 | while (data.length > maxLength && data.length != lastDataLength) { 79 | lastDataLength = data.length; 80 | CGFloat ratio = (CGFloat)maxLength / data.length; 81 | //这里之所以用开方是因为当一个数无限次开发,这个数字无限接近1 82 | CGSize size = CGSizeMake((NSUInteger)(resultImage.size.width * sqrtf(ratio)), 83 | (NSUInteger)(resultImage.size.height * sqrtf(ratio))); 84 | UIGraphicsBeginImageContext(size); 85 | [resultImage drawInRect:CGRectMake(0, 0, size.width, size.height)]; 86 | resultImage = UIGraphicsGetImageFromCurrentImageContext(); 87 | UIGraphicsEndImageContext(); 88 | data = UIImageJPEGRepresentation(resultImage, compression); 89 | } 90 | return data; 91 | } 92 | 93 | @end 94 | 95 | 96 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareCollectionCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareCollectionCell.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | 10 | #import 11 | #import "LFBChannelBase.h" 12 | 13 | 14 | static NSString *const LFBShareCollectionViewCellIdentifier = @"LFBShareCollectionViewCellIdentifier"; 15 | @interface LFBShareCollectionCell : UICollectionViewCell 16 | 17 | - (void)setPlatform:(LFBChannelBase *)channel; 18 | 19 | @end 20 | 21 | 22 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareCollectionCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareCollectionCell.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBShareCollectionCell.h" 10 | #import "LFBChannelManager.h" 11 | #import "Masonry.h" 12 | 13 | @interface LFBShareCollectionCell () 14 | @property (nonatomic) UIImageView *channelIcon; 15 | @property (nonatomic) UILabel *titleLabel; 16 | @end 17 | 18 | @implementation LFBShareCollectionCell 19 | 20 | - (instancetype)initWithFrame:(CGRect)frame 21 | { 22 | self = [super initWithFrame:frame]; 23 | if (self) { 24 | [self addSubviews]; 25 | [self initLayout]; 26 | } 27 | return self; 28 | } 29 | 30 | - (void)addSubviews{ 31 | [self.contentView addSubview:self.channelIcon]; 32 | [self.contentView addSubview:self.titleLabel]; 33 | } 34 | 35 | - (void)initLayout{ 36 | [self.channelIcon mas_makeConstraints:^(MASConstraintMaker *make) { 37 | make.left.top.mas_equalTo(self); 38 | make.width.height.mas_equalTo(50); 39 | }]; 40 | [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { 41 | make.top.mas_equalTo(self.channelIcon.mas_bottom).mas_offset(8); 42 | make.centerX.mas_equalTo(self); 43 | }]; 44 | } 45 | 46 | - (void)setPlatform:(LFBChannelBase *)channel{ 47 | NSString *title = nil; 48 | NSString *image = nil; 49 | NSString *highlightedImage = nil; 50 | NSDictionary *imageInfo = nil; 51 | if ([[LFBChannelManager sharedManager].delegate respondsToSelector:@selector(channelInfoWithType:)]) { 52 | imageInfo = [[LFBChannelManager sharedManager].delegate channelInfoWithType:channel.channelType]; 53 | } 54 | switch (channel.channelType) { 55 | case LFBChannelTypeWX: 56 | title = @"微信"; 57 | image = imageInfo[@"normalIcon"]; 58 | highlightedImage = imageInfo[@"selectedIcon"]; 59 | break; 60 | case LFBChannelTypePYQ: 61 | title = @"朋友圈"; 62 | image = imageInfo[@"normalIcon"]; 63 | highlightedImage = imageInfo[@"selectedIcon"]; 64 | break; 65 | case LFBChannelTypeQQ: 66 | title = @"QQ"; 67 | image = imageInfo[@"normalIcon"]; 68 | highlightedImage = imageInfo[@"selectedIcon"]; 69 | break; 70 | case LFBChannelTypeQQZone: 71 | title = @"QQ空间"; 72 | image = imageInfo[@"normalIcon"]; 73 | highlightedImage = imageInfo[@"selectedIcon"]; 74 | break; 75 | case LFBChannelTypeSinaWB: 76 | title = @"新浪微博"; 77 | image = imageInfo[@"normalIcon"]; 78 | highlightedImage = imageInfo[@"selectedIcon"]; 79 | break; 80 | default: 81 | break; 82 | } 83 | self.titleLabel.text = title; 84 | if (image.length > 0) { 85 | self.channelIcon.image = [UIImage imageNamed:image]; 86 | } 87 | if (highlightedImage.length > 0) { 88 | self.channelIcon.highlightedImage = [UIImage imageNamed:highlightedImage]; 89 | } 90 | } 91 | 92 | #pragma mark - getter & setter 93 | - (UIImageView *)channelIcon{ 94 | return _channelIcon?:({ 95 | _channelIcon = [[UIImageView alloc]init]; 96 | _channelIcon.layer.cornerRadius = 25; 97 | _channelIcon; 98 | }); 99 | } 100 | 101 | - (UILabel *)titleLabel{ 102 | return _titleLabel?:({ 103 | _titleLabel = [[UILabel alloc]init]; 104 | _titleLabel.textAlignment = NSTextAlignmentCenter; 105 | _titleLabel.font = [UIFont systemFontOfSize:12]; 106 | _titleLabel.userInteractionEnabled = YES; 107 | _titleLabel.textColor = [UIColor colorWithRed:30/255.0f green:30/255.0f blue:30/255.0f alpha:1]; 108 | _titleLabel; 109 | }); 110 | } 111 | 112 | 113 | 114 | 115 | @end 116 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareCollectionView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareCollectionView.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBShareDefine.h" 11 | 12 | 13 | @interface LFBShareCollectionView : UICollectionView 14 | @property (nonatomic, strong) NSArray *platforms; 15 | @property (nonatomic,copy) sharePlateformClicked platformClicked; 16 | 17 | @end 18 | 19 | 20 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareCollectionView.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareCollectionView.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBShareCollectionView.h" 10 | #import "LFBShareCollectionCell.h" 11 | #import "LFBChannelBase.h" 12 | 13 | @implementation LFBShareCollectionView 14 | 15 | - (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout{ 16 | if (self = [super initWithFrame:frame collectionViewLayout:layout]) { 17 | self.delegate = self; 18 | self.dataSource = self; 19 | [self registerClass:[LFBShareCollectionCell class] forCellWithReuseIdentifier:LFBShareCollectionViewCellIdentifier]; 20 | } 21 | return self; 22 | } 23 | 24 | - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ 25 | return 1; 26 | } 27 | 28 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ 29 | return self.platforms.count; 30 | } 31 | 32 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 33 | LFBShareCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:LFBShareCollectionViewCellIdentifier forIndexPath:indexPath]; 34 | LFBChannelBase *channel = self.platforms[indexPath.row]; 35 | [cell setPlatform:channel]; 36 | return cell; 37 | } 38 | 39 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ 40 | LFBChannelBase *channel = self.platforms[indexPath.row]; 41 | if (self.platformClicked) { 42 | self.platformClicked(self, channel); 43 | } 44 | } 45 | 46 | - (void)setPlatforms:(NSArray *)platforms{ 47 | _platforms = platforms; 48 | [self reloadData]; 49 | } 50 | 51 | 52 | 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareDefine.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareDefine.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/25. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #ifndef LFBShareDefine_h 10 | #define LFBShareDefine_h 11 | #import "LFBChannelHeaderFile.h" 12 | 13 | 14 | 15 | typedef NS_ENUM(NSInteger,LFBShareInfoType){ 16 | LFBShareInfoTypeText,//分享文本 17 | LFBShareInfoTypeMedia,//分享媒体 18 | LFBShareInfoTypeMusic,//分享音乐 19 | LFBShareInfoTypeWeb,//分享网页 20 | LFBShareInfoTypeImage,//分享图片 21 | LFBShareInfoTypeVideo,//分享视频 22 | LFBShareInfoTypeApplet//分享小程序 23 | }; 24 | 25 | typedef NS_ENUM(NSInteger,LFBShareState){ 26 | LFBShareStateSuccess,//分享成功 27 | LFBShareStateFail,//分享失败 28 | LFBShareStateCancel//取消分享 29 | }; 30 | 31 | typedef NS_ENUM(NSInteger,LFBShareMiniInfoType){ 32 | LFBShareMiniInfoTypeRelease,//分享小程序正式版 33 | LFBShareMiniInfoTypeTest,//分享小程序测试版 34 | LFBShareMiniInfoTypePreview//分享小程序体验版 35 | }; 36 | 37 | 38 | typedef void(^sharePlateformClicked)(id sender, id object); 39 | typedef void(^shareCompletion)(id sender,LFBChannelType channelType,LFBShareState shareState); 40 | 41 | #define KShare_SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) 42 | #define KShare_SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height) 43 | 44 | // 判断是否是X 45 | #define iPhoneX ((KShare_SCREEN_WIDTH == 375.f && KShare_SCREEN_HEIGHT == 812.f) || (KShare_SCREEN_WIDTH == 812.f && KShare_SCREEN_HEIGHT == 375.f)) 46 | 47 | //底部安全距离 48 | #define TabbarSafeBottomMargin (iPhoneX ? 34.f : 0.f) 49 | 50 | #define wwww(object) autoreleasepool{} __weak __typeof__(object) weak##_##object = object; 51 | #define ssss(object) autoreleasepool{} __typeof__(object) object = weak##_##object; 52 | 53 | #endif /* LFBShareDefine_h */ 54 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareMoudle.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareMoudle.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/25. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | #import "LFBShareDefine.h" 9 | #import "LFBChannelHeaderFile.h" 10 | #import 11 | 12 | 13 | @interface LFBShareMoudle : NSObject 14 | 15 | /** 16 | * 该渠道是否支持分享 17 | * 未安装该渠道应用,或者安装的该渠道 18 | * 应用版本过低时可导致无法分享 19 | * @param channel LFBChannelType 分享渠道 20 | */ 21 | + (BOOL)couldShareWithChannel:(LFBChannelType)channel; 22 | /** 23 | * 第三方分享弹框,弹出支持分享渠道 24 | * @param object LFBSharePlateforms类型model 25 | */ 26 | + (void)showShareViewWithObject:(id)object; 27 | /** 28 | * 第三方分享 29 | * @param object LFBSharePlateforms类型model 30 | */ 31 | + (void)shareObject:(id)object; 32 | /** 33 | * 第三方分享 34 | * @param object LFBSharePlateforms类型model 35 | * @param completionBlock 分享完成回调 36 | */ 37 | + (void)shareObject:(id)object completion:(shareCompletion)completionBlock; 38 | /** 39 | * 第三方登录 40 | * @param channelType 需要登录的平台 41 | * @param success 成功回调 参数是LFBAuthInfo、LFBChannelBase 42 | * @param fail 失败回调 参数是 NSError、LFBChannelBase 43 | * @param cancel 取消回调 参数是 LFBChannelBase 44 | */ 45 | + (void)loginWithChannelType:(LFBChannelType)channelType success:(LFBOpSuccessBlock)success fail:(LFBOpFailBlock)fail cancel:(LFBOpCancelBlock)cancel; 46 | 47 | 48 | 49 | 50 | @end 51 | 52 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBShareMoudleView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareMoudleView.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/25. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBShareDefine.h" 10 | #import 11 | 12 | 13 | 14 | @interface LFBShareMoudleView : UIView 15 | //能够支持分享的平台 16 | @property (nonatomic, strong) NSArray *plateforms; 17 | //选择分享的平台 18 | @property (nonatomic, copy) sharePlateformClicked clickPlateform; 19 | 20 | - (void)show; 21 | - (void)dismiss; 22 | 23 | @end 24 | 25 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBSharePlateforms.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareModel.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LFBShareInfo.h" 11 | #import "LFBShareDefine.h" 12 | #import 13 | #import "LFBChannelHeaderFile.h" 14 | 15 | 16 | @interface LFBSharePlateforms : NSObject 17 | /** 分享平台类型(当通过弹框选择是不需要传,其他渠道必传) */ 18 | @property (nonatomic) LFBChannelType shareType; 19 | /** 分享数据类型(必传) */ 20 | @property (nonatomic) LFBShareInfoType shareInfoType; 21 | 22 | /** 23 | * 以下内容根据个人需要选择填写 24 | */ 25 | 26 | /** 分享标题 */ 27 | @property (nonatomic, strong) NSString *title; 28 | /** 分享标题注解 */ 29 | @property (nonatomic, strong) NSString *desc; 30 | /** 分享文本,仅用于纯文字分享 */ 31 | @property (nonatomic, strong) NSString *text; 32 | /** 分享内容缩略图 */ 33 | @property (nonatomic, strong) NSData *thubnailData; 34 | /** 分享内容原图 */ 35 | @property (nonatomic, strong) NSData *originalImageData; 36 | /** 分享URL */ 37 | @property (nonatomic, strong) NSString *url; 38 | /** 分享图片,针对本地图片分享 */ 39 | @property (nonatomic, strong) UIImage *image; 40 | /** 分享音乐网页链接地址 */ 41 | @property (nonatomic, strong) NSString *musicUrl; 42 | /** 分享音乐低频段网页链接地址 */ 43 | @property (nonatomic, strong) NSString *musicLowBandUrl; 44 | /** 分享音乐数据下载链接地址 */ 45 | @property (nonatomic, strong) NSString *musicDataUrl; 46 | /** 分享音乐低频段数据下载链接地址 */ 47 | @property (nonatomic, strong) NSString *musicLowBandDataUrl; 48 | /** 分享视频网页链接地址 */ 49 | @property (nonatomic, strong) NSString *videoUrl; 50 | /** 分享视频低频段网页链接地址 */ 51 | @property (nonatomic, strong) NSString *videoLowBandUrl; 52 | /** 分享视频流数据下载链接地址 */ 53 | @property (nonatomic, strong) NSString *videoStreamUrl; 54 | /** 分享视频低频段数据流下载链接地址 */ 55 | @property (nonatomic, strong) NSString *videoLowBandStreamUrl; 56 | /** 兼容低版本的网页链接,备注:限制长度不超过10KB --小程序专用分享字段 */ 57 | @property (nonatomic, strong) NSString *webPageUrl; 58 | /** 小程序的用户名,小程序原始ID获取方法,登陆小程序管理后台-设置-基本设置-账号s信息 */ 59 | @property (nonatomic, strong) NSString *userName; 60 | /** 小程序页面路径 */ 61 | @property (nonatomic, strong) NSString *path; 62 | /** 小程序新版本的预览图二进制数据,6.5.9及以上版本微信客户端支持,限制128KB,自定义b图片建议长宽比5:4 */ 63 | @property (nonatomic, strong) NSData *hdImageData; 64 | /** 是否使用带shareTicket的分享,小程序被二次打开时可以获取到更多信息,例如群的标识 */ 65 | @property (nonatomic, assign) BOOL withShareTicket; 66 | /** 小程序的类型,默认正式版,1.8.1及以上版本开发者工具包支持分享开发板和体验版 */ 67 | @property (nonatomic, assign) LFBShareMiniInfoType miniProgramType; 68 | 69 | /*** 以下方法调用者无须关心 */ 70 | /** 构建分享model */ 71 | - (LFBShareInfo *)shareModel; 72 | /** 重置参数 */ 73 | - (void)resetParams; 74 | 75 | @end 76 | 77 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/LFBSharePlateforms.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBShareModel.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "LFBSharePlateforms.h" 10 | 11 | @implementation LFBSharePlateforms 12 | 13 | - (LFBShareInfo *)shareModel{ 14 | if (_shareInfoType == LFBShareInfoTypeWeb) { 15 | LFBShareWebPage *web = [LFBShareWebPage new]; 16 | web.title = self.title; 17 | web.desc = self.desc; 18 | web.url = self.url; 19 | web.thumbnailData = self.thubnailData; 20 | web.originalImageData = self.originalImageData; 21 | return web; 22 | }else if (_shareInfoType == LFBShareInfoTypeText){ 23 | LFBShareText *text = [LFBShareText new]; 24 | text.text = self.text; 25 | return text; 26 | }else if (_shareInfoType == LFBShareInfoTypeMedia){ 27 | LFBShareMedia *media = [LFBShareMedia new]; 28 | media.title = self.title; 29 | media.desc = self.desc; 30 | media.thumbnailData = self.thubnailData; 31 | media.originalImageData = self.originalImageData; 32 | return media; 33 | }else if (_shareInfoType == LFBShareInfoTypeImage){ 34 | LFBShareImage *image = [LFBShareImage new]; 35 | image.title = self.title; 36 | image.desc = self.desc; 37 | image.image = self.image; 38 | image.thumbnailData = self.thubnailData; 39 | image.originalImageData = self.originalImageData; 40 | return image; 41 | }else if (_shareInfoType == LFBShareInfoTypeMusic){ 42 | LFBShareMusic *music = [LFBShareMusic new]; 43 | music.title = self.title; 44 | music.desc = self.desc; 45 | music.thumbnailData = self.thubnailData; 46 | music.originalImageData = self.originalImageData; 47 | music.musicUrl = self.musicUrl; 48 | music.musicLowBandUrl = self.musicLowBandUrl; 49 | music.musicDataUrl = self.musicDataUrl; 50 | music.musicLowBandDataUrl = self.musicLowBandDataUrl; 51 | return music; 52 | }else if (_shareInfoType == LFBShareInfoTypeVideo){ 53 | LFBShareVideo *video = [LFBShareVideo new]; 54 | video.title = self.title; 55 | video.desc = self.desc; 56 | video.thumbnailData = self.thubnailData; 57 | video.originalImageData = self.originalImageData; 58 | video.videoUrl = self.videoUrl; 59 | video.videoLowBandUrl = self.videoLowBandUrl; 60 | video.videoStreamUrl = self.videoStreamUrl; 61 | video.videoLowBandStreamUrl = self.videoLowBandStreamUrl; 62 | return video; 63 | }else if (_shareInfoType == LFBShareInfoTypeApplet){ 64 | LFBShareApplet *applet = [LFBShareApplet new]; 65 | applet.title = self.title; 66 | applet.path = self.path; 67 | applet.desc = self.desc; 68 | applet.webPageUrl = self.webPageUrl; 69 | applet.userName = self.userName; 70 | applet.hdImageData = self.hdImageData; 71 | applet.thumbData = self.thubnailData; 72 | applet.withShareTicket = self.withShareTicket; 73 | applet.miniProgramType = self.miniProgramType; 74 | return applet; 75 | } 76 | return nil; 77 | } 78 | 79 | - (void)resetParams{ 80 | _shareType = -1; 81 | _shareInfoType = -1; 82 | _title = nil; 83 | _desc = nil; 84 | _text = nil; 85 | _thubnailData = nil; 86 | _originalImageData = nil; 87 | _url = nil; 88 | _image = nil; 89 | _musicUrl = nil; 90 | _musicLowBandUrl= nil; 91 | _musicDataUrl = nil; 92 | _musicLowBandDataUrl = nil; 93 | _videoUrl = nil; 94 | _videoLowBandUrl = nil; 95 | _videoStreamUrl = nil; 96 | _videoLowBandStreamUrl = nil; 97 | _webPageUrl = nil; 98 | _userName = nil; 99 | _path = nil; 100 | _hdImageData = nil; 101 | _withShareTicket = NO; 102 | _miniProgramType = LFBShareMiniInfoTypeRelease; 103 | } 104 | 105 | @end 106 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/UIColor+RGB.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+RGB.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface UIColor (RGB) 13 | 14 | + (UIColor *)colorWithString:(NSString *)colorStr; 15 | 16 | + (UIColor *)colorWithString:(NSString *)colorStr alpha:(float)alpha; 17 | 18 | @end 19 | 20 | 21 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBShareMoudle/UIColor+RGB.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+RGB.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/27. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "UIColor+RGB.h" 10 | 11 | @implementation UIColor (RGB) 12 | 13 | + (UIColor *)colorWithString:(NSString *)colorStr 14 | { 15 | NSString *cString = [[colorStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; 16 | if ([cString length] < 6) return [UIColor clearColor]; 17 | if ([cString hasPrefix:@"0X"] || [cString hasPrefix:@"0x"]) cString = [cString substringFromIndex:2]; 18 | if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1]; 19 | 20 | if ([cString length] != 6 && [cString length] != 8) return [UIColor clearColor]; 21 | NSRange range; 22 | range.location = 0; 23 | range.length = 2; 24 | NSString *rString = [cString substringWithRange:range]; 25 | 26 | range.location = 2; 27 | NSString *gString = [cString substringWithRange:range]; 28 | 29 | range.location = 4; 30 | NSString *bString = [cString substringWithRange:range]; 31 | 32 | NSString *aString = @"FF"; 33 | if (cString.length == 8) 34 | { 35 | range.location = 6; 36 | aString = [cString substringWithRange:range]; 37 | } 38 | unsigned int r, g, b, a; 39 | [[NSScanner scannerWithString:rString] scanHexInt:&r]; 40 | [[NSScanner scannerWithString:gString] scanHexInt:&g]; 41 | [[NSScanner scannerWithString:bString] scanHexInt:&b]; 42 | [[NSScanner scannerWithString:aString] scanHexInt:&a]; 43 | 44 | return [UIColor colorWithRed:((float) r / 255.0f) 45 | green:((float) g / 255.0f) 46 | blue:((float) b / 255.0f) 47 | alpha:((float) a / 255.0f)]; 48 | } 49 | 50 | + (UIColor *)colorWithString:(NSString *)colorStr alpha:(float)alpha 51 | { 52 | NSString *cString = [[colorStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; 53 | if ([cString length] < 6) return [UIColor clearColor]; 54 | if ([cString hasPrefix:@"0X"] || [cString hasPrefix:@"0x"]) cString = [cString substringFromIndex:2]; 55 | if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1]; 56 | 57 | if ([cString length] != 6) return [UIColor clearColor]; 58 | NSRange range; 59 | range.location = 0; 60 | range.length = 2; 61 | NSString *rString = [cString substringWithRange:range]; 62 | 63 | range.location = 2; 64 | NSString *gString = [cString substringWithRange:range]; 65 | 66 | range.location = 4; 67 | NSString *bString = [cString substringWithRange:range]; 68 | unsigned int r, g, b; 69 | [[NSScanner scannerWithString:rString] scanHexInt:&r]; 70 | [[NSScanner scannerWithString:gString] scanHexInt:&g]; 71 | [[NSScanner scannerWithString:bString] scanHexInt:&b]; 72 | 73 | return [UIColor colorWithRed:((float) r / 255.0f) 74 | green:((float) g / 255.0f) 75 | blue:((float) b / 255.0f) 76 | alpha:alpha]; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /LFBSocialSDK/LFBSocialSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // LFBSocialSDK.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2019/4/12. 6 | // Copyright © 2019 liufubo. All rights reserved. 7 | // 8 | 9 | #ifndef LFBSocialSDK_h 10 | #define LFBSocialSDK_h 11 | 12 | #import "LFBChannelBase.h" 13 | #import "LFBChannelManager.h" 14 | #import "LFBSharePlateforms.h" 15 | #import "LFBShareMoudle.h" 16 | #import "LFBShareMoudleView.h" 17 | #import "LFBShareCollectionView.h" 18 | #import "LFBShareChannelConfig.h" 19 | #import "LFBChannelWX.h" 20 | #import "LFBChannelPYQ.h" 21 | #import "LFBChannelQQ.h" 22 | #import "LFBChannelQQZone.h" 23 | #import "LFBChannelSinaWB.h" 24 | #import "LFBDataInfo.h" 25 | #import "LFBShareInfo.h" 26 | 27 | #endif /* LFBSocialSDK_h */ 28 | -------------------------------------------------------------------------------- /LFBSocialSDK/readme.md: -------------------------------------------------------------------------------- 1 | 分享功能说明文档 2 | 3 | 说明:该文档目的在于帮助新手快速熟悉分享框架功能使用,目前框架仅支持微信分享、微信朋友圈分享、QQ分享、QQ空间分享、新浪微博分享;以及以上平台登录功能封装;下面仅针对分享功能做说明,希望对使用本人分享框架的朋友有所帮助。 4 | 5 | 分享功能必传参数 6 | 1.shareType(分享平台) 7 | 2.shareInfoType 分享数据类型 (text,web,music,video,image,applet) 8 | 9 | 一:分享纯文本 10 | 必须参数: 11 | 1.text 分享文本 12 | 13 | 二:分享图片 14 | 必须参数: 15 | 1.image 分享的图片,针对本地图片 16 | 2.title 分享标题 17 | 3.desc 标题描述 18 | 4.thumbnailData 内容缩略图,一般<32k,如果超过,会导致接口调用失败 19 | 5.originalImageData 内容原始图片 20 | 21 | 三:网页分享 22 | 必须参数: 23 | 1.url 分享url链接地址 24 | 2.title 分享标题 25 | 3.desc 标题描述 26 | 4.thumbnailData 内容缩略图,一般<32k,如果超过,会导致接口调用失败 27 | 5.originalImageData 内容原始图片 28 | 29 | 四:音乐分享 30 | 必须参数: 31 | 1.title 分享标题 32 | 2.desc 标题描述 33 | 3.thumbnailData 内容缩略图,一般<32k,如果超过,会导致接口调用失败 34 | 4.originalImageData 内容原始图片 35 | 5.musicUrl 分享音乐网页链接地址 36 | 6.musicLowBandUrl 分享音乐低频段网页链接地址 37 | 7.musicDataUrl 分享音乐数据下载链接地址 38 | 8.musicLowBandDataUrl 分享音乐低频段数据下载链接地址 39 | 40 | 五:视频分享 41 | 必须参数: 42 | 1.title 分享标题 43 | 2.desc 标题描述 44 | 3.thumbnailData 内容缩略图,一般<32k,如果超过,会导致接口调用失败 45 | 4.originalImageData 内容原始图片 46 | 5.videoUrl 分享视频网页链接地址 47 | 6.videoLowBandUrl 分享视频低频段网页链接地址 48 | 7.videoStreamUrl 分享视频流数据下载链接地址 49 | 8.videoLowBandStreamUrl 分享视频低频段数据流下载链接地址 50 | 51 | 六:小程序分享 52 | 必须参数: 53 | 1.title 分享标题 54 | 2.desc 标题描述 55 | 3.webPageUrl 兼容低版本的网页链接,限制长度不超过10KB 56 | 4.userName 小程序的用户名,小程序原始ID获取方法,登陆小程序管理后台-设置-基本设置-账号信息 57 | 5.path 小程序页面路径 58 | 6.hdImageData 小程序新版本的预览图二进制数据,6.5.9及以上版本微信客户端支持,限制128KB,自定义b图片建议长宽比5:4 59 | 7.withShareTicket 是否使用带shareTicket的分享,小程序被二次打开时可以获取到更多信息,例如群的标识 60 | 8.miniProgramType 小程序分享类型,默认正式版,1.8.1及以上版本开发者工具包支持分享开发板和体验版 61 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yxyt.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yxyt.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yxyt.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildLocationStyle 6 | UseAppPreferences 7 | BuildSystemType 8 | Original 9 | CustomBuildLocationType 10 | RelativeToDerivedData 11 | DerivedDataLocationStyle 12 | Default 13 | EnabledFullIndexStoreVisibility 14 | 15 | IssueFilterStyle 16 | ShowActiveSchemeOnly 17 | LiveSourceIssuesEnabled 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LFBSocialSDKDemo.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 4 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 138510B621C7431600CE6309 16 | 17 | primary 18 | 19 | 20 | 138510CE21C7431700CE6309 21 | 22 | primary 23 | 24 | 25 | 138510D921C7431700CE6309 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcworkspace/xcuserdata/yxyt.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDKDemo.xcworkspace/xcuserdata/yxyt.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LFBSocialSDKDemo.xcworkspace/xcuserdata/yxyt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/AppDelegate+Scheme.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate+Scheme.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/26. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | 12 | @interface AppDelegate (Scheme) 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/AppDelegate+Scheme.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate+Scheme.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/26. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate+Scheme.h" 10 | #import "LFBChannelManager.h" 11 | 12 | @implementation AppDelegate (Scheme) 13 | 14 | - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{ 15 | if (@available(iOS 9.0, *)) { 16 | return [self handlerOuterURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]]; 17 | } 18 | return YES; 19 | } 20 | 21 | - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ 22 | return [self handlerOuterURL:url sourceApplication:nil]; 23 | } 24 | 25 | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ 26 | return [self handlerOuterURL:url sourceApplication:sourceApplication]; 27 | } 28 | 29 | - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler { 30 | return [[LFBChannelManager sharedManager] handleOpenUniversalLink:userActivity]; 31 | } 32 | 33 | - (BOOL)handlerOuterURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication{ 34 | return [[LFBChannelManager sharedManager] handleOpenURL:url]; 35 | } 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "LFBChannelManager.h" 11 | #import "LFBShareChannelConfig.h" 12 | 13 | @interface AppDelegate () 14 | 15 | @end 16 | 17 | @implementation AppDelegate 18 | 19 | 20 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 21 | [self configChannel]; 22 | return YES; 23 | } 24 | 25 | - (void)configChannel{ 26 | LFBShareChannelConfig *config = [[LFBShareChannelConfig alloc]init]; 27 | [[LFBChannelManager sharedManager] setDelegate:config]; 28 | [config setChannelType:LFBChannelTypeWX appKey:@"wx512bbc9e05bf9db0" appSecret:@"1d44d80947bb3821506e440116f73168" universalLink:@"https://api.eyxyt.com"]; 29 | [config setChannelType:LFBChannelTypePYQ appKey:@"wx512bbc9e05bf9db0" appSecret:@"1d44d80947bb3821506e440116f73168" universalLink:nil]; 30 | [config setChannelType:LFBChannelTypeQQ appKey:@"1101053067" appSecret:nil universalLink:nil]; 31 | [config setChannelType:LFBChannelTypeQQZone appKey:@"1101053067" appSecret:nil universalLink:nil]; 32 | [config setChannelType:LFBChannelTypeSinaWB appKey:@"1843267010" appSecret:@"b2f5b2b661babaa3c01b57312decffd7" universalLink:nil]; 33 | } 34 | 35 | 36 | - (void)applicationWillResignActive:(UIApplication *)application { 37 | // 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. 38 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 39 | } 40 | 41 | 42 | - (void)applicationDidEnterBackground:(UIApplication *)application { 43 | // 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. 44 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 45 | } 46 | 47 | 48 | - (void)applicationWillEnterForeground:(UIApplication *)application { 49 | // 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. 50 | } 51 | 52 | 53 | - (void)applicationDidBecomeActive:(UIApplication *)application { 54 | // 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. 55 | } 56 | 57 | 58 | - (void)applicationWillTerminate:(UIApplication *)application { 59 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 60 | } 61 | 62 | 63 | 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Assets.xcassets/bg_default_01.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "bg_default_01@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Assets.xcassets/bg_default_01.imageset/bg_default_01@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDKDemo/Assets.xcassets/bg_default_01.imageset/bg_default_01@3x.png -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleURLTypes 20 | 21 | 22 | CFBundleTypeRole 23 | Editor 24 | CFBundleURLName 25 | weixin 26 | CFBundleURLSchemes 27 | 28 | wx512bbc9e05bf9db0 29 | 30 | 31 | 32 | CFBundleTypeRole 33 | Editor 34 | CFBundleURLName 35 | qq 36 | CFBundleURLSchemes 37 | 38 | tencent1101053067 39 | 40 | 41 | 42 | CFBundleTypeRole 43 | Editor 44 | CFBundleURLName 45 | sinaweibo 46 | CFBundleURLSchemes 47 | 48 | wb3253877454 49 | 50 | 51 | 52 | CFBundleVersion 53 | $(CURRENT_PROJECT_VERSION) 54 | LSApplicationQueriesSchemes 55 | 56 | weixinULAPI 57 | weixin 58 | wechat 59 | mqqapi 60 | mqq 61 | mqqOpensdkSSoLogin 62 | mqqconnect 63 | mqqopensdkdataline 64 | mqqopensdkgrouptribeshare 65 | mqqopensdkfriend 66 | mqqopensdkapi 67 | mqqopensdkapiV2 68 | mqqopensdkapiV3 69 | mqzoneopensdk 70 | wtloginmqq 71 | wtloginmqq2 72 | mqqwpa 73 | mqzone 74 | mqzonev2 75 | mqzoneshare 76 | wtloginqzone 77 | mqzonewx 78 | mqzoneopensdkapiV2 79 | mqzoneopensdkapi19 80 | mqzoneopensdkapi 81 | mqzoneopensdk 82 | mttbrowser 83 | sinaweibohd 84 | sinaweibo 85 | sinaweibosso 86 | weibosdk 87 | weibosdk2.5 88 | 89 | LSRequiresIPhoneOS 90 | 91 | NSAppTransportSecurity 92 | 93 | NSAllowsArbitraryLoads 94 | 95 | 96 | UILaunchStoryboardName 97 | LaunchScreen 98 | UIMainStoryboardFile 99 | Main 100 | UIRequiredDeviceCapabilities 101 | 102 | armv7 103 | 104 | UISupportedInterfaceOrientations 105 | 106 | UIInterfaceOrientationPortrait 107 | UIInterfaceOrientationLandscapeLeft 108 | UIInterfaceOrientationLandscapeRight 109 | 110 | UISupportedInterfaceOrientations~ipad 111 | 112 | UIInterfaceOrientationPortrait 113 | UIInterfaceOrientationPortraitUpsideDown 114 | UIInterfaceOrientationLandscapeLeft 115 | UIInterfaceOrientationLandscapeRight 116 | 117 | sina.com.cn 118 | 119 | NSExceptionMinimumTLSVersion 120 | TLSv1.0 121 | NSIncludesSubdomains 122 | 123 | NSThirdPartyExceptionAllowsInsecureHTTPLoads 124 | 125 | NSThirdPartyExceptionRequiresForwardSecrecy 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/LFBSocialSDKDemo.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:api.eyxyt.com 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "LFBSocialSDK.h" 11 | 12 | 13 | 14 | @interface ViewController () 15 | 16 | @end 17 | 18 | @implementation ViewController 19 | 20 | - (void)viewDidLoad { 21 | [super viewDidLoad]; 22 | [self wechatLoginTest]; 23 | } 24 | 25 | - (void)wechatLoginTest{ 26 | UIButton *loginBtn = [[UIButton alloc]init]; 27 | loginBtn.bounds = CGRectMake(0, 0, 200, 40); 28 | loginBtn.center = self.view.center; 29 | loginBtn.layer.cornerRadius =12; 30 | loginBtn.layer.masksToBounds = YES; 31 | loginBtn.backgroundColor = [UIColor orangeColor]; 32 | [loginBtn setTitle:@"开始分享" forState:UIControlStateNormal]; 33 | [loginBtn addTarget:self action:@selector(startShare:) forControlEvents:UIControlEventTouchUpInside]; 34 | [self.view addSubview:loginBtn]; 35 | } 36 | 37 | - (void)startShare:(UIButton *)sender{ 38 | LFBSharePlateforms *model = [[LFBSharePlateforms alloc]init]; 39 | model.shareType = LFBChannelTypeWX; 40 | model.shareInfoType = LFBShareInfoTypeApplet; 41 | model.title = @"小程序"; 42 | model.text = @"大家来找茬!!!"; 43 | model.webPageUrl =@"https://tapi.eyxyt.com/activefront/qrcode/shared_car_get_coupon?coupon_template_id=113"; 44 | model.userName = @"gh_a4ff22eef403"; 45 | model.path = @"pages/getcoupon?coupon_template_id=113"; 46 | NSURL *url = [NSURL URLWithString:@"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1555407004298&di=a07b43eff871a98ea55c5936a00c5326&imgtype=0&src=http%3A%2F%2Fpic.58pic.com%2F58pic%2F16%2F66%2F99%2F30V58PICdCr_1024.jpg"]; 47 | NSData *data = [NSData dataWithContentsOfURL:url]; 48 | // model.hdImageData = UIImageJPEGRepresentation([UIImage imageNamed:@"bg_default_01"], 0.4); 49 | // model.thubnailData = UIImagePNGRepresentation([UIImage imageNamed:@"bg_default_01"]); 50 | model.hdImageData = data; 51 | model.withShareTicket = YES; 52 | model.miniProgramType = LFBShareMiniInfoTypeRelease; 53 | [LFBShareMoudle showShareViewWithObject:model]; 54 | } 55 | 56 | 57 | - (void)loginBtn:(UIButton *)sender{ 58 | [LFBShareMoudle loginWithChannelType:LFBChannelTypeWX success:^(LFBChannelBase *channel, id data) { 59 | LFBUserInfo *userInfo = data; 60 | NSLog(@"%@",userInfo.nickname); 61 | } fail:^(LFBChannelBase *channel, NSError *error) { 62 | NSLog(@"%@",error); 63 | } cancel:^(LFBChannelBase *channel) { 64 | NSLog(@"取消操作"); 65 | }]; 66 | } 67 | 68 | 69 | 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /LFBSocialSDKDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LFBSocialSDKDemo 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /LFBSocialSDKDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LFBSocialSDKDemoTests/LFBSocialSDKDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBSocialSDKDemoTests.m 3 | // LFBSocialSDKDemoTests 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LFBSocialSDKDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LFBSocialSDKDemoTests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | } 20 | 21 | - (void)tearDown { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | - (void)testExample { 26 | // This is an example of a functional test case. 27 | // Use XCTAssert and related functions to verify your tests produce the correct results. 28 | } 29 | 30 | - (void)testPerformanceExample { 31 | // This is an example of a performance test case. 32 | [self measureBlock:^{ 33 | // Put the code you want to measure the time of here. 34 | }]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /LFBSocialSDKDemoTests/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/LFBSocialSDKDemoTests/banner.png -------------------------------------------------------------------------------- /LFBSocialSDKDemoUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LFBSocialSDKDemoUITests/LFBSocialSDKDemoUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LFBSocialSDKDemoUITests.m 3 | // LFBSocialSDKDemoUITests 4 | // 5 | // Created by liufubo on 2018/12/17. 6 | // Copyright © 2018 liufubo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LFBSocialSDKDemoUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LFBSocialSDKDemoUITests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | 20 | // In UI tests it is usually best to stop immediately when a failure occurs. 21 | self.continueAfterFailure = NO; 22 | 23 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 24 | [[[XCUIApplication alloc] init] launch]; 25 | 26 | // 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. 27 | } 28 | 29 | - (void)tearDown { 30 | // Put teardown code here. This method is called after the invocation of each test method in the class. 31 | } 32 | 33 | - (void)testExample { 34 | // Use recording to get started writing UI tests. 35 | // Use XCTAssert and related functions to verify your tests produce the correct results. 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 LiuFuBo1991 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Masonry (1.1.0) 3 | - TencentOpenAPI (1.0.0) 4 | - WechatOpenSDK (1.8.7.1) 5 | - WeiboSDK (3.1.3) 6 | 7 | DEPENDENCIES: 8 | - Masonry (~> 1.1.0) 9 | - TencentOpenAPI (~> 1.0.0) 10 | - WechatOpenSDK (~> 1.8.7.1) 11 | - WeiboSDK (~> 3.1.3) 12 | 13 | SPEC REPOS: 14 | https://github.com/cocoapods/specs.git: 15 | - Masonry 16 | - TencentOpenAPI 17 | - WechatOpenSDK 18 | - WeiboSDK 19 | 20 | SPEC CHECKSUMS: 21 | Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 22 | TencentOpenAPI: ddc6fb0134b25c9078ccd27fd2259ed0cc30a49a 23 | WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44 24 | WeiboSDK: acb067053668102cf07d01aa7604350162c2e466 25 | 26 | PODFILE CHECKSUM: 5d89ac1d9710ed537cb4a9421aacf0f137630c1a 27 | 28 | COCOAPODS: 1.7.2 29 | -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WechatOpenSDK/WXApi.h: -------------------------------------------------------------------------------- 1 | ../../../WechatOpenSDK/OpenSDK1.8.7.1/WXApi.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WechatOpenSDK/WXApiObject.h: -------------------------------------------------------------------------------- 1 | ../../../WechatOpenSDK/OpenSDK1.8.7.1/WXApiObject.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WechatOpenSDK/WechatAuthSDK.h: -------------------------------------------------------------------------------- 1 | ../../../WechatOpenSDK/OpenSDK1.8.7.1/WechatAuthSDK.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBHttpRequest+WeiboGame.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboGame.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBHttpRequest+WeiboShare.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboShare.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBHttpRequest+WeiboToken.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboToken.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBHttpRequest+WeiboUser.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboUser.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBHttpRequest.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBSDKBasicButton.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBSDKBasicButton.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBSDKCommentButton.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBSDKCommentButton.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WBSDKRelationshipButton.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBSDKRelationshipButton.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WeiboSDK.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WeiboSDK.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WeiboSDK/WeiboUser.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WeiboUser.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WechatOpenSDK/WXApi.h: -------------------------------------------------------------------------------- 1 | ../../../WechatOpenSDK/OpenSDK1.8.7.1/WXApi.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WechatOpenSDK/WXApiObject.h: -------------------------------------------------------------------------------- 1 | ../../../WechatOpenSDK/OpenSDK1.8.7.1/WXApiObject.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WechatOpenSDK/WechatAuthSDK.h: -------------------------------------------------------------------------------- 1 | ../../../WechatOpenSDK/OpenSDK1.8.7.1/WechatAuthSDK.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBHttpRequest+WeiboGame.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboGame.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBHttpRequest+WeiboShare.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboShare.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBHttpRequest+WeiboToken.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboToken.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBHttpRequest+WeiboUser.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboUser.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBHttpRequest.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBHttpRequest.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBSDKBasicButton.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBSDKBasicButton.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBSDKCommentButton.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBSDKCommentButton.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WBSDKRelationshipButton.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WBSDKRelationshipButton.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WeiboSDK.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WeiboSDK.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WeiboSDK/WeiboUser.h: -------------------------------------------------------------------------------- 1 | ../../../WeiboSDK/libWeiboSDK/WeiboUser.h -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Masonry (1.1.0) 3 | - TencentOpenAPI (1.0.0) 4 | - WechatOpenSDK (1.8.7.1) 5 | - WeiboSDK (3.1.3) 6 | 7 | DEPENDENCIES: 8 | - Masonry (~> 1.1.0) 9 | - TencentOpenAPI (~> 1.0.0) 10 | - WechatOpenSDK (~> 1.8.7.1) 11 | - WeiboSDK (~> 3.1.3) 12 | 13 | SPEC REPOS: 14 | https://github.com/cocoapods/specs.git: 15 | - Masonry 16 | - TencentOpenAPI 17 | - WechatOpenSDK 18 | - WeiboSDK 19 | 20 | SPEC CHECKSUMS: 21 | Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 22 | TencentOpenAPI: ddc6fb0134b25c9078ccd27fd2259ed0cc30a49a 23 | WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44 24 | WeiboSDK: acb067053668102cf07d01aa7604350162c2e466 25 | 26 | PODFILE CHECKSUM: 5d89ac1d9710ed537cb4a9421aacf0f137630c1a 27 | 28 | COCOAPODS: 1.7.2 29 | -------------------------------------------------------------------------------- /Pods/Masonry/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASCompositeConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | #import "MASUtilities.h" 11 | 12 | /** 13 | * A group of MASConstraint objects 14 | */ 15 | @interface MASCompositeConstraint : MASConstraint 16 | 17 | /** 18 | * Creates a composite with a predefined array of children 19 | * 20 | * @param children child MASConstraints 21 | * 22 | * @return a composite constraint 23 | */ 24 | - (id)initWithChildren:(NSArray *)children; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint+Private.h 3 | // Masonry 4 | // 5 | // Created by Nick Tymchenko on 29/04/14. 6 | // Copyright (c) 2014 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | 11 | @protocol MASConstraintDelegate; 12 | 13 | 14 | @interface MASConstraint () 15 | 16 | /** 17 | * Whether or not to check for an existing constraint instead of adding constraint 18 | */ 19 | @property (nonatomic, assign) BOOL updateExisting; 20 | 21 | /** 22 | * Usually MASConstraintMaker but could be a parent MASConstraint 23 | */ 24 | @property (nonatomic, weak) id delegate; 25 | 26 | /** 27 | * Based on a provided value type, is equal to calling: 28 | * NSNumber - setOffset: 29 | * NSValue with CGPoint - setPointOffset: 30 | * NSValue with CGSize - setSizeOffset: 31 | * NSValue with MASEdgeInsets - setInsets: 32 | */ 33 | - (void)setLayoutConstantWithValue:(NSValue *)value; 34 | 35 | @end 36 | 37 | 38 | @interface MASConstraint (Abstract) 39 | 40 | /** 41 | * Sets the constraint relation to given NSLayoutRelation 42 | * returns a block which accepts one of the following: 43 | * MASViewAttribute, UIView, NSValue, NSArray 44 | * see readme for more details. 45 | */ 46 | - (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation; 47 | 48 | /** 49 | * Override to set a custom chaining behaviour 50 | */ 51 | - (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; 52 | 53 | @end 54 | 55 | 56 | @protocol MASConstraintDelegate 57 | 58 | /** 59 | * Notifies the delegate when the constraint needs to be replaced with another constraint. For example 60 | * A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks 61 | */ 62 | - (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint; 63 | 64 | - (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * When you are debugging or printing the constraints attached to a view this subclass 13 | * makes it easier to identify which constraints have been created via Masonry 14 | */ 15 | @interface MASLayoutConstraint : NSLayoutConstraint 16 | 17 | /** 18 | * a key to associate with this constraint 19 | */ 20 | @property (nonatomic, strong) id mas_key; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASLayoutConstraint.h" 10 | 11 | @implementation MASLayoutConstraint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASViewAttribute.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * An immutable tuple which stores the view and the related NSLayoutAttribute. 13 | * Describes part of either the left or right hand side of a constraint equation 14 | */ 15 | @interface MASViewAttribute : NSObject 16 | 17 | /** 18 | * The view which the reciever relates to. Can be nil if item is not a view. 19 | */ 20 | @property (nonatomic, weak, readonly) MAS_VIEW *view; 21 | 22 | /** 23 | * The item which the reciever relates to. 24 | */ 25 | @property (nonatomic, weak, readonly) id item; 26 | 27 | /** 28 | * The attribute which the reciever relates to 29 | */ 30 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; 31 | 32 | /** 33 | * Convenience initializer. 34 | */ 35 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; 36 | 37 | /** 38 | * The designated initializer. 39 | */ 40 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; 41 | 42 | /** 43 | * Determine whether the layoutAttribute is a size attribute 44 | * 45 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight 46 | */ 47 | - (BOOL)isSizeAttribute; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASViewAttribute.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | 11 | @implementation MASViewAttribute 12 | 13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { 14 | self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; 15 | return self; 16 | } 17 | 18 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { 19 | self = [super init]; 20 | if (!self) return nil; 21 | 22 | _view = view; 23 | _item = item; 24 | _layoutAttribute = layoutAttribute; 25 | 26 | return self; 27 | } 28 | 29 | - (BOOL)isSizeAttribute { 30 | return self.layoutAttribute == NSLayoutAttributeWidth 31 | || self.layoutAttribute == NSLayoutAttributeHeight; 32 | } 33 | 34 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute { 35 | if ([viewAttribute isKindOfClass:self.class]) { 36 | return self.view == viewAttribute.view 37 | && self.layoutAttribute == viewAttribute.layoutAttribute; 38 | } 39 | return [super isEqual:viewAttribute]; 40 | } 41 | 42 | - (NSUInteger)hash { 43 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASViewConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | #import "MASConstraint.h" 11 | #import "MASLayoutConstraint.h" 12 | #import "MASUtilities.h" 13 | 14 | /** 15 | * A single constraint. 16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view 17 | */ 18 | @interface MASViewConstraint : MASConstraint 19 | 20 | /** 21 | * First item/view and first attribute of the NSLayoutConstraint 22 | */ 23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute; 24 | 25 | /** 26 | * Second item/view and second attribute of the NSLayoutConstraint 27 | */ 28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute; 29 | 30 | /** 31 | * initialises the MASViewConstraint with the first part of the equation 32 | * 33 | * @param firstViewAttribute view.mas_left, view.mas_width etc. 34 | * 35 | * @return a new view constraint 36 | */ 37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; 38 | 39 | /** 40 | * Returns all MASViewConstraints installed with this view as a first item. 41 | * 42 | * @param view A view to retrieve constraints for. 43 | * 44 | * @return An array of MASViewConstraints. 45 | */ 46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | // 2 | // Masonry.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Masonry. 12 | FOUNDATION_EXPORT double MasonryVersionNumber; 13 | 14 | //! Project version string for Masonry. 15 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 16 | 17 | #import "MASUtilities.h" 18 | #import "View+MASAdditions.h" 19 | #import "View+MASShorthandAdditions.h" 20 | #import "ViewController+MASAdditions.h" 21 | #import "NSArray+MASAdditions.h" 22 | #import "NSArray+MASShorthandAdditions.h" 23 | #import "MASConstraint.h" 24 | #import "MASCompositeConstraint.h" 25 | #import "MASViewAttribute.h" 26 | #import "MASViewConstraint.h" 27 | #import "MASConstraintMaker.h" 28 | #import "MASLayoutConstraint.h" 29 | #import "NSLayoutConstraint+MASDebugAdditions.h" 30 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASAdditions.h 3 | // 4 | // 5 | // Created by Daniel Hammond on 11/26/13. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | typedef NS_ENUM(NSUInteger, MASAxisType) { 14 | MASAxisTypeHorizontal, 15 | MASAxisTypeVertical 16 | }; 17 | 18 | @interface NSArray (MASAdditions) 19 | 20 | /** 21 | * Creates a MASConstraintMaker with each view in the callee. 22 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view 23 | * 24 | * @param block scope within which you can build up the constraints which you wish to apply to each view. 25 | * 26 | * @return Array of created MASConstraints 27 | */ 28 | - (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block; 29 | 30 | /** 31 | * Creates a MASConstraintMaker with each view in the callee. 32 | * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. 33 | * If an existing constraint exists then it will be updated instead. 34 | * 35 | * @param block scope within which you can build up the constraints which you wish to apply to each view. 36 | * 37 | * @return Array of created/updated MASConstraints 38 | */ 39 | - (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block; 40 | 41 | /** 42 | * Creates a MASConstraintMaker with each view in the callee. 43 | * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. 44 | * All constraints previously installed for the views will be removed. 45 | * 46 | * @param block scope within which you can build up the constraints which you wish to apply to each view. 47 | * 48 | * @return Array of created/updated MASConstraints 49 | */ 50 | - (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block; 51 | 52 | /** 53 | * distribute with fixed spacing 54 | * 55 | * @param axisType which axis to distribute items along 56 | * @param fixedSpacing the spacing between each item 57 | * @param leadSpacing the spacing before the first item and the container 58 | * @param tailSpacing the spacing after the last item and the container 59 | */ 60 | - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; 61 | 62 | /** 63 | * distribute with fixed item size 64 | * 65 | * @param axisType which axis to distribute items along 66 | * @param fixedItemLength the fixed length of each item 67 | * @param leadSpacing the spacing before the first item and the container 68 | * @param tailSpacing the spacing after the last item and the container 69 | */ 70 | - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASShorthandAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 22/07/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "NSArray+MASAdditions.h" 10 | 11 | #ifdef MAS_SHORTHAND 12 | 13 | /** 14 | * Shorthand array additions without the 'mas_' prefixes, 15 | * only enabled if MAS_SHORTHAND is defined 16 | */ 17 | @interface NSArray (MASShorthandAdditions) 18 | 19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; 20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; 21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; 22 | 23 | @end 24 | 25 | @implementation NSArray (MASShorthandAdditions) 26 | 27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { 28 | return [self mas_makeConstraints:block]; 29 | } 30 | 31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { 32 | return [self mas_updateConstraints:block]; 33 | } 34 | 35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { 36 | return [self mas_remakeConstraints:block]; 37 | } 38 | 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+MASDebugAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * makes debug and log output of NSLayoutConstraints more readable 13 | */ 14 | @interface NSLayoutConstraint (MASDebugAdditions) 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | #ifdef MAS_VIEW_CONTROLLER 14 | 15 | @interface MAS_VIEW_CONTROLLER (MASAdditions) 16 | 17 | /** 18 | * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute 19 | */ 20 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom; 26 | 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.m 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "ViewController+MASAdditions.h" 10 | 11 | #ifdef MAS_VIEW_CONTROLLER 12 | 13 | @implementation MAS_VIEW_CONTROLLER (MASAdditions) 14 | 15 | - (MASViewAttribute *)mas_topLayoutGuide { 16 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 17 | } 18 | - (MASViewAttribute *)mas_topLayoutGuideTop { 19 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 20 | } 21 | - (MASViewAttribute *)mas_topLayoutGuideBottom { 22 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 23 | } 24 | 25 | - (MASViewAttribute *)mas_bottomLayoutGuide { 26 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 27 | } 28 | - (MASViewAttribute *)mas_bottomLayoutGuideTop { 29 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 30 | } 31 | - (MASViewAttribute *)mas_bottomLayoutGuideBottom { 32 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 33 | } 34 | 35 | 36 | 37 | @end 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/Masonry.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/Pods-LFBSocialSDKDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/Pods-LFBSocialSDKDemoTests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/Pods-LFBSocialSDKDemoUITests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/TencentOpenAPI.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/WechatOpenSDK.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/WeiboSDK.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yxyt.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Masonry.xcscheme 8 | 9 | isShown 10 | 11 | 12 | Pods-LFBSocialSDKDemo.xcscheme 13 | 14 | isShown 15 | 16 | 17 | Pods-LFBSocialSDKDemoTests.xcscheme 18 | 19 | isShown 20 | 21 | 22 | Pods-LFBSocialSDKDemoUITests.xcscheme 23 | 24 | isShown 25 | 26 | 27 | TencentOpenAPI.xcscheme 28 | 29 | isShown 30 | 31 | 32 | WechatOpenSDK.xcscheme 33 | 34 | isShown 35 | 36 | 37 | WeiboSDK.xcscheme 38 | 39 | isShown 40 | 41 | 42 | 43 | SuppressBuildableAutocreation 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Masonry : NSObject 3 | @end 4 | @implementation PodsDummy_Masonry 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Masonry 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## Masonry 5 | 6 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | ## TencentOpenAPI 27 | 28 | MIT License 29 | 30 | Copyright (c) 2018 itollei 31 | 32 | Permission is hereby granted, free of charge, to any person obtaining a copy 33 | of this software and associated documentation files (the "Software"), to deal 34 | in the Software without restriction, including without limitation the rights 35 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the Software is 37 | furnished to do so, subject to the following conditions: 38 | 39 | The above copyright notice and this permission notice shall be included in all 40 | copies or substantial portions of the Software. 41 | 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 48 | SOFTWARE. 49 | 50 | 51 | ## WechatOpenSDK 52 | 53 | Copyright 2020 tencent.com. All rights reserved. 54 | 55 | 56 | ## WeiboSDK 57 | 58 | 59 | Generated by CocoaPods - https://cocoapods.org 60 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | License 37 | MIT 38 | Title 39 | Masonry 40 | Type 41 | PSGroupSpecifier 42 | 43 | 44 | FooterText 45 | MIT License 46 | 47 | Copyright (c) 2018 itollei 48 | 49 | Permission is hereby granted, free of charge, to any person obtaining a copy 50 | of this software and associated documentation files (the "Software"), to deal 51 | in the Software without restriction, including without limitation the rights 52 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 53 | copies of the Software, and to permit persons to whom the Software is 54 | furnished to do so, subject to the following conditions: 55 | 56 | The above copyright notice and this permission notice shall be included in all 57 | copies or substantial portions of the Software. 58 | 59 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 60 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 61 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 62 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 63 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 64 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 65 | SOFTWARE. 66 | 67 | License 68 | MIT 69 | Title 70 | TencentOpenAPI 71 | Type 72 | PSGroupSpecifier 73 | 74 | 75 | FooterText 76 | Copyright 2020 tencent.com. All rights reserved. 77 | 78 | License 79 | Copyright 80 | Title 81 | WechatOpenSDK 82 | Type 83 | PSGroupSpecifier 84 | 85 | 86 | FooterText 87 | 88 | License 89 | Commercial 90 | Title 91 | WeiboSDK 92 | Type 93 | PSGroupSpecifier 94 | 95 | 96 | FooterText 97 | Generated by CocoaPods - https://cocoapods.org 98 | Title 99 | 100 | Type 101 | PSGroupSpecifier 102 | 103 | 104 | StringsTable 105 | Acknowledgements 106 | Title 107 | Acknowledgements 108 | 109 | 110 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LFBSocialSDKDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LFBSocialSDKDemo 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-resources.sh 2 | ${PODS_ROOT}/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle 3 | ${PODS_ROOT}/WeiboSDK/libWeiboSDK/WeiboSDK.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TencentOpenApi_IOS_Bundle.bundle 2 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WeiboSDK.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-resources.sh 2 | ${PODS_ROOT}/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle 3 | ${PODS_ROOT}/WeiboSDK/libWeiboSDK/WeiboSDK.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TencentOpenApi_IOS_Bundle.bundle 2 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WeiboSDK.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_ROOT}/WechatOpenSDK/OpenSDK1.8.7.1" "${PODS_ROOT}/WeiboSDK/libWeiboSDK" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" -l"WeChatSDK" -l"WeiboSDK" -l"c++" -l"iconv" -l"sqlite3" -l"sqlite3.0" -l"stdc++" -l"z" -framework "CoreGraphics" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "TencentOpenAPI" -framework "UIKit" -framework "WebKit" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemo/Pods-LFBSocialSDKDemo.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_ROOT}/WechatOpenSDK/OpenSDK1.8.7.1" "${PODS_ROOT}/WeiboSDK/libWeiboSDK" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" -l"WeChatSDK" -l"WeiboSDK" -l"c++" -l"iconv" -l"sqlite3" -l"sqlite3.0" -l"stdc++" -l"z" -framework "CoreGraphics" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "TencentOpenAPI" -framework "UIKit" -framework "WebKit" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoTests/Pods-LFBSocialSDKDemoTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoTests/Pods-LFBSocialSDKDemoTests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoTests/Pods-LFBSocialSDKDemoTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LFBSocialSDKDemoTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LFBSocialSDKDemoTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoTests/Pods-LFBSocialSDKDemoTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"iconv" -l"sqlite3" -l"sqlite3.0" -l"stdc++" -l"z" -framework "CoreGraphics" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoTests/Pods-LFBSocialSDKDemoTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"iconv" -l"sqlite3" -l"sqlite3.0" -l"stdc++" -l"z" -framework "CoreGraphics" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoUITests/Pods-LFBSocialSDKDemoUITests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoUITests/Pods-LFBSocialSDKDemoUITests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoUITests/Pods-LFBSocialSDKDemoUITests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LFBSocialSDKDemoUITests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LFBSocialSDKDemoUITests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoUITests/Pods-LFBSocialSDKDemoUITests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"iconv" -l"sqlite3" -l"sqlite3.0" -l"stdc++" -l"z" -framework "CoreGraphics" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-LFBSocialSDKDemoUITests/Pods-LFBSocialSDKDemoUITests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"iconv" -l"sqlite3" -l"sqlite3.0" -l"stdc++" -l"z" -framework "CoreGraphics" -framework "CoreTelephony" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TencentOpenAPI/TencentOpenAPI.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/TencentOpenAPI 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/TencentOpenAPI" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/TencentOpenAPI 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WechatOpenSDK/WechatOpenSDK.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WechatOpenSDK 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/WechatOpenSDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WechatOpenSDK" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/WechatOpenSDK 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WeiboSDK/WeiboSDK.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WeiboSDK 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/WeiboSDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WeiboSDK" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/WeiboSDK 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 itollei 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/README.md: -------------------------------------------------------------------------------- 1 | # TencentOpenAPI -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenAPI.framework/Headers/QQApiInterface.h: -------------------------------------------------------------------------------- 1 | /// 2 | /// \file QQApiInterface.h 3 | /// \brief QQApi接口简化封装 4 | /// 5 | /// Created by Tencent on 12-5-15. 6 | /// Copyright (c) 2012年 Tencent. All rights reserved. 7 | /// 8 | 9 | #import 10 | #import "QQApiInterfaceObject.h" 11 | 12 | /** 13 | \brief 处理来至QQ的请求及响应的回调协议 14 | */ 15 | @protocol QQApiInterfaceDelegate 16 | 17 | /** 18 | 处理来至QQ的请求 19 | */ 20 | - (void)onReq:(QQBaseReq *)req; 21 | 22 | /** 23 | 处理来至QQ的响应 24 | */ 25 | - (void)onResp:(QQBaseResp *)resp; 26 | 27 | /** 28 | 处理QQ在线状态的回调 29 | */ 30 | - (void)isOnlineResponse:(NSDictionary *)response; 31 | 32 | @end 33 | 34 | /** 35 | \brief 对QQApi的简单封装类 36 | */ 37 | @interface QQApiInterface : NSObject 38 | 39 | /** 40 | 处理由手Q唤起的跳转请求 41 | \param url 待处理的url跳转请求 42 | \param delegate 第三方应用用于处理来至QQ请求及响应的委托对象 43 | \return 跳转请求处理结果,YES表示成功处理,NO表示不支持的请求协议或处理失败 44 | */ 45 | + (BOOL)handleOpenURL:(NSURL *)url delegate:(id)delegate; 46 | 47 | /** 48 | 向手Q发起分享请求 49 | \param req 分享内容的请求 50 | \return 请求发送结果码 51 | */ 52 | + (QQApiSendResultCode)sendReq:(QQBaseReq *)req; 53 | 54 | /** 55 | 向手Q QZone结合版发起分享请求 56 | \note H5分享只支持单张网络图片的传递 57 | \param req 分享内容的请求 58 | \return 请求发送结果码 59 | */ 60 | + (QQApiSendResultCode)SendReqToQZone:(QQBaseReq *)req; 61 | 62 | /** 63 | 向手Q 群部落发起分享请求 64 | \note H5分享只支持单张网络图片的传递 65 | \param req 分享内容的请求 66 | \return 请求发送结果码 67 | */ 68 | + (QQApiSendResultCode)SendReqToQQGroupTribe:(QQBaseReq *)req; 69 | 70 | /** 71 | 向手Q发送应答消息 72 | \param resp 应答消息 73 | \return 应答发送结果码 74 | */ 75 | + (QQApiSendResultCode)sendResp:(QQBaseResp *)resp; 76 | 77 | /** 78 | 检测是否已安装QQ 79 | \return 如果QQ已安装则返回YES,否则返回NO 80 | */ 81 | + (BOOL)isQQInstalled; 82 | 83 | /** 84 | 检测是否已安装TIM 85 | \return 如果TIM已安装则返回YES,否则返回NO 86 | */ 87 | + (BOOL)isTIMInstalled; 88 | 89 | /** 90 | 批量检测QQ号码是否在线 91 | */ 92 | + (void)getQQUinOnlineStatues:(NSArray *)QQUins delegate:(id)delegate; 93 | 94 | /** 95 | 检测QQ是否支持API调用 96 | \return 如果当前安装QQ版本支持API调用则返回YES,否则返回NO 97 | */ 98 | + (BOOL)isQQSupportApi; 99 | 100 | /** 101 | 检测TIM是否支持API调用 102 | \return 如果当前安装TIM版本支持API调用则返回YES,否则返回NO 103 | */ 104 | + (BOOL)isTIMSupportApi; 105 | 106 | /** 107 | 启动QQ 108 | \return 成功返回YES,否则返回NO 109 | */ 110 | + (BOOL)openQQ; 111 | 112 | /** 113 | 启动TIM 114 | \return 成功返回YES,否则返回NO 115 | */ 116 | + (BOOL)openTIM; 117 | 118 | /** 119 | 获取QQ下载地址 120 | 121 | 如果App通过QQApiInterface#isQQInstalledQQApiInterface#isQQSupportApi检测发现QQ没安装或当前版本QQ不支持API调用,可引导用户通过打开此链接下载最新版QQ。 122 | \return iPhoneQQ下载地址 123 | */ 124 | + (NSString *)getQQInstallUrl; 125 | 126 | /** 127 | 获取TIM下载地址 128 | 129 | 如果App通过QQApiInterface#isTIMInstalledQQApiInterface#isTIMSupportApi检测发现TIM没安装或当前版本TIM不支持API调用,可引导用户通过打开此链接下载最新版TIM。 130 | \return iPhoneTIM下载地址 131 | */ 132 | + (NSString *)getTIMInstallUrl; 133 | 134 | @end 135 | -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenAPI.framework/Headers/TencentApiInterface.h: -------------------------------------------------------------------------------- 1 | // 2 | // TencentMessage.h 3 | // TencentOpenApi_IOS 4 | // 5 | // Created by qqconnect on 13-5-29. 6 | // Copyright (c) 2013年 Tencent. All rights reserved. 7 | // 8 | 9 | #ifndef QQ_OPEN_SDK_LITE 10 | 11 | #import 12 | #import "TencentMessageObject.h" 13 | 14 | typedef enum 15 | { 16 | kIphoneQQ, 17 | kIphoneQZONE, 18 | kIphoneTIM, 19 | kThirdApp, 20 | } 21 | TecnentPlatformType; 22 | 23 | typedef enum 24 | { 25 | kTencentApiSuccess, 26 | kTencentApiPlatformUninstall, 27 | kTencentApiPlatformNotSupport, 28 | kTencentApiParamsError, 29 | kTencentApiFail, 30 | } 31 | TencentApiRetCode; 32 | 33 | @class TencentApiReq; 34 | @class TencentApiResp; 35 | 36 | /** 37 | * \brief TencentApiInterface的回调 38 | * 39 | * TencentApiInterface的回调接口 40 | * \note v1.0版本只支持腾讯业务拉起第三方请求内容 41 | */ 42 | @protocol TencentApiInterfaceDelegate 43 | 44 | @optional 45 | /** 46 | * 请求获得内容 当前版本只支持第三方相应腾讯业务请求 47 | */ 48 | - (BOOL)onTencentReq:(TencentApiReq *)req; 49 | 50 | /** 51 | * 响应请求答复 当前版本只支持腾讯业务相应第三方的请求答复 52 | */ 53 | - (BOOL)onTencentResp:(TencentApiResp *)resp; 54 | 55 | @end 56 | 57 | /** 58 | * \brief TencentApiInterface的回调 59 | * 60 | * TencentApiInterface的调用接口 61 | * \note v1.0版本只支持第三方答复内容 62 | */ 63 | @interface TencentApiInterface : NSObject 64 | 65 | /** 66 | * 发送答复返回腾讯业务 67 | * \param resp 答复内容 68 | * \return 返回码 69 | */ 70 | + (TencentApiRetCode)sendRespMessageToTencentApp:(TencentApiResp *)resp; 71 | 72 | /** 73 | * 是否可以处理拉起协议 74 | * \param url 75 | * \param delegate 指定的回调 76 | * \return 是否是腾讯API认识的消息类型 77 | */ 78 | + (BOOL)canOpenURL:(NSURL *)url delegate:(id)delegate; 79 | 80 | /** 81 | * 处理应用拉起协议 82 | * \param url 83 | * \param delegate 指定的回调 84 | * \return 是否是腾讯API认识的消息类型 85 | */ 86 | + (BOOL)handleOpenURL:(NSURL *)url delegate:(id)delegate; 87 | 88 | /** 89 | * 用户设备是否安装腾讯APP 90 | * \param platform 指定的腾讯业务 91 | * \return YES:安装 NO:未安装 92 | */ 93 | + (BOOL)isTencentAppInstall:(TecnentPlatformType)platform; 94 | 95 | /** 96 | * 用户设备是否支持调用SDK 97 | * \param platform 指定的腾讯业务 98 | * \return YES:支持 NO:不支持 99 | */ 100 | + (BOOL)isTencentAppSupportTencentApi:(TecnentPlatformType)platform; 101 | 102 | @end 103 | 104 | #endif 105 | -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenAPI.framework/Resources/ios_open_sdk_3.2.2.500_iphone_release: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/TencentOpenAPI/TencentOpenAPI.framework/Resources/ios_open_sdk_3.2.2.500_iphone_release -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenAPI.framework/TencentOpenAPI: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/TencentOpenAPI/TencentOpenAPI.framework/TencentOpenAPI -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/Info.plist -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/error.png -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/qqicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/qqicon.png -------------------------------------------------------------------------------- /Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/TencentOpenAPI/TencentOpenApi_IOS_Bundle.bundle/success.png -------------------------------------------------------------------------------- /Pods/WechatOpenSDK/OpenSDK1.8.7.1/WechatAuthSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // WechatAuthSDK.h 3 | // WechatAuthSDK 4 | // 5 | // Created by 李凯 on 13-11-29. 6 | // Copyright (c) 2013年 Tencent. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | enum AuthErrCode { 15 | WechatAuth_Err_Ok = 0, //Auth成功 16 | WechatAuth_Err_NormalErr = -1, //普通错误 17 | WechatAuth_Err_NetworkErr = -2, //网络错误 18 | WechatAuth_Err_GetQrcodeFailed = -3, //获取二维码失败 19 | WechatAuth_Err_Cancel = -4, //用户取消授权 20 | WechatAuth_Err_Timeout = -5, //超时 21 | }; 22 | 23 | @protocol WechatAuthAPIDelegate 24 | @optional 25 | 26 | - (void)onAuthGotQrcode:(UIImage *)image; //得到二维码 27 | - (void)onQrcodeScanned; //二维码被扫描 28 | - (void)onAuthFinish:(int)errCode AuthCode:(nullable NSString *)authCode; //成功登录 29 | 30 | @end 31 | 32 | @interface WechatAuthSDK : NSObject{ 33 | NSString *_sdkVersion; 34 | __weak id _delegate; 35 | } 36 | 37 | @property(nonatomic, weak, nullable) id delegate; 38 | @property(nonatomic, readonly) NSString *sdkVersion; //authSDK版本号 39 | 40 | /*! @brief 发送登录请求,等待WechatAuthAPIDelegate回调 41 | * 42 | * @param appId 微信开发者ID 43 | * @param nonceStr 一个随机的尽量不重复的字符串,用来使得每次的signature不同 44 | * @param timeStamp 时间戳 45 | * @param scope 应用授权作用域,拥有多个作用域用逗号(,)分隔 46 | * @param signature 签名 47 | * @param schemeData 会在扫码后拼在scheme后 48 | * @return 成功返回YES,失败返回NO 49 | 注:该实现只保证同时只有一个Auth在运行,Auth未完成或未Stop再次调用Auth接口时会返回NO。 50 | */ 51 | 52 | - (BOOL)Auth:(NSString *)appId 53 | nonceStr:(NSString *)nonceStr 54 | timeStamp:(NSString *)timeStamp 55 | scope:(NSString *)scope 56 | signature:(NSString *)signature 57 | schemeData:(nullable NSString *)schemeData; 58 | 59 | 60 | /*! @brief 暂停登录请求 61 | * 62 | * @return 成功返回YES,失败返回NO。 63 | */ 64 | - (BOOL)StopAuth; 65 | 66 | @end 67 | 68 | NS_ASSUME_NONNULL_END 69 | -------------------------------------------------------------------------------- /Pods/WechatOpenSDK/OpenSDK1.8.7.1/libWeChatSDK.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WechatOpenSDK/OpenSDK1.8.7.1/libWeChatSDK.a -------------------------------------------------------------------------------- /Pods/WeiboSDK/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/LICENSE -------------------------------------------------------------------------------- /Pods/WeiboSDK/README.md: -------------------------------------------------------------------------------- 1 | # ReadMe 2 | 为了方便第三方开发者快速集成微博 SDK,我们提供了以下联系方式,协助开发者进行集成: 3 | **QQ群:453830884(iOS 请加此群)** 4 | **226214250(此群已满)** 5 | **263989257(此群已满)** 6 | **284084420(此群已满)** 7 | **邮箱:sdk4wb@sina.cn** 8 | **微博:移动新技术** 9 | 另外,关于SDK的Bug反馈、用户体验、以及好的建议,请大家尽量提交到 Github 上,我们会尽快解决。 10 | 目前,我们正在逐步完善微博 SDK,争取为第三方开发者提供一个规范、简单易用、可靠、可扩展、可定制的 SDK,敬请期待。 11 | 12 | # 概述 13 | 微博 iOS 平台 SDK 为第三方应用提供了简单易用的微博API调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权登陆,并提供微博分享功能,可直接通过微博官方客户端分享微博。 14 | 15 | #快速集成 16 | WeiboSDK支持使用Cocoapods集成,请在Podfile中添加以下语句: 17 | ```ruby 18 | pod "WeiboSDK", :git => "https://github.com/sinaweibosdk/weibo_ios_sdk.git" 19 | ``` 20 | #API文档 21 | [http://sinaweibosdk.github.io/weibo_ios_sdk/index.html](http://sinaweibosdk.github.io/weibo_ios_sdk/index.html) 22 | 23 | #常见问题 FAQ 24 | [https://github.com/sinaweibosdk/weibo_ios_sdk/blob/master/FAQ.md](https://github.com/sinaweibosdk/weibo_ios_sdk/blob/master/FAQ.md) 25 | # 名词解释 26 | | 名词 | 注解 | 27 | | -------- | :----- | 28 | | AppKey | 分配给每个第三方应用的 app key。用于鉴权身份,显示来源等功能。| 29 | | RedirectURI | 应用回调页面,可在新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中找到。| 30 | | AccessToken | 表示用户身份的 token,用于微博 API 的调用。| 31 | | Expire in | 过期时间,用于判断登录是否过期。| 32 | 33 | # 功能列表 34 | ### 1. 认证授权 35 | 为开发者提供 Oauth2.0 授权认证,并集成 SSO 登录功能。 36 | ### 2. 微博分享 37 | 从第三方应用分享信息到微博,目前只支持通过微博官方客户端进行分享。 38 | ### 3. 登入登出 39 | 微博登入按钮主要是简化用户进行 SSO 登陆,实际上,它内部是对 SSO 认证流程进行了简单的封装。 40 | 微博登出按钮主要提供一键登出的功能,帮助开发者主动取消用户的授权。 41 | ### 4.OpenAPI通用调用 42 | OpenAPI通用调用接口,帮助开发者访问开放平台open api(http://open.weibo.com/wiki/微博API) 43 | 此外,还提供了一系列封装了open api调用的接口,方便开发者使用。 44 | ### 5. 社会化评论服务、原生关注组件 45 | 提供社会化评论按钮和原生关注按钮,简化用户进行关注以及评论的流程。 46 | # 适用范围 47 | 使用此SDK需满足以下条件: 48 | 49 | - 在新浪微博开放平台注册并创建应用 50 | - 已定义本应用的授权回调页 51 | - 已选择应用为iOS平台,并正确填写Bundle id和appple id 52 | 53 | 注: 关于授权回调页对移动客户端应用来说对用户是不可见的,所以定义为何种形式都将不影响,但是没有定义将无法使用SDK认证登录。建议使用默认回调页 https://api.weibo.com/oauth2/default.html 54 | 55 | # iOS9的适配问题 56 | 由于iOS9的发布影响了微博SDK与应用的集成方式,为了确保好的应用体验,我们需要采取如下措施: 57 | ###1.对传输安全的支持 58 | 在新一代的iOS系统中,默认需要为每次网络传输建立SSL。解决这个问题有两种方法: 59 | 60 | - A.建立白名单并添加到你的app的plsit中 61 | - 62 | NSAppTransportSecurity 63 | 64 | NSExceptionDomains 65 | 66 | sina.cn 67 | 68 | NSIncludesSubdomains 69 | 70 | NSThirdPartyExceptionRequiresForwardSecrecy 71 | 72 | 73 | weibo.cn 74 | 75 | NSIncludesSubdomains 76 | 77 | NSThirdPartyExceptionRequiresForwardSecrecy 78 | 79 | 80 | weibo.com 81 | 82 | NSIncludesSubdomains 83 | 84 | NSThirdPartyExceptionAllowsInsecureHTTPLoads 85 | 86 | NSThirdPartyExceptionRequiresForwardSecrecy 87 | 88 | 89 | sinaimg.cn 90 | 91 | NSIncludesSubdomains 92 | 93 | NSThirdPartyExceptionAllowsInsecureHTTPLoads 94 | 95 | NSThirdPartyExceptionRequiresForwardSecrecy 96 | 97 | 98 | sinajs.cn 99 | 100 | NSIncludesSubdomains 101 | 102 | NSThirdPartyExceptionAllowsInsecureHTTPLoads 103 | 104 | NSThirdPartyExceptionRequiresForwardSecrecy 105 | 106 | 107 | sina.com.cn 108 | 109 | NSIncludesSubdomains 110 | 111 | NSThirdPartyExceptionAllowsInsecureHTTPLoads 112 | 113 | NSThirdPartyExceptionRequiresForwardSecrecy 114 | 115 | 116 | 117 | 118 | 119 | 如果没有添加可能会遇到"An SSL error has occurred and a secure connection to 120 | the server cannot be made."这样的问题。 121 | 122 | - B.强制将NSAllowsArbitraryLoads属性设置为YES,并添加到你应用的plist中 123 | - 124 | NSAppTransportSecurity 125 | 126 | NSAllowsArbitraryLoads 127 | 128 | 129 | 130 | ###2.对应用跳转的支持 131 | 如果你需要用到微博的相关功能,如登陆,分享等。并且需要实现跳转到微博的功能,在iOS9系统中就需要在你的app的plist中添加下列键值对。否则在canOpenURL函数执行时,就会返回NO。了解详情请至[https://developer.apple.com/videos/wwdc/2015/?id=703](https://developer.apple.com/videos/wwdc/2015/?id=703) 132 | 133 | - 134 | LSApplicationQueriesSchemes 135 | 136 | sinaweibohd 137 | sinaweibo 138 | weibosdk 139 | weibosdk2.5 140 | 141 | 142 | ###3.应用瘦身与bitcode 143 | 苹果在iOS9的SDK中添加了对应用的瘦身的支持,其中就包括bitcode。我们也在最新的代码中添加了对bitcode的支持 144 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboShare.h: -------------------------------------------------------------------------------- 1 | // 2 | // WBHttpRequest+WeiboShare.h 3 | // WeiboSDK 4 | // 5 | // Created by DannionQiu on 14/10/31. 6 | // Copyright (c) 2014年 SINA iOS Team. All rights reserved. 7 | // 8 | 9 | #import "WBHttpRequest.h" 10 | 11 | @class WBImageObject; 12 | 13 | @interface WBHttpRequest (WeiboShare) 14 | 15 | /*! 16 | @method 17 | 18 | @abstract 19 | 获得当前授权用户的微博id列表。 20 | 21 | @param userID 当前授权用户的uid 22 | 23 | @param accessToken 当前授权用户的accessToken 24 | 25 | @param otherProperties 一个NSDictionary字典,承载任意想额外添加到请求中的参数。 26 | 27 | @param queue 指定发送请求的NSOperationQueue,如果这个参数为nil,则请求会发送在MainQueue( [NSOperationQueue mainQueue] )中。 28 | 29 | @param handler 完成请求后会回调handler,处理完成请求后的逻辑。 30 | */ 31 | + (WBHttpRequest *)requestForStatusIDsFromCurrentUser:(NSString*)userID 32 | withAccessToken:(NSString*)accessToken 33 | andOtherProperties:(NSDictionary*)otherProperties 34 | queue:(NSOperationQueue*)queue 35 | withCompletionHandler:(WBRequestHandler)handler; 36 | 37 | /*! 38 | @method 39 | 40 | @abstract 41 | 转发微博。转发微博id所对应的微博。 42 | 43 | @param statusID 微博id,微博的唯一标识符。 44 | 45 | @param text 添加的转发文本,内容不超过140个汉字,不填则默认为“转发微博”。 46 | 47 | @param accessToken 当前授权用户的accessToken 48 | 49 | @param otherProperties 一个NSDictionary字典,承载任意想额外添加到请求中的参数。 50 | 51 | @param queue 指定发送请求的NSOperationQueue,如果这个参数为nil,则请求会发送在MainQueue( [NSOperationQueue mainQueue] )中。 52 | 53 | @param handler 完成请求后会回调handler,处理完成请求后的逻辑。 54 | */ 55 | + (WBHttpRequest *)requestForRepostAStatus:(NSString*)statusID 56 | repostText:(NSString*)text 57 | withAccessToken:(NSString*)accessToken 58 | andOtherProperties:(NSDictionary*)otherProperties 59 | queue:(NSOperationQueue*)queue 60 | withCompletionHandler:(WBRequestHandler)handler; 61 | 62 | /*! 63 | @method 64 | 65 | @abstract 66 | 发表一个微博(无图或者带一张图片的微博)。 67 | 68 | @param statusText 要发布的微博文本内容,内容不超过140个汉字。 69 | 70 | @param imageObject 要上传的图片,仅支持JPEG、GIF、PNG格式,图片大小小于5M。这个参数可为nil。由于只能传一张图片,若imageObject和url都有值,请看@caution。 71 | 72 | @param url 图片的URL地址,必须以http开头。这个参数可为nil,由于只能传一张图片,若imageObject和url都有值,请看@caution。 73 | 74 | @param accessToken 当前授权用户的accessToken 75 | 76 | @param otherProperties 一个NSDictionary字典,承载任意想额外添加到请求中的参数。 77 | 78 | @param queue 指定发送请求的NSOperationQueue,如果这个参数为nil,则请求会发送在MainQueue( [NSOperationQueue mainQueue] )中。 79 | 80 | @param handler 完成请求后会回调handler,处理完成请求后的逻辑。 81 | 82 | @caution 注意,如果参数imageObject和url都有值,则发布带有imageObject所对应的图片,忽略url所对应的图片。 83 | */ 84 | + (WBHttpRequest *)requestForShareAStatus:(NSString*)statusText 85 | contatinsAPicture:(WBImageObject*)imageObject 86 | orPictureUrl:(NSString*)url 87 | withAccessToken:(NSString*)accessToken 88 | andOtherProperties:(NSDictionary*)otherProperties 89 | queue:(NSOperationQueue*)queue 90 | withCompletionHandler:(WBRequestHandler)handler; 91 | 92 | 93 | @end 94 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WBHttpRequest+WeiboToken.h: -------------------------------------------------------------------------------- 1 | // 2 | // WBHttpRequest+WeiboToken.h 3 | // WeiboSDK 4 | // 5 | // Created by DannionQiu on 14/11/6. 6 | // Copyright (c) 2014年 SINA iOS Team. All rights reserved. 7 | // 8 | 9 | #import "WBHttpRequest.h" 10 | 11 | @interface WBHttpRequest (WeiboToken) 12 | /*! 13 | @method 14 | 15 | @abstract 16 | 使用RefreshToken去换取新的身份凭证AccessToken. 17 | 18 | @discussion 19 | 在SSO授权登录后,服务器会下发有效期为7天的refreshToken以及有效期为1天的AccessToken。 20 | 当有效期为1天的AccessToken过期时,可以调用该接口带着refreshToken信息区换取新的AccessToken。 21 | @param refreshToken refreshToken 22 | 23 | @param queue 指定发送请求的NSOperationQueue,如果这个参数为nil,则请求会发送在MainQueue( [NSOperationQueue mainQueue] )中。 24 | 25 | @param handler 完成请求后会回调handler,处理完成请求后的逻辑。 26 | */ 27 | + (WBHttpRequest *)requestForRenewAccessTokenWithRefreshToken:(NSString*)refreshToken 28 | queue:(NSOperationQueue*)queue 29 | withCompletionHandler:(WBRequestHandler)handler; 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WBSDKBasicButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // WBSDKBasicButton.h 3 | // WeiboSDK 4 | // 5 | // Created by DannionQiu on 14/10/24. 6 | // Copyright (c) 2014年 SINA iOS Team. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class WBSDKBasicButton; 12 | typedef void (^WBSDKButtonHandler)(WBSDKBasicButton *button, 13 | BOOL isSuccess, 14 | NSDictionary *resultDict); 15 | 16 | @interface WBSDKBasicButton : UIButton 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WBSDKCommentButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // WBSDKCommentButton.h 3 | // WeiboSDK 4 | // 5 | // Created by DannionQiu on 14/10/26. 6 | // Copyright (c) 2014年 SINA iOS Team. All rights reserved. 7 | // 8 | 9 | #import "WBSDKBasicButton.h" 10 | 11 | @interface WBSDKCommentButton : WBSDKBasicButton 12 | 13 | /** 14 | 初始化一个社会化评论按钮 15 | @param frame 按钮的frame值 16 | @param accessToken 用户授权后获取的Token 17 | @param keyWord 社会化评论的热点词 18 | @param urlString 社会化评论链接,可传空 19 | @param category 领域ID, 此参数为必选参数。 20 | @param handler 回调函数,当用户点击按钮,进行完与社会化评论组件相关的交互之后,回调的函数。 21 | */ 22 | - (id)initWithFrame:(CGRect)frame 23 | accessToken:(NSString*)accessToken 24 | keyword:(NSString*)keyWord 25 | urlString:(NSString*)urlString 26 | category:(NSString*)category 27 | completionHandler:(WBSDKButtonHandler)handler; 28 | 29 | @property (nonatomic, strong)NSString* keyWord; 30 | @property (nonatomic, strong)NSString* accessToken; 31 | @property (nonatomic, strong)NSString* urlString; 32 | @property (nonatomic, strong)NSString* category; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WBSDKRelationshipButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // WBSDKRelationshipButton.h 3 | // WeiboSDK 4 | // 5 | // Created by DannionQiu on 14/10/26. 6 | // Copyright (c) 2014年 SINA iOS Team. All rights reserved. 7 | // 8 | 9 | #import "WBSDKBasicButton.h" 10 | 11 | enum 12 | { 13 | WBSDKRelationshipButtonStateFollow, 14 | WBSDKRelationshipButtonStateUnfollow 15 | }; 16 | typedef NSUInteger WBSDKRelationshipButtonState; 17 | 18 | 19 | 20 | @interface WBSDKRelationshipButton : WBSDKBasicButton 21 | 22 | /** 23 | 初始化一个关注组件按钮 24 | @param frame 按钮的frame值 25 | @param accessToken 用户授权后获取的Token 26 | @param currentUserID 当前用户的uid值 27 | @param followerUserID 希望当前用户加关注的用户uid值 28 | @param handler 回调函数,当用户点击按钮,进行完关注组件相关的交互之后,回调的函数。 29 | */ 30 | - (id)initWithFrame:(CGRect)frame 31 | accessToken:(NSString*)accessToken 32 | currentUser:(NSString*)currentUserID 33 | followUser:(NSString*)followerUserID 34 | completionHandler:(WBSDKButtonHandler)handler; 35 | 36 | @property (nonatomic, strong)NSString* accessToken; 37 | @property (nonatomic, strong)NSString* currentUserID; 38 | @property (nonatomic, strong)NSString* followUserID; 39 | 40 | 41 | @property (nonatomic, assign)WBSDKRelationshipButtonState currentRelationShip; 42 | 43 | 44 | /** 45 | 获取最新的关注状态 46 | 该方法会调用OpenApi,获取当前用户与目标用户之间的关注状态,并将按钮的状态改变为正确的状态。 47 | */ 48 | - (void)checkCurrentRelationship; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/alert_error_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/alert_error_icon@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/alert_success_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/alert_success_icon@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/close.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/close@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_big_blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_big_blue@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_big_blue_disable@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_big_blue_disable@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_big_blue_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_big_blue_highlighted@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white_highlighted.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_button_white_highlighted@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_icon_arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/common_icon_arrow@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_keyboardbutton_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_keyboardbutton_background.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_keyboardbutton_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_keyboardbutton_background@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_toolbar_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_toolbar_background.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_toolbar_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/compose_toolbar_background@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/empty_failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/empty_failed.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/empty_failed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/empty_failed@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/login_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/login_background@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/login_country_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/login_country_background@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/login_country_background_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/login_country_background_highlighted@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background_os7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background_os7.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background_os7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/navigationbar_background_os7@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/progresshud_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/progresshud_background@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/sdk_weibo_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/sdk_weibo_logo.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/sdk_weibo_logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/sdk_weibo_logo@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/sdk_weibo_logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/sdk_weibo_logo@3x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_addattention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_addattention.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_addattention@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_addattention@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_addattention@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_addattention@3x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_attention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_attention.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_attention@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_attention@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_attention@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/timeline_relationship_icon_attention@3x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button@3x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button_highlighted@2x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button_highlighted@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/images/verify_code_button_highlighted@3x.png -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/others/countryList: -------------------------------------------------------------------------------- 1 | {"香港地区":{"code":"00852","rule":{"mcc":["454"]}},"台湾地区":{"code":"00886","rule":{"mcc":["466"]}},"澳门地区":{"code":"00853","rule":{"mcc":["455"]}},"日本":{"code":"0081","rule":{"mcc":["440","441"]}},"韩国":{"code":"0082","rule":{"mcc":["450"]}},"新加坡":{"code":"0065","rule":{"mcc":["525"]}},"马来西亚":{"code":"0060","rule":{"mcc":["502"]}},"美国":{"code":"001","rule":{"mcc":["310","311","316"]}},"加拿大":{"code":"001","rule":{"mcc":["302"]}},"澳大利亚":{"code":"0061","rule":{"mcc":["505"]}},"英国":{"code":"0044","rule":{"mcc":["234"]}},"法国":{"code":"0033","rule":{"mcc":["208"]}},"俄罗斯":{"code":"007","rule":{"mcc":["250"]}},"印度":{"code":"0091","rule":{"mcc":["404"]}},"泰国":{"code":"0066","rule":{"mcc":["520"]}},"德国":{"code":"0049","rule":{"mcc":["262"]}}} -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/others/mfp.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/WeiboSDK.bundle/others/mfp.cer -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/WeiboUser.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeiboUser.h 3 | // WeiboSDK 4 | // 5 | // Created by DannionQiu on 14-9-23. 6 | // Copyright (c) 2014年 SINA iOS Team. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /*@ 12 | You can get the latest WeiboUser field description on http://open.weibo.com/wiki/2/friendships/friends/en . 13 | */ 14 | @interface WeiboUser : NSObject 15 | 16 | - (instancetype)initWithDictionary:(NSDictionary*)paraDict; 17 | + (instancetype)userWithDictionary:(NSDictionary*)paraDict; 18 | 19 | // Validate the dictionary to be converted. 20 | + (BOOL)isValidForDictionary:(NSDictionary *)dict; 21 | 22 | - (BOOL)updateWithDictionary:(NSDictionary*)paraDict; 23 | 24 | 25 | @property(readwrite, strong, nonatomic) NSString* userID; 26 | @property(readwrite, strong, nonatomic) NSString* userClass; 27 | @property(readwrite, strong, nonatomic) NSString* screenName; 28 | @property(readwrite, strong, nonatomic) NSString* name; 29 | @property(readwrite, strong, nonatomic) NSString* province; 30 | @property(readwrite, strong, nonatomic) NSString* city; 31 | @property(readwrite, strong, nonatomic) NSString* location; 32 | @property(readwrite, strong, nonatomic) NSString* userDescription; 33 | @property(readwrite, strong, nonatomic) NSString* url; 34 | @property(readwrite, strong, nonatomic) NSString* profileImageUrl; 35 | @property(readwrite, strong, nonatomic) NSString* coverImageUrl; 36 | @property(readwrite, strong, nonatomic) NSString* coverImageForPhoneUrl; 37 | @property(readwrite, strong, nonatomic) NSString* profileUrl; 38 | @property(readwrite, strong, nonatomic) NSString* userDomain; 39 | @property(readwrite, strong, nonatomic) NSString* weihao; 40 | @property(readwrite, strong, nonatomic) NSString* gender; 41 | @property(readwrite, strong, nonatomic) NSString* followersCount; 42 | @property(readwrite, strong, nonatomic) NSString* friendsCount; 43 | @property(readwrite, strong, nonatomic) NSString* pageFriendsCount; 44 | @property(readwrite, strong, nonatomic) NSString* statusesCount; 45 | @property(readwrite, strong, nonatomic) NSString* favouritesCount; 46 | @property(readwrite, strong, nonatomic) NSString* createdTime; 47 | @property(readwrite, assign, nonatomic) BOOL isFollowingMe; 48 | @property(readwrite, assign, nonatomic) BOOL isFollowingByMe; 49 | @property(readwrite, assign, nonatomic) BOOL isAllowAllActMsg; 50 | @property(readwrite, assign, nonatomic) BOOL isAllowAllComment; 51 | @property(readwrite, assign, nonatomic) BOOL isGeoEnabled; 52 | @property(readwrite, assign, nonatomic) BOOL isVerified; 53 | @property(readwrite, strong, nonatomic) NSString* verifiedType; 54 | @property(readwrite, strong, nonatomic) NSString* remark; 55 | @property(readwrite, strong, nonatomic) NSString* statusID; 56 | @property(readwrite, strong, nonatomic) NSString* ptype; 57 | @property(readwrite, strong, nonatomic) NSString* avatarLargeUrl; 58 | @property(readwrite, strong, nonatomic) NSString* avatarHDUrl; 59 | @property(readwrite, strong, nonatomic) NSString* verifiedReason; 60 | @property(readwrite, strong, nonatomic) NSString* verifiedTrade; 61 | @property(readwrite, strong, nonatomic) NSString* verifiedReasonUrl; 62 | @property(readwrite, strong, nonatomic) NSString* verifiedSource; 63 | @property(readwrite, strong, nonatomic) NSString* verifiedSourceUrl; 64 | @property(readwrite, strong, nonatomic) NSString* verifiedState; 65 | @property(readwrite, strong, nonatomic) NSString* verifiedLevel; 66 | @property(readwrite, strong, nonatomic) NSString* onlineStatus; 67 | @property(readwrite, strong, nonatomic) NSString* biFollowersCount; 68 | @property(readwrite, strong, nonatomic) NSString* language; 69 | @property(readwrite, strong, nonatomic) NSString* star; 70 | @property(readwrite, strong, nonatomic) NSString* mbtype; 71 | @property(readwrite, strong, nonatomic) NSString* mbrank; 72 | @property(readwrite, strong, nonatomic) NSString* block_word; 73 | @property(readwrite, strong, nonatomic) NSString* block_app; 74 | @property(readwrite, strong, nonatomic) NSString* credit_score; 75 | @property(readwrite, strong, nonatomic) NSDictionary* originParaDict; 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /Pods/WeiboSDK/libWeiboSDK/libWeiboSDK.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/Pods/WeiboSDK/libWeiboSDK/libWeiboSDK.a -------------------------------------------------------------------------------- /imageFolder/icon_share_appstore_doam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_appstore_doam.png -------------------------------------------------------------------------------- /imageFolder/icon_share_associatedDomain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_associatedDomain.png -------------------------------------------------------------------------------- /imageFolder/icon_share_ercilianjie_wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_ercilianjie_wechat.png -------------------------------------------------------------------------------- /imageFolder/icon_share_libraries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_libraries.png -------------------------------------------------------------------------------- /imageFolder/icon_share_login_frae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_login_frae.png -------------------------------------------------------------------------------- /imageFolder/icon_share_other_linkes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_other_linkes.png -------------------------------------------------------------------------------- /imageFolder/icon_share_schem_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_schem_set.png -------------------------------------------------------------------------------- /imageFolder/icon_share_scheme.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_scheme.jpeg -------------------------------------------------------------------------------- /imageFolder/icon_share_universal_sets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_universal_sets.png -------------------------------------------------------------------------------- /imageFolder/icon_share_universal_wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiuFuBo/LFBSocialSDK/3b1260550de8c30284e0735ff890dbc9c68321c7/imageFolder/icon_share_universal_wechat.png -------------------------------------------------------------------------------- /podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'LFBSocialSDKDemo' do 5 | 6 | pod 'WechatOpenSDK', '~> 1.8.7.1' 7 | pod 'TencentOpenAPI', '~> 1.0.0' 8 | pod 'WeiboSDK', '~> 3.1.3' 9 | pod 'Masonry', '~> 1.1.0' 10 | 11 | 12 | 13 | 14 | 15 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks 16 | # use_frameworks! 17 | 18 | # Pods for LFBSocialSDKDemo 19 | 20 | target 'LFBSocialSDKDemoTests' do 21 | inherit! :search_paths 22 | # Pods for testing 23 | end 24 | 25 | target 'LFBSocialSDKDemoUITests' do 26 | inherit! :search_paths 27 | # Pods for testing 28 | end 29 | 30 | end 31 | --------------------------------------------------------------------------------