如何将第三方框架导入Xcode Playground?
Swift Playground显然有一个框架导入机制,因为我们可以导入Cocoa
,SpriteKit
,并且在OSX Playground中,XCPlayground
(XCPlayground
似乎从iOS中丢失,奇怪的是)
我真正想做的是隐藏我操场上的代码,并能够展示一个最小的例子。关于如何将框架加载到Swift游乐场的任何想法?
另见:
(这个问题不同,因为请求是在Playground中使用框架而不是简单的常规swift
文件)
答案 0 :(得分:46)
目前还没有支持的方法将您自己的框架或应用程序代码导入游乐场,而不是将其粘贴到游乐场编辑器中。我们知道这是非常理想的功能,但我们一如既往地鼓励人们通过bugreporter"投票。在bugreport.apple.com
现在,如果您只是试图隐藏代码以便在示例中显示,编辑器中的代码折叠可能会起作用。
现在可以将自己的框架导入游乐场。这提供了一种在应用程序和游乐场之间共享代码的方法,这可以导入您的框架。为此,您的游乐场必须与生成框架的项目位于同一工作区中。您必须已经构建了框架。如果它是iOS框架,则必须为64位运行目标(例如iPhone 5s)构建。您必须具有构建至少一个目标的活动方案(该目标的构建位置将用于操场的框架搜索路径中)。您的#34;建立位置"首选项(在高级"地点和#34;设置中)不应设置为" Legacy"。如果您的框架不是Swift框架,那么"定义模块"构建设置必须设置为"是"。一旦满足所有这些条件,导入框架将在游乐场中运行。
答案 1 :(得分:19)
编辑:从Beta5开始,当操场是将框架构建为目标的工作空间的一部分时,现在支持此功能。 Apple开发论坛网站上有更多详细信息,但希望@Rick Ballard会将这些内容添加到他的答案中,这应该是这个问题的最终答案。
不要再做下面的事了!
从短期来看,虽然没有受支持的解决方案,但如果您正在制作模块/框架,则可以将其复制到SDK System/Library/Frameworks
目录中,然后只复制import <#Module#>
与导入系统框架的方式相同。
对于OS X Playground:/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks
对于iOS:/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/
但在你这样做之前......就像@Rick在答案中所说的那样,提出一个雷达。
答案 2 :(得分:2)
我写了tutorial,涵盖了Beta 6中自定义框架的导入
简而言之,如果您在同一个项目或工作区中拥有游乐场和框架,并且您的框架是为64位构建的(即使是iOS),它们也可以很好地协同工作。
答案 3 :(得分:1)
来源:http://qiita.com/ryokosuge/items/2551cd4faa9dca324342
如果有人在阅读接受的答案后仍然难以理解如何解决问题,这可能有所帮助。
虽然不是英文,所以我会在这里解释一下:
使用迦太基:
1:在项目的根目录中设置Cartfile,添加库并运行:
carthage update --platform iOS --use-submodules
2:确保您的项目保存为Workspace
。从Xcode菜单栏:File
&gt; Save As Workspace
。关闭Xcode并从新的.xcworkspace
文件重新打开。
3:在工作区中添加图书馆的.xcodeproj
文件:File
&gt; Add files to "your_workspace_name"
。然后在${SRCROOT}/Carthage/Checkouts/your_library_name/your_library_name.xcodeproj
4:在项目的常规设置中找到Embedded Binaries
和Linked Frameworks and Libraries
部分。将您的库的.framework
文件添加到两者。
5:清洁(⇧+⌘+ K)并构建(⌘+ B)。
6:在操场上导入你的图书馆。
答案 4 :(得分:1)
我通过将构建的框架复制到Built Products Directory来解决它,其中工作区中的Playgrounds也搜索框架。注意:您还需要运行lipo并从FAT二进制文件中删除未使用的体系结构。
所需的步骤(简而言之):
此外,您可以利用应用中的汇总目标:
以上是一个示例项目设置:https://github.com/richardnees/CarthagePlaygrounds
答案 5 :(得分:0)
与在Swift代码中使用Objective-C类一样,您可以将第三方库/类导入到项目中,Xcode会询问您是否要创建 <#YourProjectName>-Bridging-Header
头文件。选择yes并导入该文件中所需的所有头文件。之后,在您的游乐场,您可以在import <#YourProjectName>-Bridging-Header
后执行import UIKit
,然后您就可以使用导入项目的类。
更新:这实际上是不正确的。请参阅下面的评论。对不起任何困惑......