Swift 更新后导致编译器错误的FacebookShare

Swift 更新后导致编译器错误的FacebookShare,swift,facebook,cocoapods,Swift,Facebook,Cocoapods,我刚刚为我的应用程序运行了pod update,现在它无法编译,这些问题来自FacebookShare中的LinkShareContent.swift Cannot assign to property: 'contentDescription' is a get-only property Cannot assign to property: 'contentTitle' is a get-only property Cannot assign to property: 'imageURL'

我刚刚为我的应用程序运行了
pod update
,现在它无法编译,这些问题来自
FacebookShare
中的
LinkShareContent.swift

Cannot assign to property: 'contentDescription' is a get-only property
Cannot assign to property: 'contentTitle' is a get-only property
Cannot assign to property: 'imageURL' is a get-only property
以下是我的pod更新中与Facebook相关的内容:

Installing FBSDKCoreKit 4.23.0 (was 4.22.0)
Installing FBSDKLoginKit 4.23.0 (was 4.22.0)
Installing FBSDKShareKit 4.23.0 (was 4.22.0)
Using FacebookCore (0.2.0)
Using FacebookLogin (0.2.0)
Using FacebookShare (0.2.0)

有人知道这个问题吗?我做错什么了吗?

关于
FBSDKShareLinkContent
的文档,这些属性已被弃用:

@已弃用的
contentDescription
在Graph API 2.9中已弃用。 有关详细信息,请参阅

@已弃用的
contentTitle
在图形API 2.9中已弃用。 有关详细信息,请参阅

@已弃用的
imageURL
在Graph API 2.9中已弃用。 有关详细信息,请参阅

您可能应该使用
quote
contentURL
来代替它们


作为临时解决方案,您可以取消阻止文件
LinkShareContent.swift
,并直接删除上面的行,直到Facebook发布任何更新。

用以下内容替换您的Podfile内容:

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare', :git => 'https://github.com/1amageek/facebook-sdk-swift'

我不认为引用Github用户1amageek的回购协议

pod 'FacebookShare', :git => 'https://github.com/1amageek/facebook-sdk-swift'
这是一个好主意,1amageek可能是世界上最棒的开发者,但仍然会删除他/她的Facebook Swift SDK分支

在修复之前,您应该将播客文件更改为

pod 'FacebookCore', '~> 0.2'
pod 'FacebookLogin', '~> 0.2'
pod 'FacebookShare', '~> 0.2'
pod 'FBSDKCoreKit', '~> 4.22.1'
pod 'FBSDKLoginKit', '~> 4.22.1'
pod 'FBSDKShareKit', '~> 4.22.1'
然后再次运行
pod update

请注意,这段代码并没有添加“重复”的pod(旧的FBSDK[Core etc]+新的Facebook[Core etc]),代码只是完全明确说明了您正在安装的pod。如果您仅列出POD
FacebookCore
FacebookLogin
FacebookShare
,则FBSDK将由Cocoapods作为依赖项安装

参考:

上传共享代码谢谢,修复了它!这解决了我的问题,也解决了同样的问题。你能详细说明需要采取哪些步骤吗?由于此代码位于库
RCTFBSDK
库中,我可以编辑它们而不必担心被覆盖吗?我可以注释掉整个
FBSDKShareLinkContent
代码块吗?我甚至不在我的项目中使用此功能。我建议将此答案与@Brigadier answer混合,创建一个sdk分支并注释这些属性,然后指向您的repo,如果您直接在项目podlock文件代理处更改这些内容。您能告诉我这到底是做什么的吗?@JonathanTuzman它可以让您编译项目而不会出现您发布的错误。这是一个用Swift编写的Facebook SDK(目前处于测试阶段)。这是第三方回购协议吗?我们能相信它吗?@RobertYiJiang是的,它是“第三方”,不,我认为它不应该依赖于你——这对我很有效。我可以问你“如果你的pod文件中只有FacebookCore、FacebookLogin和FacebookShare,那么FBSDK将被安装”是什么意思吗?@cheznead我更新了我回答的这一部分,试图让它更有意义,如果你仍然不清楚,请告诉我