Xcode 12.5로 업데이트 하고 빌드를 하니 잘 돌아가던 앱이 에러가 아주 예쁘게 났다. 이번엔 예뻐서 바줄게 ^_^
ERROR : 'exported: true' has no effect in '_specialize' attribute
CryptoSwift 라이브러리의 Generics.swift 내에서 발생한 에러로, 옛날 버전을 1.4.0으로 새로 업데이트 해주면 된다고 한다.
구글링 해보면 Xcode 12.4로 downgrading 해라, Swift Package로 수동으로 추가해줘라 등 여러가지 해결방법들이 있지만 이제는 그럴 필요가 없다.
해결방법 :
1. 터미널 열고 pod deintegrate
2. pod file 들어가서 pod 'CryptoSwift', '~> 1.4.0' 로 버전 설정을 해주고
3. pod install 해주면 끝! (M1: arch -x86_64 pod install)
참고 : https://github.com/krzyzanowskim/CryptoSwift/issues/864
근데 그래서 이게 뭐하는건데?
CryptoSwift
: Crypto related functions helpers for Swift implemented in Swift.
Swift용 암호화 관련 기능을 도와주는 모듈이라고 한다.
암호화(encrypt)와 복호화(decrypt)를 편리하게 구현할 수 있도록 도와준다.
간단한 사용법을 살펴보자면 다음과 같이 암호화/복호화를 구현할 수 있다.
import Foundation
import CryptoSwift
public class UtilsCrypto {
internal static func setEncriptWithAES(message: String) -> String? { //message: 암호화할 문자열
do {
let aes = try AES(key: DEFINE_KEY, iv: DEFINE_IV)
let ciphertext = try aes.encrypt(message.bytes).toBase64()
return Data(ciphertext).base64EncodedString()
} catch {
print(error)
return nil
}
}
internal static func setDecryptWithAES(message: String) -> String? { //message : 복호화할 문자열
guard let data = Data(base64Encoded: message) else { return nil }
do {
let aes = try AES(key: DEFINE_KEY, iv: DEFINE_IV)
let ciphertext = try aes.decrypt(data.bytes)
return String(bytes: ciphertext, encoding: .utf8)
} catch {
print(error)
return nil
}
}
}
참고 : https://cocoapods.org/pods/CryptoSwift
'초보 iOS 개발자의 일상 > 이슈모음집' 카테고리의 다른 글
[Swift iOS] String to URL returns nil (space in URL) (0) | 2021.11.12 |
---|---|
[Swift iOS] UIAlertController not showing (0) | 2021.11.05 |
ITMS-90809: Deprecated API Usage - UIWebView issues (0) | 2021.06.15 |
ERROR ITMS-90208: "Invalid Bundle." (feat. mobile-ffmpeg-full) (0) | 2021.06.11 |
App Store 심사 거부 사유 모음집 (0) | 2021.04.21 |