升级到 cocoapods 1.0 后缺少所需的架构

missing required architecture after upgrading to cocoapods 1.0

我正在尝试将 Cocoapods 升级到 1.0 版,但新版本链接 DTCoreText 失败。 当我尝试 运行 模拟器上的项目时,我得到

ld: warning: ignoring file /[...]/libDTCoreText.a, missing required architecture x86_64 in file /[...]/libDTCoreText.a (2 slices)

当我尝试存档时,我得到

ld: warning: ignoring file /[...]/libDTCoreText.a, missing required architecture arm64 in file /[...]/libDTCoreText.a (2 slices)

在干净的项目中使用我的同一个 Podfile 一切正常!所以这一定是我的项目,但我不知道它可能是什么。

我用过

pod deintegrate
pod install

已从项目中清理并删除派生数据,但没有成功。

项目和 Pods 的架构设置为 "Standard architectures (armv7, arm64)"

我正在使用 Xcode 7.3,我的 Podfile 如下所示:

source 'https://github.com/CocoaPods/Specs.git'
project 'Classes/MEG.xcodeproj'
platform :ios, '8.0'
inhibit_all_warnings!

target 'myApp' do
    pod 'Reachability', '~> 3.1'
    pod 'DTCoreText', '~> 1.6'
    pod 'Flurry-iOS-SDK/FlurrySDK', '7.1.0'
    pod 'DCIntrospect-ARC'
    pod 'AFNetworking', '~> 2.5'
    pod 'AFNetworkActivityLogger', '~> 2.0'
    pod 'SDWebImage', '~> 3.7'
    pod 'SVProgressHUD', '~> 1.0'
    pod 'CHTCollectionViewWaterfallLayout'
    pod 'BDBOAuth1Manager', '~> 1.5.0'
    pod 'FMDB', '~> 2.4'
    pod 'Masonry', '~> 0.6'
    pod 'RSKImageCropper', '~> 1.0'
    pod 'AWSiOSSDKv2/SNS', '~> 2.0'
    pod 'JSQMessagesViewController', '~> 6.0'
    pod 'SKTagView', '~> 0.0'
    pod 'PSTAlertController', '~> 1.2'
    pod 'UITextView+Placeholder', '~> 1.1'
    pod 'MWFeedParser', '~> 1.0'
    pod 'tarkit', '~> 0.1'
    pod 'XMPPFramework', '3.6.5'
    pod 'XMLDictionary', '~> 1.4'
    pod 'NewRelicAgent', '~> 5.6'
    pod 'NHNetworkTime', '~> 1.6'

    target 'myApp Tests' do
        inherit! :search_paths
        pod 'OCMock', '~> 3.2'
    end
end

终于找到问题了。我的项目文件夹中有一个旧版本的 libDTCoreText.a

即使项目中的任何地方都没有引用此文件,cocoapods 仍会尝试 link 它。 Xcode 可能是为了在 cocoapods 库中搜索 libDTCoreText.a,但首先在项目文件夹中找到它,因为它也列在库搜索路径中。

无论如何,删除文件解决了问题。