Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
#如果canImport(CoreImage)在swift软件包管理器中不工作_Swift_Ciimage_Swift Package Manager - Fatal编程技术网

#如果canImport(CoreImage)在swift软件包管理器中不工作

#如果canImport(CoreImage)在swift软件包管理器中不工作,swift,ciimage,swift-package-manager,Swift,Ciimage,Swift Package Manager,我正在制作使用CoreImage的库。库支持Cocoapods、Carthage和Swift package manager 当我在Swift Package Manager中构建它时,出现以下错误: Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_CIFilter", referenced from: objc-class-ref in EIP67Code.swift.o "_OBJC_CLASS_$_CI

我正在制作使用CoreImage的库。库支持Cocoapods、Carthage和Swift package manager

当我在Swift Package Manager中构建它时,出现以下错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_CIFilter", referenced from:
      objc-class-ref in EIP67Code.swift.o
  "_OBJC_CLASS_$_CIImage", referenced from:
      objc-class-ref in EIP67Code.swift.o
ld: symbol(s) not found for architecture x86_64
当我使用
#if canImport(CoreImage)

如果我使用
#if os(iOS)| os(tvOS)


但是CoreImage可以在macOS上运行,所以我仍然需要这段代码,至少对于carthage/cocoapods来说是这样,因为我没有找到任何解决方案,所以我只是在Package.swift中排除了这个文件

.target(
name: "web3swift",
dependencies: ["BigInt", "secp256k1", "keccak", "scrypt", "PromiseKit", "base58"],
exclude: ["ObjectiveC", "Utils/EIP67Code.swift", "Migration-iOS.swift"]
),

可能您的框架中依赖CoreImage的某些功能不支持macOS 10.10,这是默认的
包.swift
。尝试从macOS 10.12开始升级软件包支持

let package=package(
名称:“示例”,
平台:[
.macOS(.v10_12),
]
)

这是一个链接器错误,针对已移动或更改名称的框架显示。对于CoreImage的特定情况,您可以通过将部署目标设置为macOS 10.12或导入QuartzCore而不是CoreImage来解决问题


如果打开框架的tbd文件(
$(xcrun--sdk macosx--show sdk path)/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage.tbd
),并找到以
$ld$install\u name$os
开头的符号,然后,此框架会受到此错误的影响,您需要使用比列表中最新安装名称更新的部署目标(在本例中,比10.11更新),或者需要使用旧名称导入框架(在此名称中为QuartzCore).

您找到解决方案了吗?我刚刚在Package.swift.target(名称:“web3swift”,排除:[“ObjectiveC”、“Utils/EIP67Code.swift”、“Migration iOS.swift”])中删除了此文件,
.target(
name: "web3swift",
dependencies: ["BigInt", "secp256k1", "keccak", "scrypt", "PromiseKit", "base58"],
exclude: ["ObjectiveC", "Utils/EIP67Code.swift", "Migration-iOS.swift"]
),