2

我正在使用 Cryptoswift 框架进行加密和解密。我在另一个 Xcode 项目中使用 Xcode 项目。尽管在主项目中使用了 pod,但子项目无法访问框架 Cryptoswift。除此之外,我还将框架添加到“链接框架和库”中。该项目在模拟器中运行良好,但在设备上无法运行。当我在设备上运行它时出现错误

  var enc = try AES(key: FirstStepEncryptionKey, iv: "", blockMode:.CBC, padding: NoPadding()).encrypt(firstStepArray)

错误:“使用未解析的标识符‘AES’”

虽然导入语句没有显示任何错误。我是我公司唯一的开发人员,没有人指导我。请帮我解决这个问题。

更新:我将文件添加到嵌入二进制文件中,但它仍然崩溃说“dyld:库未加载:@rpath/CryptoSwift.framework/CryptoSwift 引用自:/var/containers/Bundle/Application/48894FB2-0CDB-4B8D-A763-1C57B3EDAE41 /Vaya_Tracker.app/Vaya_Tracker 原因:找不到图像”

修复:我必须将 CryptoSwift.xcodeproj 文件添加到我的 Xcode 项目中,而不是通过 pod 或 Carthage 添加它。

4

1 回答 1

1

我也在使用CryptoSwiftCocoapods 和 Swift 版本是Swift 4.0. 下面是我的 podfile。

platform :ios, '8.0'
use_frameworks!

target 'MyAProjectName' do
 pod 'CryptoSwift', '0.8.3'
end

您必须导入CryptoSwift才能使用AES.

import CryptoSwift

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        do {
            let aes = try AES(key: "passwordpassword", iv: "drowssapdrowssap") // aes128
            let ciphertext = try aes.encrypt(Array("Nullam quis risus eget urna mollis ornare vel eu leo.".utf8))
            print(ciphertext)
        } catch { }

    }
}

根据评论更新崩溃问题:

在此处输入图像描述

然后清理构建并再次构建。如果它仍然不起作用,那么尝试设置status两个Linked framework and Libraries框架required

于 2018-03-22T06:25:57.657 回答