ios-如何将第三方框架导入Xcode Playground?
如何将第三部分框架导入Xcode Playground?
Swift Playground显然具有框架导入机制,因为我们可以导入swift、SpriteKit,而在OSX Playground中则是XCPlayground(奇怪的是,iOS缺少XCPlayground)
我真正想做的是从操场上隐藏代码并能够显示一个最小的示例。 关于如何将框架加载到Swift游乐场的任何想法?
也可以看看:
如何将自己的项目中的类导入Playground
是否可以将第三方Objective-C代码导入Swift游乐场?
(此问题有所不同,因为请求是在Playground中使用框架,而不是简单的常规swift文件)
6个解决方案
46 votes
当前尚不支持将自己的框架或应用程序代码粘贴到Playground编辑器中的方法。 我们知道这是非常理想的功能,但一如既往,我们鼓励人们在bugreport.apple.com上“向bugreporter投票”
现在,如果您只是想隐藏示例中显示的代码,则可以在编辑器中折叠代码来解决问题。
现在可以将自己的框架导入操场。 这提供了一种在应用程序和Playground之间共享代码的方法,可以同时导入您的框架。 为此,您的游乐场必须与生成框架的项目位于同一工作区中。 您必须已经构建了框架。 如果它是iOS框架,则必须为64位运行目标(例如iPhone 5s)构建。 您必须具有一个主动方案,该方案可以构建至少一个目标(该目标的构建位置将在游乐场的框架搜索路径中使用)。 您的“构建位置”首选项(在高级“位置”设置中)不应设置为“旧版”。 如果您的框架不是Swift框架,则“ Defines Module”构建设置必须设置为“ Yes”。 一旦满足所有这些条件,导入框架就可以在操场上进行了。
Rick Ballard answered 2020-07-10T09:50:23Z
19 votes
编辑:从Beta5版本开始,当游乐场是将框架构建为目标的工作空间的一部分时,现在支持此功能。 Apple开发人员论坛站点上有更多详细信息,但希望@Rick Ballard可以在此处将其添加到他的答案中,这应该成为该问题的明确答案。
不要再执行以下操作!
短期而言,虽然没有受支持的解决方案,但如果要生成模块/框架,则可以将其复制到SDK /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/目录中,然后仅复制import ,就像导入系统框架一样。
对于OS X Playground:/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/
对于iOS:/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/
但是在您这样做之前...就像@Rick在他的回答中所说的那样去雷达。
ikuramedia answered 2020-07-10T09:49:52Z
2 votes
我编写了一个教程,介绍了Beta 6中自定义框架的导入
简而言之,如果您的操场和框架位于同一项目或工作区中,并且您的框架是为64位构建的(甚至适用于iOS),它们也可以很好地协同工作。
iHunter answered 2020-07-10T09:50:47Z
1 votes
来源:[http://qiita.com/ryokosuge/items/2551cd4faa9dca324342]
如果在阅读已接受的答案后仍有任何人仍然难以理解如何进行操作,这可能会有所帮助。
它不是英语,所以我在这里解释:
使用迦太基:
1:在项目的根目录中设置Cartfile,添加您的库并运行:
Embedded Binaries
2:确保将项目另存为Embedded Binaries。从Xcode菜单栏中:Linked Frameworks and Libraries>.framework。关闭Xcode,然后从新的${SRCROOT}/Carthage/Checkouts/your_library_name/your_library_name.xcodeproj文件重新打开。
3:在工作区中添加库的Embedded Binaries文件:Linked Frameworks and Libraries>.framework。然后在${SRCROOT}/Carthage/Checkouts/your_library_name/your_library_name.xcodeproj中找到它。
4:在项目的常规设置中找到Embedded Binaries和Linked Frameworks and Libraries部分。 将库的.framework文件添加到两者中。
5:清理(⇧+⌘+ K)并构建(⌘+ B)。
6:将您的图书馆导入操场。
Shiyason answered 2020-07-10T09:51:48Z
1 votes
我通过将已构建的框架复制到“已构建的产品目录”中来解决该问题,在该目录中,工作区中的Playgrounds还会搜索框架。 注意:您还需要运行lipo并从FAT二进制文件中删除未使用的体系结构。
所需的步骤(简而言之):
创建汇总目标
添加脚本阶段以复制框架从Carthage / Build / iOS /到BUILT_PRODUCTS_DIR(我使用了一个快速脚本在以下示例中,但您也可以使用bash,ruby python等等。)
运行汇总目标现在,您可以将框架导入操场
另外,您可以在应用程序中利用汇总目标:
嵌入来自BUILT_PRODUCTS_DIR的框架,而不是Carthage / Build / iOS /
将汇总目标添加到应用方案中,以在清理后重新建立框架。
这是如上所述的示例项目设置:[https://github.com/richardnees/CarthagePlaygrounds]
Richard Kruse Nees answered 2020-07-10T09:52:44Z
0 votes
就像在Swift代码中使用Objective-C类一样,您可以将3rd-party库/类导入到您的项目中,Xcode会询问您是否要创建-Bridging-Header头文件。 选择是,然后将所需的所有头文件导入该文件中。 然后,在操场上,只需在import UIKit之后执行import -Bridging-Header,就可以使用导入到项目中的类。
更新:这实际上是不正确的。 请在下面查看我的评论。 抱歉造成任何混乱...
Peng90 answered 2020-07-10T09:53:09Z