此库已弃用。
感谢大家所做的贡献。
CocoaPods 是 Cocoa 项目的依赖管理工具。您可以使用以下命令安装它
$ gem install cocoapods
要使用 CocoaPods 将 Coinbase SDK 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'coinbase-official', '~> 4.0'
然后,运行以下命令
$ pod install
如果您想使用 Coinbase SDK 的 RxSwift 扩展,请添加
pod 'coinbase-official/RxSwift', '~> 4.0'
Carthage 是一个去中心化的依赖管理器,它可以构建您的依赖并为您提供二进制框架。
您可以使用 Homebrew 通过以下命令安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 Coinbase SDK 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "coinbase/coinbase-ios-sdk"
运行 carthage update
来构建框架,并将构建好的 CoinbaseSDK.framework
拖入您的 Xcode 项目中。 如果您想使用 Coinbase SDK 的 RxSwift 扩展,也请将 RxCoinbaseSDK.framework
添加到您的项目中。
Swift Package Manager 是一个用于自动化 Swift 代码分发的工具,并且集成到了 swift
编译器中。
一旦您设置了 Swift 包,添加 Coinbase SDK 作为依赖项就像将其添加到您的 Package.swift
文件的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/coinbase/coinbase-ios-sdk")
]
并在您想要使用的目标中
targets: [
.target(
name: "<project_name>",
dependencies: ["CoinbaseSDK"])
]
如果您想使用 Coinbase SDK 的 RxSwift 扩展,请将 "RxCoinbaseSDK"
添加到目标的 dependencies
中。
Swift Package Manager 目前不支持资源文件。 Coinbase SDK 需要额外的资源文件才能正常工作 (受信任的 SSL 证书)。 如果您想使用 Swift Package Manager,您应该手动提供这些资源。
您可以在 Coinbase iOS SDK GitHub 仓库中的 Source/Supporting Files/PinnedCertificates
路径下找到所需的资源。 收集这些文件并将它们添加到您的项目中。
使用 Xcode
您还应该额外配置 CoinbaseSDK
目标。在 Build Phases
选项卡中,通过选择 New Copy File Phase
添加一个新阶段。 将所需的资源拖放到此阶段。
使用控制台
要提供所需的资源,您应该将它们复制到包含已构建文件的位置。
示例:如果所需文件位于目录 Resources
中,并且您在 debug
模式下为 x86_64-apple-macosx10.10
平台构建,则可以使用以下命令复制资源
cp Resources/* ./.build/x86_64-apple-macosx10.10/debug
在您想要使用 CoinbaseSDK 的源文件中添加
import CoinbaseSDK
如果您不想使用 CocoaPods 而是想使用 RxSwift 的 CoinbaseSDK 扩展,请通过添加以下行来导入 RxCoinbaseSDK
import RxCoinbaseSDK
要使用 CoinbaseSDK,您需要拥有 Coinbase
类的一个实例。 您可以创建一个新的 Coinbase
实例
let coinbase = Coinbase()
或者您可以使用方便的静态实例
Coinbase.default
要使用需要身份验证的资源,您应该为 Coinbase 实例提供有效的访问令牌。
可以通过将访问令牌的值直接设置为 coinbase
的属性来提供
coinbase.accessToken = accessToken
或者通过将其传递给初始化器
let coinbase = Coinbase(accessToken: accessToken)
如果您没有为 Coinbase 的实例提供访问令牌,则您只能成功使用以下资源
CurrenciesResource (货币资源)
ExchangeRatesResource (汇率资源)
PricesResource (价格资源)
TimeResource (时间资源)
要获取访问令牌,Coinbase iOS SDK 使用 OAuth2 身份验证。
您应该在调用任何授权方法之前,在 Coinbase 实例的 oauth
属性上调用 configure
方法来设置所有必需的属性
coinbase.oauth.configure(clientID: <client_id>,
clientSecret: <client_secret>,
redirectURI: <redirect_uri>)
然后您可以通过调用 beginAuthorization
来启动 OAuth 流程
try coinbase.oauth.beginAuthorization(scope: [Scope.Wallet.Accounts.read, ...])
它会将用户重定向到 Safari 浏览器,在那里他们可以授权您的应用程序。
在 AppDelegate
中,您应该通过在 application(_:open:options:)
中调用 coinbase.oauth.completeAuthorization
方法来处理重定向返回
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let handleCoinbaseOAuth = coinbase.oauth.completeAuthorization(url) { result in
// setup coinbase, e.g. coinbase.accessToken = result.value?.accessToken
}
return handleCoinbaseOAuth
}
要获得有关如何将 OAuth2 与 CoinbaseSDK 结合使用的详细指南,请阅读 获取访问令牌。
用于调用 completeAuthorization
的 Coinbase 实例应与您用于调用 beginAuthorization
方法的实例相同。
访问令牌 的生命周期很短,过期后,应使用 刷新令牌 刷新它。
您可以手动执行刷新,或者通过在 Coinbase 实例上使用 TokenRefreshStrategy.refresh
调用 setRefreshStrategy
来允许自动刷新。
在 令牌刷新 中阅读有关 TokenRefreshStrategy
的更多信息。
CoinbaseSDK 提供了包装器,允许您将其与 RxSwift 一起使用。 要获取有关如何使用它的更多信息,请阅读页面。
要查看有关如何使用 CoinbaseSDK 的更多详细信息,您可以查看示例应用程序或阅读一些 Coinbase 示例。
要能够使用 Coinbase SDK iOS 示例应用程序,您应该设置 OAuth2 应用程序密钥。 您可以在创建 Coinbase OAuth2 应用程序后获得所需的密钥。
clientId
、clientSecret
和 redirectUri
。iOS Example
项目中,填写 Source/Constants.swift
文件中 OAuth2ApplicationKeys
的空值。redirectURI
中使用的自定义 scheme。 在 Info.plist
文件中添加<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Coinbase OAuth Scheme</string>
<key>CFBundleURLSchemes</key>
<array>
<string>[redirect_uri_scheme]</string>
</array>
</dict>
</array>
确保您在 redirectURI
常量和您的 Info.plist
文件中使用了相同的 URI scheme。
例如,如果您的 [redirect_uri_scheme]
是 com.example.app
,那么您的重定向 URI 可以是:com.example.app://callback
要能够运行测试,您应该下载依赖项。 为此,请运行
carthage bootstrap --platform iOS
如果您没有安装 Carthage,请查看 安装说明。
之后,您可以打开 Coinbase.xcworkspace
并选择 CoinbaseSDK
目标并按 ⌘+U 开始测试。
Coinbase 在 Apache License 2.0 下可用。 有关更多信息,请参见 LICENSE 文件。