[英]Xcode Swift: how to import a Swift project
我已经做了一个Xcode Swift项目(“ Project1”)。 在新项目(“ Project2”)中,我在添加项目1时遇到问题。
我尝试将项目1添加到项目2的构建阶段(目标相关性,已编译的源代码,与库的链接二进制文件); 没有用 当添加到已编译的源代码中时,无论我选择哪个选项(文件夹引用,组,如有需要,复制)都将无效。
我在以下位置没有编译器错误:
import Project1
但是,当我尝试使用项目1中的类时,出现错误“使用未声明的类型”。
我还尝试了以下链接,但均未成功:
这两个项目都在Swift(iOS)中。
如果有人帮助我解决了这个问题,我将非常感谢。
更新: Project 1不是框架-它是iOS应用程序。 我需要在项目2中使用其某些类。问题是项目1通过桥接标头使用了Objective C库Common Crypto。 当我手动将项目1类添加到项目2中时,在使用Common Crypto的项目1 Swift代码中收到错误(“未解决的标识符”)。
简而言之:我有一个iOS应用程序(项目1),该应用程序在Swift中,但是通过桥接头使用Common Crypto。 当我从项目1向项目2中添加许多类时,它无法解析对Common Crypto变量的引用(在项目1中)。
编辑:由于具有CommonCrypto作为依赖项,因此必须将module
添加到Project2项目中来解决您的问题(这是最简单的方法,无需求助于伞形框架)。 添加一个run script build phase
并包含http://pastebin.com/1vmiqffu
-鸣谢:脚本“被盗”: https : //github.com/henrinormak/Heimdall
好的,所以我在这里假设Project1
实际上有一个框架作为目标。 您要使用的类型上设置了哪些访问权限 ?
这是我遇到的一些Swift和框架的catchya:
ModuleName.h
)内包含非Swift依赖项的头。 这也意味着这些将可用于您导入它们的任何项目。 据我所知,您需要使用module.modulemap
才能使用私有标头和包含。 Swift
类/结构/定义通常都是内部的。 这是一个非常好的设计选择,它迫使您考虑对编写的每个组件的访问权限。 默认情况下,将事物保持私有状态可以更轻松地仅打开真正需要打开的事物(公共,开放),从而使代码维护更加容易,因为您知道私有事物只能在同一上下文中访问。 (否则:错误) 如需更多帮助,此链接可能对您如何做一些基本操作有所帮助:
假设Project1
是一个框架,而Project2
是使用该框架的应用程序:
TestWorkspace
的原始Workspace
(Xcode File-> TestWorkspace
> Workspace) Finder
,将Project1.xcodeproj
文件拖到TestWorkspace
Finder
,将Project2.xcodeproj
文件拖至Project1
上方的TestWorkspace
编辑您的TestWorkspace
模式Build
:
Project1
和Project2
Project1
在Project2
之上 Project1
Project2
的目标->常规 project1.framework
(在“ Products
组中)拖到“链接的Framworks和库” 注意:要对客户端可见,project1.framework中的所有类和方法都必须是public
或open
。 在Apples文档中找到详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.