首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Xcode添加 Swift package 依赖

Xcode带有内置的依赖管理器,称为 Swift Package Manager(SPM)。您可以告诉 Xcode 在线存储的某些代码的URL,然后它将为您下载。...这为Swift的 Sequence类型(Array,Set,Dictionary甚至是range都符合)添加了一个小的扩展,它可以同时提取许多随机。...无论如何,第一步是将添加到我们的项目中:转到 File 菜单,然后选择 Swift Packages > Add Package Dependency。...无论如何,我们已经完成了打包工作,因此请单击“完成”以使Xcode将其添加到项目中。您应该看到它出现在项目导航器的“Swift Package Dependencies”下。...要尝试,请打开 ContentView.swift 并将此导入添加到顶部: import SamplePackage 是的,外部依赖关系现在是一个模块,我们可以需要的任何地方导入它。

6.2K10

玩转 Xcode Playground(下)

辅助代码与资源 Xcode Playground 的结构及文件添加 Xcode Playground 项目并不依赖项目配置文件,Page、辅助代码、资源文件、调用权限等均通过.playground内的目录结构来进行管理... Xcode 中为 Page1 添加辅助代码和资源文件,Page1.xcplaygroundpage 中的内容也将发生改变。...如何使用本地化文件(主要用于 Swift Playgrounds) 同 SPM 对于本地化管理方式类似,只需要在资源文件目录中创建所需语言的目录(例如en.lproj、zh-CN.lproj),便可在目录中添加对应语言的字符串文件和资源文件...(项目 DemoiOS 13 的依赖)。...不过只能执行一个项目中的代码(但是可以执行另一个项目中依赖的代码)。

1.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

使用 Swift Package 插件生成代码

我忘记了这件事一段时间后,Xcode 14的公告允许Xcode目中使用 Swift Package 插件,以及一些架构更改使提取类型信息变得容易得多,这让我有动力再次开始研究这个问题。...图片取自 Xcode Beta 2 版的发布说明 在过去的几周里,我一直研究如何使用软件插件生成单元测试,在这篇文章中,我将解释我向哪个方向尝试以及它涉及了什么。...实施细节 我开始了一任务,即创建一个构建工具插件,与 Xcode 14 引入的命令插件不同,该插件可以任意运行并依赖用户输入,作为Swift软件构建过程的一部分运行。...创建executableTarget并赋予它两个依赖后,Package.swift就是这个样子: Package.swift // swift-tools-version: 5.6 // The swift-tools-version...如果在测试目标的依赖中找不到合适的目标,则使用Diagnostics API将错误转发回Xcode,并告诉它完成构建过程。 让我们看下结果 插件这就完成了!现在让我们 Xcode 中运行它!

2.2K20

iOS之深入解析Xcode 13正式版发布的40个新特性

、Vim 键绑定支持、Swift 集合; 可以命令行上使用 cktool 与 CloudKit 数据库架构和记录进行交互; 可以命令行上使用 TextureConverter 将纹理压缩为所有 Metal...,并为所有支持的平台定位依赖; 当发生构建失败时,xcodebuild 现在会在构建日志末尾的摘要中显示每个失败命令的目标和项目名称; 当脚本阶段或自定义构建规则声明不属于构建输入的一部分,且未声明为构建中任何其他任务的输出依赖的输入依赖时...; 可以通过选择 Edit > Copy Location 以 : 的形式将所选内容的当前位置复制到剪贴板; Swift 中将占位符扩展为闭时,代码完成使用闭的参数名称而不是 ;...二十五、Swift Packages 根和基于分支的依赖现在可以在其目标设置中使用 unsafeFlags; Swift 现在可以声明 Mac Catalyst 的部署目标,并且现在可以构建条件中将...作为平台; 当尝试导入本地尚不可用的模块时,Xcode 现在会建议添加的集合中的; 现在可以 Add Packages 表中添加精选的集合; 单元测试现在可以直接测试可执行目标。

8.6K40

CocoaPods对三方库的管理探究

stackoverflow[1]找到了一个解释:Xcode的编译是依赖.m文件的,如果一个库里没有.m文件,将不会被编译,为了防止这种情况就会在每个库里增加一个空的.m文件。...另外两用于帮助我们目中查找三方库的FRAMEWORK_SEARCH_PATHS和HEADER_SEARCH_PATHS也是该文件内部定义的,这些配置会体现到Build Settings里面: ?...这里是设置编译阶段配置的地方,当首次pod install成功之后,这里会多几个[CP]开头的配置(CP即CocoaPods缩写),它们都是由CocoPods添加的脚本内容,执行顺序从上到下。...该错误较常见,出现于拉取远端代码,远端pod依赖本地不一致的情况。...[CP] Copy Pods Resources 这个一般以静态库引入的三方库切里面包含资源的话会添加该脚本,其作用是将三方库的资源文件拷贝至项目中

2.7K20

目中统一管理资源

SPM 本身提供了对中各类资源( 包括本地化资源 )的管理能力,但主要局限于中使用这些资源,难以将资源进行共享。在有多个 Target 均需调用同一资源的情况下,原有的方式很难应对。... SPM 中,如果你为 Target 添加了至少一个资源,那么 Xcode 将会为你创建一段辅助代码( 该段代码并不包含在项目中,只 Xcode 中起作用 ),生成一个指向该 Target Bundle...实践本节,我们将通过一个具体案例来演示如何在一个拥有多个Xcode目中统一管理资源。可以 此处[4]获得项目代码。...I18NResource Target 对应的目录下创建 Resources 目录修改 Package.swift添加 defaultLocalization: "en", 启用本地化支持 I18NResource.swift...创建 Swift 的过程迫使您采取良好和健康的步骤来最终改进您的项目,例如测试、API 设计、依赖注入、文档编写等等。

1.4K20

将 iOS 应用体积缩小一半的秘籍:妥善运用动态框架

使用 SwiftPM 创建动态框架 默认情况下,Xcode 允许开发者选择以静态还是动态方式链接 Swift 。而在实际操作中,它总是会直接将捆绑为静态库。...大家可以将的库类型指定为.dynamic 来要求 Xcode 动态接入 Swift : // EmergeUI/Package.swift let package = Package( name...除了内定义的代码之外,各子依赖(包括第三方库)现在也已成为动态链接框架的一部分,即使子依赖本身仍为静态。...我的这门资产标准化秘方包含四个步骤: 创建一个新的 Xcode Framework 并将共享资源转移过去。 使用二进制目标创建一个新的 Swift 。...导入我们的资产框架 最后,我们的 EmergeUI 模块可以导入 SwiftPM 打包的框架以作为常规本地依赖

11210

架构之路 (七) —— iOS App的SOLID原则(一)

发现被破坏的最简单的原则是依赖倒置(dependency inversion)。 项目中根本没有协议,这意味着也没有要隔离的接口。 打开 AppMain.swift。...如果您想在不同的项目中重用相同的 Core Data 设置,您会发现自己使用的是代码片段而不是整个文件。 接下来,打开 ContentView.swift。...---- Applying Dependency Inversion 对于下一步,您将通过将依赖分解为协议来应用依赖倒置。...当前项目有两个具体的依赖需要打破: ExpensesView 直接使用 ReportsDataSource。...Core Data 管理的对象 ExpenseModel 间接地使使用此类的所有内容都依赖于 Core Data。 您无需依赖这些依赖的具体实现,而是通过为每个依赖创建协议来将它们抽象出来。

4.6K10

WWV 2018年十大必看视频

image 版本 Swift 4, iOS 12, Xcode 10 现在,“ 开发人员Triceraptus ” 的年度迁移已经结束,WWDC 2018装已经从圣何塞的McEnery会议中心落下,我们还剩下另一系列令人信服的会议视频...他还强调了如何在项目中支持自己的框架。使用Xcode工作区,您可以导入自己的框架并添加一个操场来使用它们。 Playgrounds不仅仅是为了好玩。...Xcode 10括使用并行化构建过程的能力,并且还为构建时间添加了详细的测量。他解释了如何处理项目和依赖可以消除构建中的复杂性。...将部分移动到没有其他依赖关系的codegen目标可以时间轴中更早地移动构建任务,并促进并行构建。 运行脚本阶段可让您自定义构建过程。您可以将脚本放入正文或创建对项目中另一个脚本的引用。...如果你有依赖循环,Xcode 10现在将报告并产生错误,在你的项目中可能存在循环依赖引用。 关于构建时间的测量也是新的。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中的内容。

2.7K20

WWDC 2018年十大视频评论

最后,将新模型拖到项目中。您可以Swift和命令行REPL中的macOS Mojave上训练模型。 注意:有关创建ML的更多信息,请查看全新教程,创建ML教程: Audrey Tam 入门。...他还强调了如何在项目中支持自己的框架。使用Xcode工作区,您可以导入自己的框架并添加一个操场来使用它们。 游乐场不仅仅是为了好玩。它们是开发功能,测试API和制定自己的灵感的重要工具。...Xcode 10括使用并行化构建过程的能力,并且还为构建时间添加了详细的测量。他解释了如何处理项目和依赖可以消除构建中的复杂性。...将部分移动到没有其他依赖关系的codegen目标可以时间轴中更早地移动构建任务,并促进并行构建。 运行脚本阶段可让您自定义构建过程。您可以将脚本放入正文或创建对项目中另一个脚本的引用。...如果你有依赖循环,Xcode 10现在将报告并产生错误,在你的项目中可能存在循环依赖引用。 关于构建时间的测量也是新的。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中的内容。

3.3K20

苹果新推出的CoreML怎么用?有哪些bug?这里有一份教程

苹果在iOS 11里引入了本地机器学习和机器视觉框架,承诺这将促进app和游戏的一大飞跃性进步,也解锁了一大堆可能性。 目前机器学习解决方案已经可以云端实现了。...当你把.mlmodel格式的文件拖进App中时,Xcode会为它自动创建Swift wrapper。一些这样的模型文件大小可超几百兆。...我Xcode 9测试版中发现了不少bug,这是其中一个。 为了支持Core ML模型,苹果也推出了自己的机器视觉API,并命名为Vision。...例如,项目中的模型可以以图片作为输入,并且返回一个描述性字符串作为输出。对于非基于图像的模型,苹果已经创建了小型示例项目演示它的使用方法,它独立于Vision,只依赖Core ML。...bug修复前,不要在Xcode 9中尝试这个功能,会因为它将给依赖链带去巨大的影响。你只需Xcode的早期版本中打开Xcode项目,如果有需要的话,选择copy,并确认。

1.4K70

【iOS开发】Swift、OC 混编用到的 Bridging-Header.h

现在 Github 上绝大多数的库都是用 Objective-C 语言写的,当我们使用 Swift 进行开发的时候呢,无论是用 CocoaPods 还是手动把库集成到自己的项目中,一开始都是不能直接使用的...比如在这个 Swift目中,我手动加入了 OLImage 这个用OC写成的库,并且添加了所有需要的 Framework,但是代码中输入“OLImage”却悲伤地发现 Xcode 没有自动给你补全代码...当你 Swift 工程中加入 OC 文件,Xcode 一般会自动检测到这一点,并且询问你是否需要添加这个文件,而如果 Xcode 没有给你这个提示,你可以手动触发它: ? 添加文件 ?...选择 Header File 然而仅仅是这样,不管你 Header File 里面 import 多少内容,都没有用,因为你添加进来的这个 .h 文件并不会被编译。...这个时候,进入 YourTarget -> Build Settings -> Swift Compiler-Code Generation 这个设置里面,把你的 .h 文件的【绝对路径】输入到 Objective-C

3.6K20

腾讯云IM Flutter-原生混合开发方案接入实践

将 Flutter 模块添加至 Android 项目中详细学习将Flutter module添加为Gradle中现有应用程序的依赖。有两种方式可以实现这一点。...具体步骤:您的Flutter module中,运行:flutter build aar然后,按照屏幕上的说明进行集成。图片您的应用程序现在将Flutter模块作为依赖包括在内。...将 Flutter 模块添加至 iOS 项目中详细学习有两种方法可以现有应用程序中嵌入Flutter。...这种方法要求每个从事项目工作的开发人员都有一个本地安装的Flutter SDK版本。只需Xcode中构建您的应用程序,即可自动运行脚本来嵌入您的DART和插件代码。...如果您的团队成员无法本地安装Flutter SDK和CocoaPods,或者如果您不想在现有应用程序中使用CocoaPods作为依赖管理器,则可以这样做。

7K50

Xcode编译疾如风系列-2.并行编译

并行编译 Parallelize Build Xcode 的 scheme 设置中,Xcode会默认勾选 ☑️ Parallelize Build。 ?...该选项允许 Xcode 编译时分析各个构建任务的彼此依赖情况,然后并行构建。...项目中的源代码,包括头文件、C、C++、Objective-C、Swift等文件,经过构建系统 LLVM 以及 Swift 编译器处理后,生成最终的app。...构建系统的第一步就是要获取构建描述,根据 Xcode 项目文件配置,分析依赖关系,最终生成一个有向图,图中描述了项目中的输入和输出文件,以及处理它们的执行任务。 ? 开启并行编译的好处不言而喻。...常见的解决方式是Build Phases中的Dependencies中设置好依赖,妥善解决好依赖问题应该就能解决报错问题。 阿姆达尔定律 思考下,并行编译是银弹吗?非也。

2.8K41

实现模块化应用的本地

当然不是从头开始,而是代码库中通过使用 Swift 将代码分成不同模块。 我想提醒自己记住许多在本地化实行中的过程,所以我认为最好写一篇文章,以便下次开始同类型项目时可以参考。 开始吧!...它包含一个 Xcode 项目,一个单独的 app target(即将运行的那个)和一个名为 Features 的 Swift 。... app target 中添加新的本地化内容 Features Swift 中启用新的本地化的一种方式是将它们添加到导入功能的 Xcode目中。...这可以通过进入 Xcode 项目,项目设置中的 "Info" 一栏,添加本地化支持: 需要注意的是,本地化需要至少一个文件(例如一个空的 Localizable.strings 文件)。...本例中,因为 app target 是用 UIKit 构建的,并且添加新的本地化时选择了启动 storyboard 进行本地化(如上视频所示),所以已经有一个本地化文件。

85220

iOS 优化 - 瘦身

团队还帮助添加了一些编译器选项 (-Osize)。...SwiftSupport: libSwiftxxx 等一系列 Swift 库 其他依赖库:Embeded Framework Pulgins:Application Extensions appex:...我们所依赖的静态库、动态库、Cocoapods 管理的第三方库,都需要开启 Bitcode。否则打包会编译失败,具体错误会在 Xcode 中指出; Crash 定位。...目前就有这样一个工具 R.swift[4]一定意义上将资源变成强类型, 类似于 Android 开发中的 R 文件。 可利用fdupes[5]查找项目中的重复文件。...这种方式的性价比很高,改动一配置,就可能会带来收益,但是可能具有一定的风险,需要谨慎。 下文中提到的一些 Xcode 默认配置可能在低版本 Xcode 上不是默认配置,如果不是默认,可手动勾选。

2.4K20

如何使用 Swift 开发 iOS PDF 查看器或编辑器

IDE 版本:Xcode 12.0 或更高版本。本篇文章中,我们将以 Xcode 14.0.1 为例。目前,Mac 的 M 系列芯片不支持 Apple Silicon 模拟器上运行。...本篇文章中,我们将以 Xcode 14.0.1 为例。第 1 步:创建一个新项目启动 Xcode,然后选择File -> New -> Project。然后,iOS中选择App ->应用程序。...因此, Swift目中,您需要同时导入ComPDFKit.xcframework 和 头文件。...我们提供了两种 Swift目中导入 SDK 的方法:第一种:添加一个名为 MyProjectName-Bridging-Header.h 的头文件。...第 5 步:显示 PDF 文档准备一个测试PDF文件,将其拖放到新创建的pdfView项目中。这样,您就可以使用NSBundle加载,并预览本地 PDF 文档了 NSBundle。

300
领券