0

我有一个依赖于objective-c 库包的快速可执行包。我正在尝试使用 Xcode 进行可执行包开发,但Could not build Objective-C module 'objcpackage'在编辑导入 Objective-c 模块的 swift 文件时出现错误。编译既可以从 Xcode 也可以直接从命令行使用swift build,但是只要我打开 swift 文件并导入该 objc 包,就会弹出错误。我已经使用 SPM 生成 xcodeproj。

清理也不清理构建目录,从 xcodeproj 中删除生成的模块映射或重新启动 Xcode 没有帮助。

我创建了具有以下内容的 Objective-C 包:

$ swift package init --type library

它只包含一个标题Sources/include/Foo.h

#import <Foundation/Foundation.h>

@interface Foo: NSObject
@end

和一个.m文件:

#import "Foo.h"

@implementation Foo
@end

Swift 包是用$ swift package init --type executable.

Package.swift文件如下所示:

import PackageDescription

let package = Package(
    name: "swiftpackage", 
    dependencies: [ .Package(url: "../objcpackage", majorVersion: 1) ]
)

main.swift仅包含:

import objcpackage

Xcode 项目是用$ swift package generate-xcodeproj

Xcode 版本:8.2.1 (8C1002)

斯威夫特版本:3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)

我怎样才能摆脱这个错误?

4

1 回答 1

1

这听起来像是最近在包管理器中修复的一个错误 ( https://bugs.swift.org/browse/SR-3121 )。您是否尝试过来自https://swift.org/download/的最新快照?

我用最新版本的 Swift 3.1 测试了你描述的包,它运行良好。

于 2017-02-17T00:42:12.370 回答