从揭露联骨架项目斯威夫特文件到上层

问题描述 投票:3回答:3

我有一个包含独立的框架,项目的XCWorkspace,项目结构如下

AFramework项目(静态框架项目,框架项目链接框架,并将其添加到它的目标的依赖)

BFramework项目(静态框架项目,包括公共BClass.swift文件)

XCWorkspace Project that contains framework projects

AFramework项目可以访问BClass.swift文件预期,但我也想BClass.swift文件暴露给AFramework外,假设一个应用程序项目链接仅仅AFramework并在该应用程序我想访问BClass.swift文件,又该怎么做才能做到这一点,使用自定义模块的地图可能是有用的?

下面是从演示应用程序截图,应用程序仅仅连接AFramework并试图访问BClass.swift文件,但该文件是不可访问。

On demo app project B

在此先感谢您的帮助

swift static frameworks
3个回答
2
投票

最后,我找到了答案。为了能够暴露子模块的公共API,你可以使用@_explored进口属性。

对于使用上AClass.swift文件“@_exported进口BFramework”我的情况下,它会导致BFramework的公共API是从应用也侧面刚刚链接AFramework访问。

需要注意的是它没有正式发布。

关于一些讨论可以发现herehere


0
投票

我认为你要么你将B加入A框架作为一个依赖或暴露所需的功能一个框架创建一个类。


0
投票

你应该能够只导入BClass像这样

import class BFramework.BClass

这应该工作,只要在框架中的类是公开的。这也应该FUNC,VAR,协议,结构和枚举工作(如import struct BFramework.BStruct

© www.soinside.com 2019 - 2024. All rights reserved.