【发布时间】:2016-10-26 12:19:34
【问题描述】:
我正在将 CocoaPods (0.39.0) 升级到最新版本 (1.0.1) 并移动一些直接集成的框架(在主项目中复制而不是使用 CocoaPods-spec)。我正在使用 XCode (7.2.1)。
以下是 CocoaPods 1.0.1 使用的 podfile:
platform :ios, '8.0'
target 'ABC-v2' do
# use_framework is required for dynamic frameworks integration.
use_frameworks!
pod 'SSKeychain', '~>1'
pod 'Mantle', '~>1'
pod 'GoogleAPIClient/Drive', '~>1'
pod 'GTMOAuth2', '~>1'
pod 'GTMSessionFetcher'
pod 'libextobjc/EXTScope', '~>0.4'
pod 'Typhoon', '~>3'
# swift framework test, would need this eventually.
#pod 'Alamofire', '~>3'
# PSPDFKit - 5.8.3
pod 'PSPDFKit', podspec:'https://customers.pspdfkit.com/cocoapods/.../latest.podspec'
#disabled it temporarily to separate out xcode build error.
#target :SSS do
# pod 'ABC-iOS-SDK', :path => 'submodules/abc-ios-sdk'
#end
#disabled it temporarily to separate out xcode build error.
#target :TW do
# pod 'ABC-iOS-SDK', :path => 'submodules/abc-ios-sdk'
#end
target :ABCTests do
inherit! :search_paths
pod 'OCMock', '~> 3'
pod 'OCMockito', '~> 1'
pod 'VCRURLConnection', '~> 0.2', :inhibit_warnings => true
end
end
现在我正在尝试解决构建时的编译错误,这些错误与多次包含库有关。
- 参考 CocoaPods 迁移指南http://blog.cocoapods.org/CocoaPods-1.0-Migration-Guide/
- 尝试在完全清理 (cmd-alt-shift-k)、删除 pod 文件 (rm -rf Pods/ podfile.lock) 和删除 DerivedData 后重新编译。
- 确保 Target->Build Phases->Link Binary with Libraries 中没有重复的 *.a 文件。在“pod install”后,“Pods_ABC_v2.framework”被添加到那里。
- 删除了其他目标,例如 Widget 和扩展并在 podfile 中禁用了它们。
- 有直接集成的evernote sdk (evernote-sdk-ios.xcodeproj),其中有EVSSKeychain.h/.m 文件,修改了带有EV 前缀的定义(EVSSKeychainErrorCode、EVSSKeychainErrorBadArguments 等)。截图如下:
- 我相信上面的evernote sdk 不会导致我遇到的错误;我可以尝试删除evernote sdk(直接集成),但我不确定??
编译错误:
/path../Pods/SSKeychain/Sources/SSKeychain.h:65:1:“SSKeychain”类的接口定义重复
/path../Pods/SSKeychain/Sources/SSKeychain.h:22:27:重新定义“SSKeychainErrorCode”
/path../Pods/SSKeychain/Sources/SSKeychain.h:24:2:重新定义枚举器“SSKeychainErrorBadArguments”
请帮忙解决这些错误?
【问题讨论】: