Swift ShareSDK遇到的问题解决方案汇总

环境:Xcode7.2  ios9.2   语言Swift

注意:

新浪微博应用的回调页一定要设置并且要和工程里面设置的回调页一样才能使用新浪微博分享,不然会报错误error:redirect_uri_mismatch

首先设置

  1. 支持http协议

(1)暂时回退到http协议 info plist加

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

问题一:

“....... app is not allowed to query for scheme sinaweibosso”

解决方法:

iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。

在iOS9/10下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。 同样在info.plist增加LSApplicationQueriesSchemes参考:http://dev.umeng.com/social/ios/ios9


问题二,上面的错误解决后又报了如下错误

....failed for URL: "wtloginmqq2://qzapp" - error: "(null)"..


网上说:

这是模拟器的问题,使用真机测试就不会有这种问题了!

参考:https://segmentfault.com/q/1010000003741815(我还没验证,没有iphone手机没法真机调试)

问题三:

真机调试出现:

There was an internal API error.

错误原因:把Product Name作为程序名称,程序名称错乱

解决方法:检查Product Name, 不要包含中文以及特殊字符。在info.plist中新增Bundle display name:我的程序名称。程序名称改为英文,Product Name也改为一样的。

问题四:

弹出的分享菜单无法显示为中文(真机和模拟器已经设置为简体中文)

如果手机设置为中文还不行的话,那检查下项目里有没有设置本地话么,project-info-Localization,里面看看有没有Chinese和English,如果设置了还有这样的问题的话,那自己在plist文件里在加上Localization,也设置下Chinese和English

问题五:模拟器iphone4,iphone5调试报错(真机iphone4调试也报错)

Undefined symbols for architecture i386:

  "_OBJC_CLASS_$_QQApiInterface", referenced from:

将包删除后重新导入(发现还是在模拟器上报这个错但是真机可以调试了)

解决方案参考:

问题五:隐藏某个分享平台(使某个平台不显示)

控制平台是否显示在AppDelegate.swift中

ShareSDK.registerApp("16f422b09c7cf",

            

            activePlatforms: [

                SSDKPlatformType.TypeSinaWeibo.rawValue,

                

                SSDKPlatformType.TypeQQ.rawValue,

                SSDKPlatformType.TypeWechat.rawValue,],

......

问题六:控制平台的显示顺序:


在items:里面控制显示顺序

问题七:自定义分享平台的图片:

替换导入工程中的图片就行了


https://segmentfault.com/q/1010000003741815

http://www.jianshu.com/p/e38a609f786e

http://dev.umeng.com/social/ios/ios9


http://www.th7.cn/Program/IOS/201604/796733.shtml

http://blog.csdn.net/soindy/article/details/48684013

http://www.bkjia.com/IOSjc/1117354.html

Facebook Swift SDK for Swift支持许多Facebook服务,包括Facebook分析、Facebook登录、分享到Facebook和Facebook Graph API。该SDK以现有的Objective-C Facebook SDK为基础构建了一套封装器,旨在提供一种原生的Swift API和更简单的开发体验。Facebook Swift SDK支持两个最流行的iOS/macOS包管理系统CocoaPods和Carthage。使用CocoaPods添加该SDK的话,可以在Podfile中添加以下几行信息:pod 'FacebookCore' pod 'FacebookLogin' pod 'FacebookShare'如果使用Carthage,则可以在Cartfile中添加下面这行信息:github "facebook/Facebook-SDK-Swift"另外,你还可以将Facebook Swift SDK作为Xcode项目的子项目。不过使用这种方法时,你需要注意所有的依赖(FBSDKCoreKit.framework、FBSDKLoginKit.framework和FBSDKShareKit.framework,等等)及它们的升级。Facebook Swift SDK的GitHub库包含一个示例项目,说明如何将支持的服务集成进你的应用。下面是一个如何使用该SDK提供的ShareDialogViewController分享照片的例子:let photo = Photo(image: UIImage(named: "sky.jpg")!, userGenerated: true) let content = PhotoShareContent(photos: [photo]) let dialog = ShareDialog(content: content) dialog.presentingViewController = self dialog.mode = .Automatic do {     try dialog.show() } catch (let error) {     let alertController = UIAlertController(title: "Invalid share content", message: "Failed to present share dialog with error \(error)")     presentViewController(alertController, animated: true, completion: nil) }Facebook Swift SDK面向Swift 2.2.1和2.3,允许开发人员将应用提交到应用商店。介绍摘自:http://www.infoq.com/cn/news/2016/07/facebook-swift-sdk 标签:FaceBook
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值