2012-09-12 16 views
32

restkit korzysta w inny sposób protokół OAuth2, muszę zmienić kod, aby móc używać go w drodze:Użyj widelca Restkit na github przez cocoaPod?

Skąd:

// OAuth 2 valid request 
if (self.authenticationType == RKRequestAuthenticationTypeOAuth2) { 
    NSString *authorizationString = [NSString stringWithFormat:@"OAuth2 %@", self.OAuth2AccessToken]; 
    [_URLRequest setValue:authorizationString forHTTPHeaderField:@"Authorization"]; 
} 

do:

// OAuth 2 valid request 
if (self.authenticationType == RKRequestAuthenticationTypeOAuth2) { 
    NSString *authorizationString = [NSString stringWithFormat:@"Bearer %@", self.OAuth2AccessToken]; 
    [_URLRequest setValue:authorizationString forHTTPHeaderField:@"Authorization"]; 
} 

Użycie "Nośnika" zamiast "Oauth2" ...

Używam coacoaPod do importowania obiektów typu "restkit" w moim projekcie.

Czy mogę rozwidlić repozytorium Restkit na github i użyć widelca za pośrednictwem CocoaPod zamiast oficjalnej wersji?

+1

Jeśli uważasz, że zmiany mają sens, spróbuj wprowadzić żądanie wyciągnięcia do oryginalnego projektu. Jako bonus nie będziesz musiał się martwić o utrzymanie swojego widelca w przyszłości. – Rivera

Odpowiedz

85

Z pewnością możesz. Spójrz na https://github.com/CocoaPods/CocoaPods/wiki/Dependency-declaration-options

Jeśli RestKit zawarte swój plik w repozytorium .podspec następnie można po prostu zmienić Podfile pkt do widelca tj

pod 'RestKit', :git => 'https://github.com/you/RestKit.git' 

Niestety RestKit nie obejmuje jej .podspec. Zamiast tego skopiuj RestKit.podspec z https://github.com/CocoaPods/Specs/blob/master/RestKit/0.10.2/RestKit.podspec i dodaj go do swojego projektu. Edytuj .podspec, aby użyć widelca jako źródła. Następnie można określić lokalny .podspec w swojej Podfile:

pod 'RestKit', :podspec => 'local/path/to/RestKit.podspec' 

Alternatywnie może po prostu dodać ten .podspec do widelca i wykorzystać dawną deklarację o zależnościach.

+0

Dzięki, że miałem odpowiedzieć na moje własne pytanie! –

+0

Możesz także wskazać precyzyjny ',: commit => 'aabbcc'' ze swojego widelca lub z oryginalnego repozytorium. – Rivera

+1

Również ',: branch => 'branch-name-here'' na danym widelcu. – kbpontius

4

Mimo że to pytanie ma akceptowaną odpowiedź, chciałem dodać alternatywne podejście. W pewnym momencie (wierzę, że po zadaniu tego pytania) możliwość dodania lokalnych odnośników do Podfiles (a nie tylko Podspecs) została dodana do Cocoapods.

Zamiast tworzyć zwyczaj tworzenia widelce publicznych w Github i niestandardowych Podspecs, że łatwiej:

  1. Clone biblioteka Github lokalnie.
  2. Utwórz nowy lokalny oddział, w którym wprowadzam zmiany, których potrzebuję w tej bibliotece, które są specyficzne dla mojego projektu.
  3. Zmienić Podfile pkt do tego katalogu lokalnego i miejscowego oddziału:

    pod 'FXForms', :path => '~/Documents/Projects/RestKit', :branch => 'mybranch' 
    

To sprawia, że ​​łatwo mi włączyć jakieś nowe wersje biblioteki (tylko przez pociągnięcie ich pochodzenia, a następnie połączenie ich w moim lokalnym oddziale).

+2

To rozwiązanie działa tylko wtedy, gdy budujesz z własnego komputera. Jeśli jesteś w zespole lub masz serwer budujący, to nie będzie działać. –