如何将第三方框架导入Xcode Playground?
如何将第三部分框架导入Xcode Playground?
Swift Playground显然有一个框架导入机制,因为我们可以导入Cocoa
, SpriteKit
,并且在一个OSX Playground中, XCPlayground
( XCPlayground
似乎从iOS中丢失,奇怪)
我真正想做的是从操场上隐藏代码,并能够展示一个简单的例子。 任何关于如何将框架加载到Swift游乐场的想法?
也可以看看:
- 如何从自己的项目导入自己的类到游乐场
- 是否有可能将第三方Objective-C代码导入Swift游乐场?
(这个问题是不同的,因为请求是在Playground中使用一个框架 ,而不是简单的普通的swift
文件)
编辑:从Beta5开始,现在支持当操场是构build框架作为目标的工作空间的一部分。 在苹果开发论坛网站上有更多的细节,但希望@Rick Ballard将他们的答案添加到这里,这应该成为这个问题的权威答案。
不要再做下面的事了!
就短期而言,虽然没有支持的解决scheme,但是如果您生产的是模块/框架,则可以将其复制到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/
但是,在你这样做之前,要像瑞克在他的回答中所说的那样发起一个雷达。
目前还没有支持的方式来将自己的框架或应用程序代码导入到游乐场,而不是将其粘贴到游乐场编辑器中。 我们知道这是非常理想的function,但是我们一如既往地鼓励大家“在bugreport.apple.com上投票”
现在,如果您只是想隐藏代码以便在示例中显示,那么编辑器中的代码折叠可能会起到一些作用。
现在可以将自己的框架导入游乐场。 这提供了一种在应用程序和游乐场之间共享代码的方法,它们都可以导入您的框架。 要做到这一点,你的游乐场必须和生成你的框架的项目在同一个工作空间中。 你必须已经build立你的框架。 如果是iOS框架,则必须为64位运行目标(例如iPhone 5s)构build。 你必须有一个至less构build一个目标的活动scheme(目标的构build位置将被用于游乐场的框架searchpath)。 您的“生成位置”首选项(在高级的“位置”设置中)不应设置为“传统”。 如果你的框架不是Swift框架,那么“Defines Module”构build设置必须设置为“Yes”。 一旦所有这些条件得到满足,导入你的框架将在一个操场上工作。
我已经写了一个教程,涵盖了Beta 6中定制框架的导入
简而言之,如果你在同一个项目或者工作区中有你的操场和框架,并且你的框架是为64位构build的(甚至是iOS),它们在一起玩的很好。
来源: http : //qiita.com/ryokosuge/items/2551cd4faa9dca324342
如果有人在阅读接受的答案之后仍然难以理解如何去做,这可能会有所帮助。
这不是英文,所以我会在这里解释:
使用迦太基:
1:在项目的根目录中设置Cartfile,添加你的库并运行:
carthage update --platform iOS --use-submodules
2:确保您的项目保存为Workspace
。 从Xcode菜单栏: File
> Save As Workspace
。 closuresXcode并从新的.xcworkspace
文件重新打开。
3:在工作区中添加库的.xcodeproj
文件: File
> Add files to "your_workspace_name"
。 然后find它: ${SRCROOT}/Carthage/Checkouts/your_library_name/your_library_name.xcodeproj
4:在项目的常规设置中findEmbedded Binaries
和Linked Frameworks and Libraries
部分。 将你的库的.framework
文件添加到两者。
5:清理(⇧+⌘+ K)并构build(⌘+ B)。
6:在操场上导入你的图书馆。
我通过将构build的框架复制到Built Products Directory中来解决这个问题,在这个工作区中的Playgrounds也search框架。 注意:您还需要运行lipo,并从FAT二进制文件中删除未使用的体系结构。
所需的步骤(简而言之):
- 创build一个聚合目标
- 添加一个脚本阶段将框架从Carthage / Build / iOS /复制到BUILT_PRODUCTS_DIR(我在下面的示例中使用了swift脚本,但是也可以使用bash,ruby python等)
- 运行聚合目标现在可以在Playground中导入框架
另外,您可以利用您的应用中的聚合目标:
- 从BUILT_PRODUCTS_DIRembedded框架,而不是Carthage / Build / iOS /
- 将聚合目标添加到应用程序scheme以重新build立干净的框架。
这是一个示例项目设置如上: https : //github.com/richardnees/CathagePlaygrounds
就像在Swift代码中使用Objective-C类一样,您可以将第三方库/类导入到项目中,Xcode会询问您是否要创build一个 <#YourProjectName>-Bridging-Header
您的项目<#YourProjectName>-Bridging-Header
点头文件。select是,并导入该文件中所需的所有头文件。 之后,在您的操场上,您可以简单地在 import UIKit
后import <#YourProjectName>-Bridging-Header
您的项目import <#YourProjectName>-Bridging-Header
import UIKit
import <#YourProjectName>-Bridging-Header
,您将能够使用您导入到您的项目的类。
更新:这实际上是不正确的。 请看下面我的评论。 对不起,有什么困惑…