通过 CocoaPods 在 github 上使用 Restkit 的一个分支?
Posted
技术标签:
【中文标题】通过 CocoaPods 在 github 上使用 Restkit 的一个分支?【英文标题】:Use a fork of Restkit on github via CocoaPods? 【发布时间】:2012-09-12 17:29:36 【问题描述】:restkit 以不同的方式使用 oauth2 协议,我需要更改代码才能以我的方式使用它:
发件人:
// OAuth 2 valid request
if (self.authenticationType == RKRequestAuthenticationTypeOAuth2)
NSString *authorizationString = [NSString stringWithFormat:@"OAuth2 %@", self.OAuth2AccessToken];
[_URLRequest setValue:authorizationString forHTTPHeaderField:@"Authorization"];
到:
// OAuth 2 valid request
if (self.authenticationType == RKRequestAuthenticationTypeOAuth2)
NSString *authorizationString = [NSString stringWithFormat:@"Bearer %@", self.OAuth2AccessToken];
[_URLRequest setValue:authorizationString forHTTPHeaderField:@"Authorization"];
使用“Bearer”代替“Oauth2” ....
我正在使用 CocoaPods 在我的项目中导入 restkit。
我可以在 github 上 fork Restkit 存储库并通过 CocoaPod 使用 fork 而不是官方版本吗?
【问题讨论】:
如果您认为您的更改有意义,请尝试向原始项目发出拉取请求。作为奖励,您不必担心将来维护您的前叉。 【参考方案1】:你当然可以。看看https://github.com/CocoaPods/CocoaPods/wiki/Dependency-declaration-options
如果 RestKit 将其 .podspec
文件包含在存储库中,那么您只需将您的 Podfile
更改为指向您的 fork 即
pod 'RestKit', :git => 'https://github.com/you/RestKit.git'
不幸的是,RestKit 不包括它的.podspec
。而是从https://github.com/CocoaPods/Specs/blob/master/RestKit/0.10.2/RestKit.podspec 复制RestKit.podspec
并将其添加到您的项目中。编辑 .podspec
以使用您的 fork 作为其源。然后,您可以在 Podfile
中指定本地 .podspec
:
pod 'RestKit', :podspec => 'local/path/to/RestKit.podspec'
或者,您也可以将此 .podspec
添加到您的 fork 中并使用以前的依赖项声明。
【讨论】:
谢谢我正要回答我自己的问题! 您还可以从您的 fork 或原始存储库中指向一个精确的, :commit => 'aabbcc'
。
在给定的分叉上也有, :branch => 'branch-name-here'
。
对于未来的观众,这里的整行将是:pod 'RestKit', :git => 'https://github.com/#you#/RestKit.git, :branch => 'branch-name-here'
【参考方案2】:
即使这个问题有一个公认的答案,我还是想添加一种替代方法。在某个时候(我相信在提出这个问题之后)在 Podfiles(而不仅仅是 Podspecs)中具有本地引用的能力被添加到 Cocoapods 中。
与在 Github 和自定义 Podspecs 中创建自定义创建公共分支相比,我发现这样做更容易:
-
在本地克隆 Github 库。
创建一个新的本地分支,我在该库中进行我需要的特定于我的项目的更改。
修改我的 Podfile 以指向该本地目录和本地分支:
pod 'FXForms', :path => '~/Documents/Projects/RestKit', :branch => 'mybranch'
这使我可以轻松地合并任何新版本的库(只需将它们从源中提取,然后将它们合并到我的本地分支中)。
【讨论】:
此解决方案仅在您使用自己的机器构建时才有效。如果您在团队中或有构建服务器,这将不起作用。以上是关于通过 CocoaPods 在 github 上使用 Restkit 的一个分支?的主要内容,如果未能解决你的问题,请参考以下文章