2016-11-11 99 views
1

我已經繼承了一個使用cocoapods的iOS項目。運行「pod安裝」後Xcode無法找到接口聲明

回購包括Pods目錄,其中包含所有必要的豆莢及時凍結。如果我克隆回購並構建應用程序,一切都很好。如果我運行pod update再建,我得到一個錯誤:

Cannot find interface declaration for COOperation.

這個問題似乎是一個叫CompositeOperations庫,它是由特定的git帳戶(而不是直接從的CocoaPods被拉 - 如果不知道重要但只是試圖儘可能多地提供信息)。 Xcode發現庫很好,但由於某種原因,它沒有加載在接口文件中聲明的類。

在回購中包含Pods目錄似乎很愚蠢。我覺得開發人員應該克隆回購,然後發行git install以便拉低所有依賴。

對於我需要調整的任何建議,以便Xcode成功構建我的項目?

MessageScreenDataFetchOperation.h實際的錯誤是:

/Users/user/src/myapp/myapp-iOS/Classes/Shared/Operations/MessageScreenDataFetchOperation.h:13:46: Cannot find interface declaration for 'COOperation', superclass of 'MessageScreenDataFetchOperation'; did you mean 'NSOperation'?

而這裏的MessageScreenDataFetchOperation.h樣子:

#import <CompositeOperations/COOperation.h> 

@protocol GroupRef; 

@interface MessageScreenDataFetchOperation : COOperation 
- (id)initWithMessageId:(NSNumber *)messageId group:(id <GroupRef>)groupRef memberId:(NSNumber *)memberId; 
@end 

這裏是我的Podfile:

platform :ios, '8.0' 

source 'https://github.com/CocoaPods/Specs.git' 

target :MyTarget do 
    pod 'RestKit', '~> 0.24.0' 
    pod 'CompositeOperations', :git => 'https://github.com/stanislaw/CompositeOperations.git' 

    pod 'MBProgressHUD', '~> 0.8' 
    pod 'EKKeyboardAvoiding', '~> 2.0' 
    pod 'RBStoryboardLink', '0.1.0' 
    pod 'SWRevealViewController', '~> 2.0.0' 
    pod 'youtube-ios-player-helper', :git => 'https://github.com/stanislaw/youtube-ios-player-helper', :branch => '0.1.1-and-no-ads' 
    pod 'SZTextView' 

    pod 'MagicKit', :git => 'https://github.com/stanislaw/MagicKit' 
    pod 'ECPhoneNumberFormatter', :git => 'https://github.com/enriquez/ECPhoneNumberFormatter.git' 
    pod 'SSKeychain' 
    pod 'Mantle' 
    pod 'RSEnvironment', :git => 'https://github.com/rabovik/RSEnvironment' 

    pod 'FBSDKCoreKit' 
    pod 'FBSDKLoginKit' 
    pod 'FBSDKShareKit' 

    # Analytics 
    pod 'FlurrySDK', '5.1.0' 
    pod 'Fabric' 
    pod 'Crashlytics' 

    pod 'NewRelicAgent' 

    # Logging 
    pod 'EchoLogger', :git => 'https://github.com/stanislaw/EchoLogger' 
    pod 'AFNetworkingLogger', :git => 'https://github.com/stanislaw/AFNetworkingLogger' 
end 

target :MyTargetUnitTests do 
    pod 'OCMock', '~> 3.0' 
    pod 'Kiwi' 
    pod 'JPSimulatorHacks', :git => 'https://github.com/plu/JPSimulatorHacks' 
end 
+0

您應該可能會顯示您的pod文件,有問題的聲明以及您如何導入lib ... –

+0

謝謝@ l'L'l,我粘貼了上面的所有內容。 – djibouti33

回答

0

原來是烘烤到Xcode項目的版本是一箇舊版本。 Podfile不受版本號的限制,所以運行'pod update'將庫更新爲最新版本,該版本發生了重大變化,使得它與我的代碼庫不兼容。

我想通過在運行pod update後區別Podfile.lock並發現版本差異很大。

我繼續刪除Pods目錄和.xcworkspace文件,但修改了Podile以限制基於特定標記的庫。

相關問題