gpt4 book ai didi

ios - Xcode 看不到通过 Cocoapods 添加的对象

转载 作者:IT王子 更新时间:2023-10-29 08:19:45 30 4
gpt4 key购买 nike

我有一个定义了以下 pod 的 podfile

platform :ios, '8.0'
use_frameworks!

target 'LifeStream' do
pod 'SSKeychain'
pod 'LiveSDK'
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'swift-2.0'
end

我安装了 pod 并打开了我的工作区。我发现 Alamofire 的任何用法都可以正常工作,因为它的 Swift 2 版本将项目作为框架导入。

然而,当我尝试使用 SSKeychain 类时,我收到一个

Use of unresolved identifier 'SSKeychain`

这同样适用于我尝试在 LiveSDK 中使用的任何类。

我的项目根目录中有一个桥 header ,项目配置为使用它。

#ifndef Header_h
#define Header_h

#import "SSKeychain/SSKeychain.h"
#import "LiveSDK/LiveConnectClient.h"

#endif /* Header_h */

如果我从

更改 #import
#import "SSKeychain/SSKeychain.h"

#import "SSKeychain.h"

Xcode 编译失败,因为它找不到文件。所以我假设桥头文件正在工作,因为我的桥头文件现在构建的方式不会生成任何因找不到头文件而导致的编译器错误。

桥头

Objective-c Bridging header

框架搜索路径

我还将我的项目根目录添加到框架搜索路径中。

Framework search paths

链接框架

最后,我也将所有框架链接到该项目。

Linked frameworks

我的设置是否遗漏了什么?我已经将近一周无法让 Cocoapods 为我的项目工作了。我什至创建了一个全新的项目,认为我的项目搞砸了;这并没有改变一件事。我不知道从这里该怎么做才能解决这个问题。

编辑

在做了一些额外的研究之后,我 found a blog post显示您必须在用户 header 搜索中包含您的 Pods 目录

User Header Search

一位评论者还提到,如果您使用对 Swift 的较新 Cocoapods Frameworks 支持,则需要包含 Frameworks/** 搜索路径。我已经包括了 Pods/** 和 Frameworks/** 但仍然有同样的问题。

经过一些further reading ,这听起来像是 Cocoapods 的局限性。据我了解,您不能在一个项目中同时使用库和框架。

最佳答案

一旦您在 Podfile 中使用 use_frameworks!,像 SSKeychain 这样的 Objective-C Pod 也会构建为框架。

实际问题是在使用框架时,只有模块导入在桥接头文件中起作用。此外,您可能希望完全摆脱桥接 header ,因为在使用框架时没有必要,它们可以直接在 Swift 中导入。

关于ios - Xcode 看不到通过 Cocoapods 添加的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31103831/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com