FacebookShare 0.9.0

FacebookShare 0.9.0

测试已测试
语言语言 SwiftSwift
许可证 NOASSERTION
发布上次发布2019年9月
SPM支持SPM

Joe Susnick 维护。



 
依赖项
FacebookCore~> 0.9.0
FBSDKCoreKit~> 5.0
FBSDKShareKit~> 5.0
 

  • Facebook

Swift中的Facebook SDK(Beta)

Swift Version Platforms Build Status

CocoaPods Carthage compatible

为将您的应用程序与Facebook集成而优化的Swift体验。包括:

重要

注意:此SDK是在ObjC SDK周围的一个包装器。项目内部使用Carthage管理以"FBSDK"为前缀的库的依赖关系。它的目的是提供一层类型安全,围绕原始类型以及支持现代Swift和iOS范式。请参阅我们的路线图以获取有关现代化此项目策略的信息。

安装

CocoaPods

请确保您正在运行最新版本的 CocoaPods,可以通过运行

gem install cocoapods

# (or if the above fails)
sudo gem install cocoapods

注意:我们支持 CocoaPods 1.0.1 或更高版本。

通过运行以下命令更新您的本地 spec 仓库:

pod repo update

注意:此步骤是可选的,如果您最近已更新了 spec 仓库。

将以下行添加到您的 Podfile 中

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'

运行 pod install,设置完成!

如果您不需要 SDK 那些部分的特定功能,可以排除这些依赖项。

Carthage

请确保您正在运行最新版本的 Carthage,可以通过运行

brew update
brew upgrade carthage

注意:我们推荐使用 Carthage 版本 0.31.1 或更高版本。

将以下行添加到您的 Cartfile

github "facebook/facebook-swift-sdk"

# If you run into issues, try targeting the master branch
github "facebook/facebook-swift-sdk" "master"

运行 carthage update

注意:这将从 Carthage/Checkouts 文件夹中获取依赖项,然后构建每一个。

在您的应用程序目标的 General 设置选项卡中,在 Linked Frameworks and Libraries 部分。

至少,您需要将以下框架从 Carthage/Build 文件夹拖放到您的应用程序目标中

  • FacebookCore.framework
  • FBSDKCoreKit.framework

为了使用 Facebook 登录

  • FacebookLogin.framework
  • FBSDKLoginKit.framework

为了使用分享和发送对话框

  • FacebookShare.framework
  • FBSDKShareKit.framework

在您的应用程序目标的 Build Phases 选项卡中

  • 单击 + 图标并选择 New Run Script Phase
  • 创建一个具有您选择的Shell(例如,/bin/sh)的脚本。
  • 将以下内容添加到Shell下的脚本区域:
/usr/local/bin/carthage copy-frameworks
  • 将要在 Input Files 下添加的框架路径,例如:
$(SRCROOT)/Carthage/Build/iOS/FacebookCore.framework
$(SRCROOT)/Carthage/Build/iOS/FBSDKCoreKit.framework

将 Facebook SDK 作为子项目使用

虽然不推荐,但完全可以在外部依赖管理系统中构建 Swift 的 Facebook SDK。

注意:您将必须自己管理更新此解决方案(以及 iOS Facebook SDK 的依赖项)。

  • 克隆仓库。
  • 在仓库根目录中运行以下命令: git submodule update --init --recursive
  • FacebookSwift.xcodeproj 添加为您应用程序的子项目。
  • 将子项目中的FacebookCore.frameworkFacebookLogin.frameworkFacebookShare.framework构建产品添加到您应用的链接框架和库以及嵌入的二进制文件部分。

别忘了还需要嵌入/链接FBSDKCoreKit.frameworkFBSDKLoginKit.frameworkFBSDKShareKit.framework

模块

Swift中的Facebook SDK框架组织方式与iOS中的Facebook SDK相同。

它们目前也依赖于iOS的Facebook SDK,但将来可能会有所改变。

FacebookCore

FacebookCore on CocoaPods

依赖FBSDKCoreKit.framework

包含以下类型,并对Swift进行了增强

  • AccessToken
  • ApplicationDelegate
  • AppEvents

有诸多改进,包括类型安全的内置AppEventAppEvent结构体等等。

  • GraphRequest

现在您可以实现自己的类型安全的GraphRequest,包括原生类型的结果。

  • SDKSettings

日志行为现实现为类型安全的集合,基于Swift枚举。

  • Permission

不再基于字符串(基于字符串),而是分别针对读权限和写权限有单独的类型(还包括一个内置的权限列表,默认情况下包含大多数常见权限)。

FacebookLogin

FacebookCore on CocoaPods

依赖于FacebookCore.frameworkFBSDKLoginKit.framework

包含以下类型,并对Swift进行了增强

  • LoginManager

现在使用来自FacebookCore的类型安全权限,并有带LoginBehaviorDefaultAudience构造函数,而不是需要手动设置属性。

  • LoginButton

创建后无法更改权限,有助于强制使用单个登录按钮对应一组权限。请注意,目前LoginButton不适用于界面构建器或故事板。我们可能会在未来重新考虑这个问题。

FacebookShare

FacebookCore on CocoaPods

依赖于FacebookCore.frameworkFBSDKShareKit.framework

包含以下类型,并对Swift进行了增强

  • LinkShareContent

现在是一个结构体,并具有强制要求的属性的适当初始化。

  • OpenGraphShareContent

现在是一个结构体,使用类型安全的 OpenGraphPropertyNameOpenGraphPropertyValue,以及结构体 OpenGraphObjectOpenGraphAction

  • PhotoShareContent

现在是一个结构体,对其进行属性有了更好的类型安全性。

  • VideoShareContent

现在是一个结构体,对其进行属性有了更好的类型安全性。

  • GraphSharer

现在是一个泛型类型,可以处理任何类型的内容。

  • ShareDialog

现在是一个泛型类型,可以处理任何类型的内容。

  • MessageDialog

现在是一个泛型类型,可以处理任何类型的内容。

  • GameRequest

现在是一个结构体,包含对 RecipientResult 的适当类型安全的枚举。

  • GameRequest.Dialog
  • AppGroupRequest.Dialog
  • AppInvite

现在是一个结构体,使用类型安全的 Promotion 属性,而不是单独的 promotionCodepromotionText

  • AppInvite.Dialog

反馈

Swift的Facebook SDK仍然处于测试版,我们非常希望听到您对它的想法和反馈。

  • 有一个想法或功能请求吗? 提交问题。告诉我们更多关于该功能或想法以及为什么您认为它是相关的。
  • 有待报告的漏洞吗? 提交问题。如果可能的话,包括您使用的SDK版本以及任何技术细节。
  • 需要代码帮助吗? 加入Facebook开发者团队或在Stack Overflow上提问。

贡献

Facebook SDK for Swift的所有开发都在GitHub上发生。贡献可以带来良好的声誉,我们非常欢迎新的贡献者。我们要求您在提交Pull Request之前阅读我们的贡献指南

单元测试术语

对于单元测试,我们选择遵循Martin Fowler提出的测试术语。这是为了避免混淆,因为许多这些术语普遍被误用。

  • 传入假对象,但从未真正使用。通常它们只是用来填充参数列表。
  • 伪造对象具有实际实现,但通常采取一些捷径,使其不适用于生产(内存数据库是一个很好的例子)。
  • 存根在测试中提供预先录制好的答案,通常只对在测试中程序化编程的部分做出响应。
  • 间谍桩是一种也被记录某些信息的桩,根据它们是如何被调用的进行记录。这种形式可能是一种记录被发送消息数量的电子邮件服务。
  • 本文要讨论的是模拟对象:预编程期望的单元对象,这些期望形成调用它们的规范。来源:[https://martinfowler.com.cn/articles/mocksArentStubs.html](https://martinfowler.com.cn/articles/mocksArentStubs.html)

授权

Swift 中的 Facebook SDK 采用 MIT 授权,详情请见 LICENSE 文件。