2017-02-16 140 views
0

我有一个swift可执行文件包,它对objective-c库包有依赖性。我试图使用Xcode进行可执行程序包的开发,但在编辑导入objective-c模块的swift文件时出现Could not build Objective-C module 'objcpackage'错误。编译既可以从Xcode编译,也可以直接从命令行使用swift build进行编译,但只要导入该objc包后打开swift文件,就会弹出错误消息。 我已经使用SPM来生成xcodeproj。Xcode的Swift Package Manager - 无法构建Objective-C模块

清理并清理构建目录,从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 

Swi ft包使用$ 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)

瑞士法郎ift版本:3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)

我该如何摆脱那个错误?

回答

1

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

我测试了你用最新版本的Swift 3.1描述的包,它工作正常。

+0

谢谢!使用最新快照('3.1-dev(LLVM a7c680da51,Clang df9f12fda6,Swift 7cc03a3925)'),错误消失了。 – CherryKuczery

相关问题