带Xcode的Swift包管理器 - 无法构建Objective-C模块

时间:2017-02-16 20:43:57

标签: objective-c swift xcode swift-package-manager

我有一个swift可执行包,它依赖于objective-c库包。我正在尝试使用Xcode进行可执行包开发,但在编辑导入objective-c模块的swift文件时出现Could not build Objective-C module 'objcpackage'错误。编译既可以从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)

Swift版本:3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)

如何摆脱这个错误?

1 个答案:

答案 0 :(得分:1)

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

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