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

肘子的 Swift 周报 #020 | 准备迎接 Swift 6 的到来

为了给开发者提供更充裕的适配时间,Swift 6 编译器将继续支持 Swift 5 的语言模式,这意味着开发者无需担心现有代码无法在 Swift 6 中运行。...在 5. x 版本期间,尽管 Swift 语言的核心功能已经稳定,但社区仍然为其增添了众多新功能和特性,这既增强了 Swift 的功能性和适用范围,也不可避免地提高了新手的学习门槛。...然而,在当前的开发环境中,自定义宏的使用不仅会显著增加项目的编译时间,而且在宏较为复杂时,Xcode 的响应也会受到影响,导致代码自动提示和宏展开功能频繁出错。...在 Xcode 8 推出之前,开发者可以通过访问未公开的 API,使用第三方插件来修改和增强 Xcode 的内部功能,赋予了广泛的自定义及扩展能力。...Pauken 在文章中不仅详尽地介绍了如何实现将旧式插件功能重新融入 Xcode 的关键步骤,还推出了名为 XcodePluginLoader 的工具,旨在迅速恢复对插件的支持,为开发者提供了一种强大的自定义工具

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

    iOS开发xconfig和script脚本使用详解

    api.appname.com"#define PublicKEY @"32GDG4575UB5M97O7M2X32RFH53QWT43"#endif 通过在pch文件中利用条件编译定义不用的宏来实现项目的动态切换配置..." Mamba.xconfig WEBSERVICE_URL = @"www.jd.com" 这样只是自定义了一个Build Setting变量,不能代码里像使用宏那样使用,Xcode是支持利用GCC_PREPROCESSOR_DEFINITIONS...在定义宏的,在Common.xconfig文件中加入如下代码: GCC_PREPROCESSOR_DEFINITIONS = $(inherited) WEBSERVICE_URL='$(WEBSERVICE_URL...前面我们通过info.plist获取到了.xconfig文件中自定义的变量,再次我们同样通过info.plist来获取自定义的变量的值来当做宏使用,首先在info.plist中新建一个WEBSERVICE_URL...变量,并设置值为'$(WEBSERVICE_URL)',由于需要解析info.plist中的变量,再次封装一个config.swift的类用来解析: import Foundationenum Config

    2.8K10

    SwiftLint

    安装 使用Swift Package Manager SwiftLint 可以用作命令插件或构建工具插件 添加 .package(url: "https://github.com/SimplyDanny...如果要让 Xcode 知道 SwiftLint 在哪,你可以在 Build Phase 中将 /opt/homebrew/bin 路径添加到 PATH 环境变量 if [[ "$(uname -m)"...也有类似的用来设置输入文件的环境变量以 自定义 Xcode script phases 。...什么时候需要将一个规则设为 opt-in 的指南: 一个可能会有许多负面作用的规则(例如 empty_count) 一个过慢的规则 一个不通用或者仅在某些特定场景下可用的规则(例如 force_unwrapping...emoji, sonarqube, markdown, github-actions-logging) 定义自定义规则 你可以用如下语法在你的配置文件里定义基于正则表达式的自定义规则: custom_rules

    10810

    在多包项目中统一管理资源

    之所以强调任何状态,是因为,Swift 会视项目的编译需求而将 Bundle 放置在不同的目录层级上( 例如单独编译 SPM Target 、在 SPM 中进行 Preview、在 Xcode 工程中引入...在 SPM 中,如果你为 Target 添加了至少一个资源,那么 Xcode 将会为你创建一段辅助代码( 该段代码并不包含在项目中,只在 Xcode 中起作用 ),生成一个指向该 Target Bundle...的实例:Bundle_module_2022-11-06_17.30.46.2022-11-06 17_33_41代码如下:private class BundleFinder {}extension...I18NResource在 Target 对应的目录下创建 Resources 目录修改 Package.swift,添加 defaultLocalization: "en", 启用本地化支持在 I18NResource.swift...—— 摘自:Mastering Swift Package Manager希望本文能够对你有所帮助。同时也欢迎你通过 Twitter[5]、 Discord 频道[6] 或博客的留言板与我进行交流。

    1.5K20

    肘子的 Swift 周报 #055| 让技术为我所用,不要被其反噬

    Swift Macro 在业务开发中的探索与实践[7] tit @ Bilibili[8] 自从 Swift 5.9 引入宏功能后,越来越多的开发者开始意识到宏在开发中的重要作用。...除了大量使用预置宏之外,根据业务需求定制自定义宏,能够显著提升开发效率并简化代码流程。...本文中,tit 不仅深入讲解了 Swift 宏的基础和进阶用法,还展示了如何在 Bilibili 会员中心模块开发过程中,通过自定义宏减少冗余代码的编写,优化整体开发体验。...Thomas Ricouard[11] 在 How to use Cursor for iOS development[12] 一文中,分享了他使用 Cursor 的体验,并为 iOS 开发者提供了详细的配置步骤和建议...Swift Testing Swift Testing 是专为 Swift 语言设计的测试框架,并集成在 Xcode 16 中,成为官方推荐的测试工具。一旦使用它,你很可能会被其强大的功能所吸引。

    3100

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

    二、通用 Xcode 13 包括对 Swift 并发编程的原生支持、对 Xcode Cloud 持续集成和交付的支持、对 Git 拉取请求的集成支持、使用 DocC 在 Swift 框架中创建和查看文档的能力...十七、Organizer Xcode 现在可以近乎实时地提供崩溃报告,数据保留时间更长; Xcode 现在提供具有更多过滤功能和更多统计信息的崩溃报告; 现在可以通过 URL 共享崩溃报告; Xcode...Xcode 13 中的 Swift 语法高亮显示是即时且无闪烁的,无论是在文件之间进行编辑还是导航; 即使您的代码不完整或您的项目无法编译,Swift Jump to Definition 现在也能提供更具弹性的体验...二十三、Static Analyzer 静态分析器现在警告带有副作用的断言、无限循环和更多 C++11 std::move 误用情况。...这些函数具有允许配置和自定义样式的参数。 JSONSerialization 和 JSONDecoder 现在支持从 JSON5 解码。

    8.8K40

    肘子的 Swift 周报 #057| 超宽虚拟屏很棒,但我们期待更多

    本文将带你探索从简单的自定义通知,到强大的持久化历史追踪(Persistent History Tracking 和 SwiftData History)等多层次的解决方案,助你应对各种复杂的数据同步场景...近期推荐 逆流而上的设计 - Swift 所有权和 ~Copyable[5] 王巍[6] Rust 的所有权系统以严格的规则确保内存安全,广泛应用于系统编程和高性能计算。...在 SwiftData 中实现 Sendable (Being Sendable with SwiftData)[10] Leo G Dion[11] 在 SwiftData 中,使用符合 Sendable...在 Xcode 中格式化 Swift 代码 (Swift Format in Xcode)[12] Sarah Reichelt[13] 在苹果的开发生态中,有两个名称相近、功能相似的代码格式化工具:由...] Leo G Dion: https://x.com/leogdion [12] 在 Xcode 中格式化 Swift 代码 (Swift Format in Xcode): https://t.ly

    6310

    使用 Swift Package 插件生成代码

    我们手动编写了这些测试,但我们很快就意识到这个解决方案是不可扩展的,因为随着越来越多的符合Fetchable协议的类型被添加,我们引入了大量的代码复制,并可能有人最终忘记为特定功能编写这些测试。...在我忘记了这件事一段时间后,Xcode 14的公告允许在Xcode项目中使用 Swift Package 插件,以及一些架构更改使提取类型信息变得容易得多,这让我有动力再次开始研究这个问题。...请注意,Xcode项目的构建工具插件尚未按照发布说明在Xcode 14 Beta 2中提供,但将在Xcode 14的未来版本中提供。...图片取自 Xcode Beta 2 版的发布说明 在过去的几周里,我一直在研究如何使用软件包插件生成单元测试,在这篇文章中,我将解释我在向哪个方向尝试以及它涉及了什么。...如果在测试目标的依赖项中找不到合适的目标,则使用Diagnostics API将错误转发回Xcode,并告诉它完成构建过程。 让我们看下结果 插件这就完成了!现在让我们在 Xcode 中运行它!

    2.2K20

    玩转 Xcode Playground(下)

    开发者通常将自定义类型、预设方法、测试片段、前文中提到的自定义 Quick Look、自定义实时视图类型等内容,保存成 Swift 代码文件,放置在 Sources 目录中。...下面的代码,可以获取 Page1 可用资源的汇总目录: let url = Bundle.main.url(forResource: "pic", withExtension: "png") image...如确有为单个 Page 添加资源的需求,可以在 Xcode 或 finder 上添加好后,再于 Swift Playground 中打开。...隐藏代码的作用是,只在 Swift Playground 的代码区域中显示需要使用者了解的代码。将其他暂时无需使用者理会的代码隐藏起来(仍会执行,只是不显示)。...隐藏代码和设定修改区域在制作交互式文档中的作用巨大,希望 Xcode Playground 能尽早支持上述的标注。

    1.8K30

    老司机 iOS 周报 #98 | 2020-01-06

    How to use scroll view in Interface Builder / Storyboard (Xcode 11) @极速男孩:本文介绍了如何在 Xcode 11 的 Interface...本文是来自手淘架构组的谢俊逸同学在二进制重排方案的基础上,针对原有方案的一些实践限制,提出了一种基于静态库二进制插桩的重排方案,对于大量应用组件化构建应用的团队来说,是一个值得学习借鉴的好文章。...9to5mac 年度回顾:Apple 在 2019 年全年发布的所有产品 @张嘉夫:对于苹果公司而言,2019 年是繁忙的一年,全年分发了无数的硬件和软件版本。...从 Mac 系列和 iPhone 11 Pro 的多个更新到 Apple Watch Series 5 和 AirPods Pro,Apple 在 2019 年对其所有产品系列进行了更新和发布。...工具 Publish @四娘:Publish 是一个使用 Swift 编写的静态网站生成器,支持主题和插件等自定义功能,前身是 SwiftBySundell 这个网站的生成工具,现在作者整理后将它开源了出来

    84310

    iOS12、iOS11、iOS10、iOS9常见适配

    检测代码 self.traitCollection.forceTouchCapability == .availible 复制代码 二、iOS11(Xcode9) 2.1、安全区域(SafeArea)...iOS 11 中必须支持 When In Use 授权模式(NSLocationWhenInUseUsageDescription),在 iOS 11 中,为了避免开发者只提供请求 Always 授权模式这种情况...如果要支持老版本,即 iOS 11 以下系统版本,那么建议在 info.plist 中配置所有的 Key(即使 NSLocationAlwaysUsageDescription 在 iOS 11及以上版本不再使用...复制代码 2.7、iOS11中 UIKit’s Bars 上的变化 三、iOS10(Xcode8) 3.1、(Why?Safe!)...苹果还提供了配置,使得所有安全性更低的网络请求也能使用,解决方案就是在 info.plist 里面增加以下配置: NSAppTransportSecurity

    2.1K31

    如何通过静态分析提高iOS代码质量

    我分别用Xcode11在两个项目上运行过OCLint,一个实例项目可以正常运行,另一个复杂的项目却运行失败,报如下错误: 1 error generated 1 error generated .....OCLint0.15 我在oclint issuse #547这里找到了这个问题和对应的解决方案。 我们需要更新oclint至0.15版本。...Built May 19 2020 (11:48:49). 出现这个介绍就说明我们已经完成了安装。...[1240] OCLint支持自定义规则,因为其本身规则已经很丰富了,自定义规则的需求应该很小,也就没有尝试。...3、通过CMD + B我们编译一下项目,执行脚本任务,会得到能够定位到代码的warning信息: [1240] 总结 以下是对这几种静态分析方案的对比,我们可以根据需求选择适合自己的静态分析方案。

    2.2K30

    swift-5.5.1-RELEASE源码编译(Xcode)

    编译前提与注意事项 对于源码的版本要与Xcode的swift版本一致,对于macOS的版本参照一下CI说明文档[1] 提供两个宝藏网站以帮你查询你的Xcode与swift的version信息: Xcode...此前在测试编译过swift-5.3.1出现过python2.7问题,但是如果编译swift-5.5.1则可以完全使用python3,目前还没有遇到关于python的错误。...您可以提高它,例如通过在dotfile中设置export SCCACHE_CACHE_SIZE="50G"。有关更多详细信息,请参阅Sccache README[5]。...编译ALL_BUILD 提示错误libcmark.a没有这样的文件或目录 解决方案: 打开编译结果,找到cmake.xcodeproj,选择schemecmakebuild一下就可以。...相比之下对于iOS开发者来讲可能使用Xcode调试会更加的舒服。对于Xcode的使用也更加的娴熟。自定义一些类也更加的方便。虽然xcode有许多许多的问题,但是听说Xcode 14会有所改善。

    1.5K21
    领券