xcode引入sdk_ios-如何将第三方框架导入Xcode Playground?

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

你可能感兴趣的:(xcode引入sdk)