在 XCode、iOS 开发中编译时在 Keychain.swift 中构建错误

Posted

技术标签:

【中文标题】在 XCode、iOS 开发中编译时在 Keychain.swift 中构建错误【英文标题】:Build errors in Keychain.swift when compiling in XCode, iOS development 【发布时间】:2016-09-19 16:10:34 【问题描述】:

Xcode 版本为 7.3.1 OSX 10.11.6

此链接准确地描述了我遇到的问题

https://github.com/marketplacer/keychain-swift/issues/37

Errors I'm getting 明确表示我的系统无法识别 Keychain.Swift 文件。

上面的链接表明该文件在 Swift 3.0 中,我仔细检查了我运行的是 Swift 2.2。

所以我尝试通过 cocoapods 安装旧版本的 Keychain.Swift,它似乎在我的系统中更新,但我仍然遇到相同的构建错误。

我在 Xcode 的 pod 文件中放置了“pod 'KeychainSwift', '~> 3.0'”,然后从项目目录中的终端运行“install pod”。

我尝试关闭 Xcode 并重新打开,我尝试运行 Product-> clean,但似乎没有任何效果。

该项目是从 github 提取的工作文件,似乎可以在原始作者环境中运行,但我还没有成功让我的环境运行。

感谢任何意见和建议。我是 swift、cocoapods 和 ios 开发的新手。

【问题讨论】:

您使用的是哪个 xcode 版本? 知道我忘记了什么!版本 7.3.1。我会编辑我的帖子,谢谢。 请检查以下答案应该可以工作 【参考方案1】:

我可以看到您正在使用的Keychain.Swift 的当前版本在Swift 3.0

它给你 Swift 3.0 中引入的 Date 类错误 Date Class Documentation 不幸的是 ios 10+ 支持哪个

请按照以下步骤删除旧版本并切换到旧版本:

    从您的 pod 中删除这一行 "pod 'KeychainSwift', '~> 3.0'" 并运行 install pod 这将删除当前的 KeychainSwift pod。 现在添加这一行 pod 'KeychainSwift', git: "https://github.com/marketplacer/keychain-swift.git", branch: "swift_2_3" Reference taken form this link 这将安装 Swift 2.3 版本的文件。

享受编码。

【讨论】:

我已按照您的建议删除并添加,但仍然没有运气。我已经重新启动了 Xcode 和我的 Mac。 Xcode 似乎确实有更新,所以我会试一试并报告。感谢您迄今为止提供的支持! 你还面临同样的问题吗? 你也可以上传你当前的.swift文件,它是在上述步骤之后安装的。 我已将范围缩小到当我将“pod 'KeychainAccess'”添加到我的 podfile 时。当我将其注释掉时,与“keychain.swift”相关的构建错误消失了,但是我不能再“导入 KeychainAccess”并使用该库。所以我仍然面临同样的问题。你想让我上传 keychain.swift 文件吗? 添加“pod KeychainAccess”会添加一个名为“Keychain.swift”的文件。当我尝试通过您的答案中的说明安装正确的版本时,它会创建一个名为“keychainswift.swift”的文件。我只是在两个单独的文件夹中得到两个单独的文件,名称略有不同。这可能是问题吗?【参考方案2】:

原来有多个库可用于使用钥匙串。有一种叫做 KeychainAccess,另一种叫做 Keychain-swift。一个使用“import KeychainAccess”,另一个使用“import KeychainSwift”。当我使用 2.2 时,我只是拥有 swift 3.0 的版本(我们从一开始就知道,但仍然无法让它工作)。 Harshal Bhavsar 给出的建议是准确的,但前提是您使用的是“KeychainSwift”。否则,您想回滚到此处https://github.com/kishikawakatsumi/KeychainAccess/releases 找到的旧版“KeychainAccess”。

【讨论】:

以上是关于在 XCode、iOS 开发中编译时在 Keychain.swift 中构建错误的主要内容,如果未能解决你的问题,请参考以下文章

当目标是 ios 11.0 或字母时在 Xcode 11.3 中访问 UIWindow 实例

使用 Xcode 6.3.1 生成 IPA 时出现问题

ios8/xcode6.1:在情节提要中设置时在运行时忽略自定义字体

iOS学习使用 Xcode 开发 Clang 插件

xcode 构建中的不同参数

MAC下Unity编译成Xcode后倒入IOS系统中的各种坑总结