我试图在一个呈现的视图控制器中使用以下函数显示Facebook ShareDialog使用的是具有以下功能的分享Swift SDK 0.3.2而不是FBSDKShareKit
import FacebookShare
func facebookShare() {
let photo = Photo(image: image, userGenerated: true)
let myContent = PhotoShareContent(photos: [photo])
let shareDialog = ShareDialog(content: myContent)
shareDialog.presentingViewController = self
shareDialog.mode = .automatic
shareDialog.completion = { result in
print("- in completion")
}
do {
try shareDialog.show()
} catch {
print(error)
}
我在控制台中收到此错误。
2018-09-03 16:12:11.235865 + 0100 APPNAME [1865:386979] FBSDKLog:param {“advertiser_tracking_enabled”= 0; “anon_id”=“XXXXX-XXXXXX-XXXXX-XXXXX”; “application_tracking_enabled”= 1; “custom_events”=“[{\”_ ui \“:\”no_ui \“,\”_ eventName \“:\”fb_dialog_share_result \“,\”_ logTime \“:1535987524,\”fb_dialog_outcome_error_message \“:\”错误域= com.facebook.sdk.share Code = 2 \\“(null)\\”UserInfo = {com.facebook.sdk:FBSDKErrorArgumentValueKey =,com.facebook.sdk:FBSDKErrorDeveloperMessageKey =必须具有资产,图像或imageURL值。 ,com.facebook.sdk:FBSDKErrorArgumentNameKey = photo} \“,\”fb_dialog_outcome \“:\”Failed \“,\”_ implicitlyLogged \“:\”1 \“}]”; event =“CUSTOM_APP_EVENTS”; extinfo =“[\”i2 \“,\”com.APPNAME \“,\”1 \“,\”1.0 \“,\”11.4.1 \“,\”iPhone8,4 \“,\”en_GB \ “\ ”BST \“,\ ”三\“ 320568 \ ”2.00 \“,2,60,46,\ ”欧洲\ /伦敦\“]”; “url_schemes”=“[\”fbapiXXXXXXX \“,\”fbXXXXXXXXX \“,\”twitterkit-sasasasasasasa \“,\”com.googleusercontent.apps.XXXXXXXXXXX-XXXXXXXX \“]”; }
虽然错误说:
必须具有资产,图像或imageURL值。
我已经确认UIImage在myContent中,让我们通过断点传递给ShareDialog。
这是在这里提出的FacebookSDK的一个问题:
https://github.com/facebook/facebook-sdk-swift/issues/264
临时解决方法直到修复,从pod文件中删除Facebook pod并添加以下内容,然后运行pod install。
pod 'FacebookCore', '0.3.1'
pod 'FacebookLogin', '0.3.1'
pod 'FacebookShare', '0.3.1'
pod 'FBSDKCoreKit', '4.35.0'
pod 'FBSDKLoginKit', '4.35.0'
pod 'FBSDKShareKit', '4.35.0'