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

使用 Swift Package 插件生成代码

在我忘记了这件事一段时间后,Xcode 14公告允许在Xcode目中使用 Swift Package 插件,以及一些架构更改使提取类型信息变得容易得多,这让我有动力再次开始研究这个问题。...此命令必须运行可执行文件提供名称和路径,这可以在插件上下文中找到: SourceKitPlugin.swift import PackagePlugin @main struct SourceKitPlugin...这是最棘手部分,这些需要指向正在测试目标的来源,而不是插件正在应用于目标——单元测试。谢天谢地,插件目标依赖是可访问,我们可以从该数组中获取我们感兴趣依赖。...如果在测试目标的依赖中找不到合适目标,则使用Diagnostics API错误转发回Xcode,并告诉它完成构建过程。 让我们看下结果 插件这就完成了!现在让我们在 Xcode 中运行它!...为了测试这种方法,包含以下内容文件添加到CodeGenSample目标中: CodeGenSample.swift import Foundation protocol Fetchable: Decodable

2.2K20

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

,并为所有支持平台定位依赖; 当发生构建失败时,xcodebuild 现在会在构建日志末尾摘要中显示每个失败命令目标和项目名称; 当脚本阶段或自定义构建规则声明不属于构建输入一部分,且未声明为构建中任何其他任务输出依赖输入依赖时...Xcode 13 中 Swift 语法高亮显示是即时且无闪烁,无论是在文件之间进行编辑还是导航; 即使您代码不完整或您项目无法编译,Swift Jump to Definition 现在也能提供更具弹性体验...二十五、Swift Packages 根包和基于分支包依赖现在可以在其目标设置中使用 unsafeFlags; Swift 包现在可以声明 Mac Catalyst 部署目标,并且现在可以在构建条件中将...作为平台; 当尝试导入本地尚不可用模块时,Xcode 现在会建议添加集合中包; 现在可以在 Add Packages 表中添加精选包集合; 单元测试现在可以直接测试可执行目标。...三十六、隐私 下载在应用隐私报告中显示应用内容文件,可以选择设置 > 隐私 > 记录应用活动。 三十七、Safari 底部标签栏经过重新设计,显示在页面内容下方。还可以选择在顶部显示地址栏。

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

WWV 2018年十大必看视频

首席iOS工程师 如今,机器学习仍然是一个热门话题,Apple已经很容易这项技术添加到应用程序中。使用Core ML 2,您可以机器学习视为从代码中调用库。...您还可以输入一些数据来测试预测准确性。如果您对自己制作模型感到满意,请将其导出。最后,新模型拖到项目中。您可以在Swift和命令行REPL中macOS Mojave上训练模型。...应用程序部件拆分为单独目标可以大大减少构建时间。有些部件在建造之前必须等待其他部件。部分移动到没有其他依赖关系codegen目标可以在时间轴中更早地移动构建任务,并促进并行构建。...您可以脚本放入正文或创建对项目中另一个脚本引用。例如,如果脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读,不会被编译。您输出文件也可以放在文件列表中。...如果你有依赖循环,Xcode 10现在报告并产生错误,在你目中可能存在循环依赖引用。 关于构建时间测量也是新。内联任务显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中内容。

2.7K20

WWDC 2018年十大视频评论

您还可以输入一些数据来测试预测准确性。如果您对自己制作模型感到满意,请将其导出。最后,新模型拖到项目中。您可以在Swift和命令行REPL中macOS Mojave上训练模型。...他解释了如何处理项目和依赖可以消除构建中复杂性。 以下是本次会议一些重点: “八卦邻居”依赖性与他们不需要东西有关。构建可能包括目标,库甚至测试之间大量连接。...应用程序部件拆分为单独目标可以大大减少构建时间。有些部件在建造之前必须等待其他部件。部分移动到没有其他依赖关系codegen目标可以在时间轴中更早地移动构建任务,并促进并行构建。...您可以脚本放入正文或创建对项目中另一个脚本引用。例如,如果脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读,不会被编译。您输出文件也可以放在文件列表中。...如果你有依赖循环,Xcode 10现在报告并产生错误,在你目中可能存在循环依赖引用。 关于构建时间测量也是新。内联任务显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中内容。

3.3K20

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

Xcode编译疾如风-2.并行编译 ? Xcode 编译是一个需要 CPU 运算以及大量 IO 操作过程。我们编译任务分配给多个 CPU 来提高单位时间内编译速度。...小菜电脑是 8 核,尝试着线程数设置为了 16,经过测试,小菜 M1 电脑全量编译提升了大概 20s 左右。...项目中源代码,包括头文件、C、C++、Objective-C、Swift等文件,经过构建系统 LLVM 以及 Swift 编译器处理后,生成最终app。...构建系统第一步就是获取构建描述,根据 Xcode 项目文件配置,分析依赖关系,最终生成一个有向图,图中描述了项目中输入和输出文件,以及处理它们执行任务。 ? 开启并行编译好处不言而喻。...可并行化部分占比 P 90% 时,无论如何提高并行程度(提高N),整体上最多获得性能提升无法超过基准 10 倍。(1-P)部分表示无法并行部分,这部分便是瓶颈。

2.8K41

使用 pod lib create 创建库

Objective-C或Swift 你问第一个问题是你想要构建一个pod语言。对于这两个选择,CocoaPods会将你库设置一个框架。...我们测试框架提供了所有必要包含和设置,MyLib-Tests.pch以便您不必将它们包含在每个文件中。...和以下文件夹: Pod - 这是您放置库地方 Example - 这是生成演示和测试库放在一起 CocoaPods立即打开您Xcode项目; 从那里你可以编辑CocoaPods生成所有文件...添加Travis CI 该模板包含一个.travis.yml文件,该文件运行项目中包含默认测试。如果您在GitHub上有一个开源仓库,请在Travis CI 上打开您个人资料并打开该库。 ?...如果部署到现有的私有仓库,请使用此命令进行部署: pod repo push SPEC_REPO *.podspec --verbose 完成?

3.6K10

架构之路 (七) —— iOS AppSOLID原则(一)

接着看下写作环境: Swift 5, iOS 14, Xcode 12 下面就是正文了。 编写出色应用程序,您不仅需要提出一个好主意,还需要考虑未来。...发现被破坏最简单原则是依赖倒置(dependency inversion)。 项目中根本没有协议,这意味着也没有隔离接口。 打开 AppMain.swift。...---- Applying Dependency Inversion 对于下一步,您将通过依赖分解协议来应用依赖倒置。...这不仅可以让您删除在此处编写代码,还可以让您轻松地测试视图提供模拟数据源。 构建并运行。 您会发现一切仍然完好无损,预览现在会显示模拟费用。...编写干净且有组织代码是一个总能得到回报目标。如果你说,“我稍后会清理它”,当那个时刻到来时,事情通常会太复杂而无法真正清理。 在代码中使用设计模式看似复杂问题提供了简单解决方案。

4.6K10

Xcode 中添加 Swift package 依赖

Xcode带有内置依赖管理器,称为 Swift Package Manager(SPM)。您可以告诉 Xcode 在线存储某些代码URL,然后它将为您下载。...这Swift Sequence类型(Array,Set,Dictionary甚至是range都符合)添加了一个小扩展,它可以同时提取许多随机。...无论如何,第一步是添加到我们目中:转到 File 菜单,然后选择 Swift Packages > Add Package Dependency。...Xcode获取该软件包,读取其配置,并向您显示一个新屏幕,询问您要使用哪个版本。...无论如何,我们已经完成了打包工作,因此请单击“完成”以使Xcode将其添加到目中。您应该看到它出现在项目导航器Swift Package Dependencies”下。

6.2K10

代码开发工具Xcode

同时,该软件还提供了各种调试工具,包括断点、单步调试和调试控制台,可以帮助开发者快速定位和解决程序中问题。 除了代码编辑和调试功能外,Xcode for Mac 还具有强大构建和测试功能。...id=NzY4OTU4Jl8mMjcuMTg2LjEzLjIxNQ%3D%3D 图片 Xcode mac下载功能特色 Xcode包括Xcode IDE,Swift和Objective-C编译器,仪器分析工具...Builder每个目标设备显示像素完美的UI,并可以在任何缩放级别进行编辑 •查看调试会在运行时显示所有应用程序UI视图图层3D堆栈 •助理编辑者显示与您主要任务相关内容 •实时问题在您键入时会显示错误...•从GUI设计直接创建与相关源代码连接 专业编辑器和调试器保持您代码前端和中心 •点击几键,Open Quickly立即打开项目中任何文件 •消息气泡会在您代码旁边显示错误,警告和其他问题...•数据提示通过鼠标悬停在代码上来显示变量值 •调试时,快速查看变量以查看实际颜色,贝塞尔曲线路径,图像等 •第三方应用程序扩展可以向源编辑器添加新功能 测试驱动开发正确 •使用测试导航器只需点击即可添加

1.7K10

玩转 Xcode Playground(上)

相较标准 Xcode 项目,Playground 启动更快、使用更轻巧,被广泛应用于 Swift 语言学习、框架 API 测试、快捷数据处理、汇集灵感等众多方面。...image-20211223164000220 Xcode 可以打开 Playground 项目,也可以 Playground 项目添加到 Project 或 Workspace 中(有助于测试 SPM...运行方式改成手动 在运行方式被设置自动模式时,每当你修改代码后,系统都会自动运行代码并显示结果。...image-20211223151240337 如何查看结果栏 Playground 在 Xcode 中拥有一个独有的显示区域——结果栏,该区域不仅可以显示每行代码的当前值、历史状态,同时也会显示关于调用次数...通过导入 PlaygroundSupport 并将当前页面的实时视图设置自定义视图或视图控制器,就可以一个交互式实时视图添加到 Playground Page 中。

3.9K20

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

这将帮助您快速学会使用 ComPDFKit PDF SDK,完成所有步骤,您将可以获得一个简单应用程序,可以显示指定PDF文件内容。在本篇文章中,我们将以 Xcode 14.0.1 例。...界面选择情节提要。选择编程语言“Swift”。单击“下一步”按钮。项目放置到所需位置。然后,单击“创建”。...桥接头文件路径添加到 Objective-C Bridging Header 旁边,路径从项目根文件夹开始。...否则,请查看本文末尾“故障排除”部分或查看控制台中错误日志,以快速识别并解决问题。编译并运行该项目。第 5 步:显示 PDF 文档准备一个测试PDF文件,将其拖放到新创建pdfView项目中。...如果无法显示PDF内容,请检查创建NSURL和对象是否空,或者创建CPDFView大小是否零。它们不应该是空。如果文件路径中有特殊字符,你 NSURL 将为 nil。

300

Sourcery Swift Package 命令行插件

Mock 是一个相当重载术语,但通常,如果我创建一个 双重测试[3],我会根据它用途进一步指定类型名称(可能是 Spy 、 Fake 、 Stub 等)。...创建插件包 让我们首先创建一个空包,并去掉测试和其他我们现在不需要文件夹。然后我们可以创建一个新插件 Target 并添加 Sourcery 二进制文件作为其依赖。...现在让我们使用它 使用(插件)包 考虑一个用户正在使用插件,该插件依赖引入了他们 Package.swift 文件: // swift-tools-version: 5.6 // The swift-tools-version...如果你正好在使用 Xcode 14,你可以通过在文件资源管理器中右键单击包,从列表中找到执行插件,然后单击它来执行包任何命令。 下一步 这是插件初始实现。我研究如何改进它,使它更加健壮。...此外,如果您喜欢这篇文章,请关注即将到来第二部分,其中我制作一个 Sourcery 构建工具插件。我知道这听起来不多,但这不是一容易任务!

1.1K20

实现模块化应用本地化

后者包含 app 中所有页面的代码,每一页将被定义自己产品: Package.swift // swift-tools-version: 5.6 import PackageDescription...所有的 UI ,演示和业务逻辑留在各自 "模块" 中( Features Swift Package 中一个 target)。这将允许每个功能独立开发并完全与其他功能隔离。...原因是 Swift 包需要额外信息去决定使用哪些本地化内容,就目前来看,如果包里有目标内容,它们只使用目标的基本本地化,否则使用包默认本地化。...在 app target 中添加新本地化内容 在 Features Swift 包中启用新本地化一种方式是将它们添加到导入功能 Xcode目中。...同样,如果 app 不支持该语言,同样会回退到相同值。这也是为什么 defaultLocalization 设置与主目标基础语言相同,以确保所有页面上一致性是非常重要

85220

用scikit-learn开始机器学习

Swift 4,iOS 11,Xcode 9 ? image 借助iOS 11,Apple发布了Core ML框架,允许您将经过培训机器学习模型集成到您应用程序中。...幸运是,scikit-learn提供了一个易于使用功能,可以数据分成训练和测试集。...y:来自样本数据输出(销售数量)。 test_size:用于测试数据百分比,通常设置25%到40%之间。 random_state:如果没有输入,该函数随机选择用于列车和测试样本行。...模型导入Xcode项目后,在Project导航器中单击它,您将看到有关它一些信息: ?...如果执行此操作,请查看Model Interface文档以查看可以提供元数据。 片刻之后,您应该看到自动生成Swift模型类。

1.7K10

Running Python in Xcode: Step by Step第1步:安装Python 3.5第2步:找到python3第3步:创建一个Xcode项目步骤4.创建Python文件步骤5.编

,所以where python3 显示 /usr/local/bin/python3。...文件命名为你喜欢名字 Whatever .py,。我命名为 Work.py 。确保选中“添加到目标Python”框。单击“创建” ?...6.png 步骤5.编辑您运行方案 Xcode默认应该选择Run方案: ? 7.png 单击并按住跳转栏中Python目标。选择编辑方案... ?...8.png 显示“运行”方案,并选中“信息”选项卡。 步骤6.选择可执行文件 我现在警告你,这一步变得微妙,脆弱和愚蠢。...选择显示原始。这可能会被命名为python3.5。它不是一个符号链接,但不幸是,Xcode继续挑错,不允许你选择它作为你可执行文件:因为它名称有句号。唉!

3.1K20

Swift 单元测试入门

XCTestCase 子类包含运行测试方法,其中只有以 "test" 开头方法才会被 Xcode 解析并允许运行。...(比如上面的扩展代码不小心被修改了),Xcode 将使用我们提供描述显示失败: 单元测试失败,因为输入与预期输出不匹配。...然而,我们定义视图模型不是空,因此,所有的断言都失败了。 使用正确断言可以帮助您更快地解决故障。 结果显示了为什么必须对验证类型使用正确断言。...XCTAssertEqual 方法我们提供了有关断言失败原因更多上下文。这显示在红色错误和控制台日志中,可帮助您快速识别失败测试。...例如,在测试 JSON 响应解码时: func testDecoding() throws { /// 当数据初始值设定抛出错误时,测试失败。

2.6K40

一次炫技差点引发惨案

3.0 写(最新 swift 版本是 5.5),在最新 Xcode 15 上跑不起来,也就无法打包,那还了得,万一碰到什么 bug 无法打包解决问题可就大了 其实五一前两周我们在迭代开发产品时就发现...4.29 日之后必须用 Xcode 15 打包,还好提前一周我们发现了这个问题,这样可以先降级到 Xcode 14 来开发打包,迭代功能也顺利上线了 但是 app 不能在 Xcode 15 上启动打包问题终究是解决...开发项目,由于 JDK 通常设计向后兼容(兼容老版本),老项目通常能跑起来,为啥我们这个 iOS 项目会有这样在最新版 Xcode 15 上跑不起来问题呢 主要原因其实是因为这个项目的 Pod...这事其实很要命,试想如果发现线上有个 bug 需要紧急修复(比如无法),然后你 app 却无法打包导致短时间内无法修复,很可能导致用户流失,业务停滞甚至公司倒闭严重后果 假使我们当时技术人员统一在工程中都用...」 Swift 作为一种新技术,其实还是存在不少坑,手淘也是在 ABI 稳定后才开始在项目中引入 Swift ,这就好比 JDK 22 出来了,但国内大部分还是使用 Java 8 为什么会出现这种

9010

IOS开发之免费证书+不越狱真机调试

Xcode帐户添加到帐户列表中,单击左侧帐户,可以列出该帐户开发许可证,代理人表示帐户是付费账户,免费表示未支付但可免费下载。我们打了两次。...此分类上一篇: XCode 7正式版本与测试版不同 普通AppleID第一次登录显示如下界面。下图红色框位置将有“创建”按钮,其他创建签名按钮是灰色不可点击。...在这里点击“iOS Development”创建按钮,以名义意义,如果开发测试Mac,就点击“MAC Development”创建按钮。...同时真实机接到计算机并连接。 9、识别设备后,等待Xcode自动您打开下载模式,如果长时间卡在这里。请打开真实机,并在真实机爆炸对话框中点击“信任”。当真机准备完了时,可以关闭这个窗口。...然后在空地方右键“新文件夹”,创建一个新文件夹,以便将该项目。选择新创建文件,点击“创建”保存。 进入Xcode7工程界面。确认目标系统版本和测试设备,如果不选择正确选项。

1.2K20
领券