精华内容
下载资源
问答
  • windows开发swift
    2020-11-03 15:42:43

    2020/5/27更新:大家现在可以直接从Saleem Abdulrasool的Azure Pipeline中下载打包好的Swift Windows SDK了,在他的GitHub中找到swift-build项目,里面的CI链接里找到Artifacts就可以直接下载(类似windows-toolchain-amd64.msi这样的文件)。考虑到5.3版本的Swift将支持Windows平台,因此以下文章也许已经成为历史,大家看看就好了。

    ----------------------------------------- 以下是原文 -----------------------------------------

    大家五一节快乐。五一这两天杭州非常的热,吉祥宅在家里也不想开发引擎,便换了个模式,了解了一下由Apple于2014年推出的Swift语言。作者身边大多数人对Swift了解得并不多,对其的印象其实和ObjC差不多:由Apple开发,且只能用在Apple家族的设备上。作者在之前也一直抱有这个想法,但是这一次仔细地研究了一下,发现并不是这样。事实上,Swift是一门完全开源免费的语言,以Apache 2.0(包括运行库例外)协议授权,并且和微软的C#一样提供跨平台支持,并不是只能用在苹果自家的设备上。然而,尽管Swift自称是跨平台语言,作者却从未见过有人在Windows上使用Swift编程,而在Swift的官网上,我们可以看到其也只是提供了XCode和Ubuntu系统的下载链接,似乎在Windows平台上,除了使用微软的Linux Subsystem之外,没有办法直接使用Swift。

    但是经过又一番搜索,作者发现Swift其实是可以在Windows上使用的,只不过官方并没有提供Windows的二进制下载包,用户得自己在Windows上编译Swift的工具链。事实上,Swift在很早的时候就已经可以用于Windows和Android系统上,这两个系统上的工具链是由社区(主要是Google的大佬们)维护的,官网对此只字未提,作者也只能在Swift语言的GitHub页面中找到Swift在Windows上编译的一些零碎的教程。在Windows上编译和使用Swift需要进行十分繁琐的配置环境、编译、部署工作,作者花了昨天一个下午加上今天一个早上才真正完成整体的环境搭建,但是它确实能够运行起来,并且达到我们“在Windows上用Swift开发原生Windows程序”的目的。由于GitHub的官方教程有一些细节问题,并且作者在自己作死编译Swift的时候又遇到了一系列新的问题,耽误了很多时间,而作者找遍了全网也没有找到第二篇关于在Windows上编译Swift的教程,因此作者将自己在Windows上编译Swift的实践结果记录在这篇文章中,希望能够让有同样需求的大家少踩一些已经踩过的坑。

    本文主要分为以下三个部分:

    1. 前期准备(下载项目,准备编译环境)
    2. 按顺序编译各个Swift组件
    3. 用一个简单的swift文件测试一下

    官方原版教程的在这里:

    apple/swift​github.com图标

    前期准备

    首先我们需要安装用于编译Swift的开发环境,包括以下内容:

    1. 安装Visual Studio 2019或者更新版本。2017也许可以,这里没有测试过。
    2. 在VS Installer的工作负载中,在“桌面应用和移动应用”中,选择“使用C++的桌面开发”和“通用Windows平台开发”。作者建议直接把这两个勾上,按照默认配置安装就完事,如果需要单独选的话,至少需要选择以下几项:
      1. MSVC v14x 工具链。
      2. Windows 10 SDK 版本在10.0.17763以上。
      3. CMake和Ninja,在勾选了“适用于Windows的C++ CMake工具”以后会自动安装,如果已有的话,将其添加到Path中也一样有效。
      4. ATL(适用于最新v14x生成工具的C++ ATL)。
      5. Google Test 测试适配器。
    3. 在单个组件里面,单独勾选安装Python 2.7,注意32位的路径是C:\Python27\,64位的路径是C:\Python27amd64\,在后面执行命令的时候如果有提示找不到Python,请检查是否需要添加或者移除amd64后缀。

    在安装好所有的以后,按照官方文档的步骤打开PC的开发者模式。

    如果您的系统为中文系统,还需要进行一步额外的操作,即在控制面板->区域->管理->非Unicode程序的语言 中,勾选“"Beta 版" : 使用Unicode UTF-8提供全球语言支持”,并且将当前系统区域设置改为“英语(美国)”。由于Swift的源代码使用UTF-8编码,并且包含特殊字符(作者不知道为啥要这么做),因此如果您在这里不配置的话会导致因为字符无法识别而导致的编译失败。

    在完成以上操作后,我们需要创建一个文件夹,以放置所有Swift工具链相关的内容,以下的代码和说明均以D:\Swift\文件夹为例,如您的文件夹位于别处,可以手动替换所有的D:\Swift\路径至您的路径积可。

    在创建完目录以后,我们需要进入到目录下,并克隆所有需要的Swift项目源代码。使用管理器权限打开VS自带的x64 Native Tools Command Prompt(直接在开始菜单中搜索“x64”应该就会出现),然后执行以下代码:

    git clone --depth=1 https://github.com/apple/llvm-project --branch swift/master toolchain
    git clone -c core.autocrlf=input -c core.symlinks=true --depth=1 https://github.com/apple/swift toolchain/swift
    git clone --depth=1 https://github.com/apple/swift-cmark toolchain/cmark
    git clone --depth=1 https://github.com/apple/swift-corelibs-libdispatch swift-corelibs-libdispatch
    git clone --depth=1 https://github.com/apple/swift-corelibs-foundation swift-corelibs-foundation
    git clone --depth=1 https://github.com/apple/swift-corelibs-xctest swift-corelibs-xctest
    git clone --depth=1 https://github.com/apple/swift-llbuild llbuild
    git clone --depth=1 https://github.com/apple/swift-tools-support-core swift-tools-support-core
    git clone -c core.autocrlf=input --depth=1 https://github.com/apple/swift-package-manager swiftpm
    git clone --depth=1 https://github.com/compnerd/swift-build swift-build

    由于我们只是需要下载文件,所以我在所有克隆请求中都加了--depth=1来加快下载速度。全部下载完成后的目录应该包括以下目录:

    • toolchain
      • swift
      • cmark
    • swift-corelibs-libdispatch
    • swift-corelibs-foundation
    • swift-corelibs-xctest
    • llbuild
    • swift-tools-support-core
    • swiftpm
    • swift-build

    然后我们需要下载Swift的依赖库。在D:\Swift\下新建一个目录Library,然后按照官方文档的支持去AZure页面下载最新的daily build文件。

    以SQLite为例,我们找到Runs中最新一次成功的build,点开详情也没,在Stages中找到windows,在弹出的详情页面中,我们可以在右边黑色日志窗口的最后一行文字中看到类似`1 artifact produced`的提示。点击artifact进入Artifacts的页面,选择合适的版本,这里是sqlite-windows-x64,然后点击右方的下载按钮即可下载打包好的压缩包。

    在解压所有压缩包以后,Library目录应该如下所示:

    /Library
      ┝ icu-64
      │   ┕ usr/...
      ├ libcurl-development
      │   ┕ usr/...
      ├ libxml2-development
      │   ┕ usr/...
      ├ sqlite-3.30.0
      │   ┕ usr/...
      ┕ zlib-1.2.11
          ┕ usr/...

    需要注意,如果您下载的库的版本号或者名字与上图不符,请以实际下载的为准,并在后面的脚本中修改对应的路径以匹配实际的版本号。

    在完成依赖库下载以后,按照官方文档的指示将模块正确设置:

    mklink "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap" D:\Swift\toolchain\swift\stdlib\public\Platform\ucrt.modulemap
    mklink "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap" D:\Swift\toolchain\swift\stdlib\public\Platform\winsdk.modulemap
    mklink "%VCToolsInstallDir%\include\module.modulemap" D:\Swift\toolchain\swift\stdlib\public\Platform\visualc.modulemap
    mklink "%VCToolsInstallDir%\include\visualc.apinotes" D:\Swift\toolchain\swift\stdlib\public\Platform\visualc.apinotes

    编译组件

    首先开始编译LLVM和Swift核心编译器。在确认一切准备都妥当以后,执行以下命令:

    md "D:\Swift\b\toolchain"
    cmake -B "D:\Swift\b\toolchain" ^
      -C D:\Swift\swift-build\cmake\caches\windows-x86_64.cmake ^
      -C D:\Swift\swift-build\cmake\caches\org.compnerd.dt.cmake ^
      -D CMAKE_BUILD_TYPE=Release ^
      -D LLVM_ENABLE_ASSERTIONS=YES ^
      -D LLVM_ENABLE_PROJECTS="clang;clang-tools-extra;cmark;swift;lldb;lld" ^
      -D LLVM_EXTERNAL_PROJECTS="cmark;swift" ^
      -D SWIFT_PATH_TO_LIBDISPATCH_SOURCE=D:\Swift\swift-corelibs-libdispatch ^
      -D LLVM_ENABLE_PDB=YES ^
      -D LLVM_ENABLE_LIBEDIT=NO ^
      -D LLDB_ENABLE_PYTHON=YES ^
      -D SWIFT_WINDOWS_x86_64_ICU_UC_INCLUDE="D:/Swift/Library/icu-64/usr/include" ^
      -D SWIFT_WINDOWS_x86_64_ICU_UC="D:/Swift/Library/icu-64/usr/lib/icuuc64.lib" ^
      -D SWIFT_WINDOWS_x86_64_ICU_I18N_INCLUDE="D:/Swift/Library/icu-64/usr/include" ^
      -D SWIFT_WINDOWS_x86_64_ICU_I18N="D:/Swift/Library/icu-64/usr/lib/icuin64.lib" ^
      -D CMAKE_INSTALL_PREFIX="C:\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain\usr" ^
      -D PYTHON_EXECUTABLE=C:\Python27amd64\python.exe ^
      -D SWIFT_BUILD_DYNAMIC_STDLIB=YES ^
      -D SWIFT_BUILD_DYNAMIC_SDK_OVERLAY=YES ^
      -G Ninja ^
      -S D:\Swift\toolchain\llvm

    其中,PYTHON_EXECUTABLE变量请按照实际情况设置为C:\Python27\python.exe或者C:\Python27amd64\python.exe。

    在CMake执行完毕后,执行以下命令开始编译Swift工具链:

    ninja -C D:\Swift\b\toolchain

    总共需要编译5000多个C++文件,16G内存4核处理器约需2个小时。由于Ninja使用并行编译,这段时间您的电脑基本上是废了,CPU和内存均被占满,请准备好零食瓜子和iPad开始看剧(笑)。

    作者在构建的时候遇到了以下几个错误:

    • MSVC warning C4819: The file contains a character that cannot be represented in the current code page (number). Save the file in Unicode format to prevent data loss.

    出现这个错误基本上是因为您在编译之前没有按照上面的指示设置系统使用UTF-8页面,如果出现该提示,请立即停止编译,完成设置以后,删除之前编译好的文件并且重新开始编译。

    • Linker fatal error:LNK1102 Out of memory

    如果您的内存小于等于16GB,在编译的最后阶段可能会产生这个操作。由于链接lib生成exe的时候平均每一项任务都需要6-7GB的内存,因此如果该错误出现,您需要在Ninja中设置不允许并行编译,避免多个exe一起链接导致内存耗尽:

    ninja -C D:\Swift\b\toolchain -j 1

    在构建完工具链之后,接着构建libdispatch模块

    cmake -B D:\Swift\b\libdispatch ^
     -D CMAKE_BUILD_TYPE=RelWithDebInfo ^
     -D CMAKE_C_COMPILER=D:/Swift/b/toolchain/bin/clang-cl.exe ^
     -D CMAKE_CXX_COMPILER=D:/Swift/b/toolchain/bin/clang-cl.exe ^
     -D CMAKE_Swift_COMPILER=D:/Swift/b/toolchain/bin/swiftc.exe ^
     -D ENABLE_SWIFT=YES ^
     -G Ninja ^
     -S D:\Swift\swift-corelibs-libdispatch

    使用Ninja编译:

    ninja -C D:\Swift\b\libdispatch

    然后是foundation模块

    cmake -B D:\Swift\b\foundation -D CMAKE_BUILD_TYPE=RelWithDebInfo ^
     -D CMAKE_C_COMPILER=D:/Swift/b/toolchain/bin/clang-cl.exe ^
     -D CMAKE_Swift_COMPILER=D:/Swift/b/toolchain/bin/swiftc.exe ^
     -D CURL_LIBRARY="D:/Swift/Library/libcurl-development/usr/lib/libcurl.lib" ^
     -D CURL_INCLUDE_DIR="D:/Swift/Library/libcurl-development/usr/include" ^
     -D ICU_ROOT="D:/Swift/Library/icu-64" ^
     -D ICU_INCLUDE_DIR=D:/Swift/Library/icu-64/usr/include ^
     -D LIBXML2_LIBRARY="D:/Swift/Library/libxml2-development/usr/lib/libxml2s.lib" ^
     -D LIBXML2_INCLUDE_DIR="D:/Swift/Library/libxml2-development/usr/include/libxml2" ^
     -D ENABLE_TESTING=NO ^
     -D dispatch_DIR=D:/Swift/b/libdispatch/cmake/modules ^
     -G Ninja ^
     -S D:\Swift\swift-corelibs-foundation

    编译:

    ninja -C D:\Swift\b\foundation

    在Foundation模块编译的时候会提示未解决的外部引用,这是一个已知问题,目前我的解决办法是在D:\Swift\b\foundation\build.ninja的Foundation.dll的构建规则中,在LINK_LIBRARIES项中手动添加D:\Swift\Library\icu-64\usr\lib\icuin64.lib D:\Swift\Library\icu-64\usr\lib\icuuc64.lib两项,这只是一个quick-and-dirty的方法。

    编译完成以后添加path:

    path D:\Swift\b\foundation\Foundation;%PATH%

    然后是xctest模块:

    cmake -B D:\Swift\b\xctest ^
     -D CMAKE_BUILD_TYPE=RelWithDebInfo ^
     -D CMAKE_Swift_COMPILER=D:/Swift/b/toolchain/bin/swiftc.exe ^
     -D dispatch_DIR=D:\Swift\b\dispatch\cmake\modules ^
     -D Foundation_DIR=D:\Swift\b\foundation\cmake\modules ^
     -D LIT_COMMAND=D:\Swift\toolchain\llvm\utils\lit\lit.py ^
     -D PYTHON_EXECUTABLE=C:\Python27amd64\python.exe ^
     -G Ninja -S D:\Swift\swift-corelibs-xctest

    编译:

    ninja -C D:\Swift\b\xctest

    完事以后添加path:

    path D:\Swift\b\xctest;%PATH%

    编译llbuild:

    set AR=llvm-ar
    cmake -B D:\Swift\b\llbuild ^
     -D CMAKE_BUILD_TYPE=RelWithDebInfo ^
     -D CMAKE_CXX_COMPILER=cl ^
     -D CMAKE_Swift_COMPILER=D:/Swift/b/toolchain/bin/swiftc.exe ^
     -D Foundation_DIR=D:/Swift/b/foundation/cmake/modules ^
     -D dispatch_DIR=D:/Swift/b/libdispatch/cmake/modules ^
     -D SQLite3_INCLUDE_DIR=D:\Swift\Library\sqlite-3.28.0\usr\include ^
     -D SQLite3_LIBRARY=D:\Swift\Library\sqlite-3.28.0\usr\lib\sqlite3.lib ^
     -D LLBUILD_SUPPORT_BINDINGS=Swift -G Ninja -S D:\Swift\llbuild
    ninja -C D:\Swift\b\llbuild

    此处记得检查sqlite库的目录是否正确。

    编译swift-tools-core-support:

    cmake -B D:\Swift\b\tsc ^
     -D CMAKE_BUILD_TYPE=RelWithDebInfo ^
     -D CMAKE_C_COMPILER=cl ^
     -D CMAKE_Swift_COMPILER=D:/Swift/b/toolchain/bin/swiftc.exe ^
     -D Foundation_DIR=D:/Swift/b/foundation/cmake/modules ^
     -D dispatch_DIR=D:/Swift/b/libdispatch/cmake/modules ^
     -G Ninja -S D:\Swift\swift-tools-support-core
    ninja -C D:\Swift\b\tsc

    编译swift-package-manager:

    cmake -B D:\Swift\b\spm ^
     -D CMAKE_BUILD_TYPE=RelWithDebInfo ^
     -D CMAKE_C_COMPILER=D:/Swift/b/toolchain/bin/clang-cl.exe ^
     -D CMAKE_CXX_COMPILER=D:/Swift/b/toolchain/bin/clang-cl.exe ^
     -D CMAKE_Swift_COMPILER=D:/Swift/b/toolchain/bin/swiftc.exe ^
     -D USE_VENDORED_TSC=YES ^
     -D Foundation_DIR=D:/Swift/b/foundation/cmake/modules ^
     -D dispatch_DIR=D:/Swift/b/libdispatch/cmake/modules ^
     -D LLBuild_DIR=D:/Swift/b/llbuild/cmake/modules ^
     -D TSC_DIR=D:/Swift/b/tsc/cmake/modules ^
     -G Ninja -S D:\Swift\swiftpm
    ninja -C D:\Swift\b\spm

    以上所有操作成功后,恭喜你,已经获得了在Windows上可用的Swift版本了。

    由于经过实际测试,官方教程里的默认install方法无效,因此我们可以通过将以下路径添加到PATH中来手动安装:

    D:\Swift\Library\icu-64\usr\bin
    D:\Swift\Library\zlib-1.2.11\usr\bin
    D:\Swift\b\toolchain\bin
    D:\Swift\b\libdispatch
    D:\Swift\b\llbuild\bin
    D:\Swift\b\foundation\Sources\Foundation
    D:\Swift\b\foundation\Sources\FoundationXML
    D:\Swift\b\foundation\Sources\FoundationNetworking
    D:\Swift\b\spm\bin
    D:\Swift\b\tsc\bin

    写一个脚本测试一下吧

    随便找个位置建立一个文件,我们叫它test.swift好了。打开这个文件,输入最简单代码:

    var myString = "Hello World!";
    print(myString)

    把D:\Swift\b\toolchain\bin添加到PATH,然后打开控制台,编译文件:

    swiftc test.swift -o test.exe

    swiftc稍微有点水土不服,所以必须要在输出文件中加上.exe后缀,否则不会自动添加。

    在控制台里运行,就可以看到输出的Hello World!了

    更多相关内容
  • Windows下编写swift程序 一、安装VScode 1、官网下载最新版 VScode下载地址 2、将vscode修改为中文环境 1)使用快捷键【Ctrl+Shift+P】(!或者F1)弹出查找命令框;输入language,找到Configure Display Language,...

    Windows下编写swift程序

    一、安装VScode

    1、官网下载最新版

    VScode下载地址

    2、将vscode修改为中文环境

    1)使用快捷键【Ctrl+Shift+P】(!或者F1)弹出查找命令框;输入language,找到Configure Display Language,点击;选择Install additional languages,如下图所示:在这里插入图片描述
    2)下载安装中文语言包选择Chinese(simplified)Language,点击install,然后自动重启,如下图:

    中文(简体)
    在这里插入图片描述
    这样我们的VScode就准备完毕啦~☺
    接下来就是另一个宝贝啦,敬请期待~

    二、安装swift语言插件

    1、点击左侧工具栏的extensions(!或者使用快捷键【Ctrl+Shift+X】),输入swift,安装Swift Language 0.2.0,如下图:

    在这里插入图片描述
    哇咔咔~~我们走到这步,swift语言配置就完成啦,接下来就带领你们去实现swift语言输出

    步骤一:

    在桌面新建一个文件夹,随意命名(在这里我命名为swift)。然后在VScode里打开文件夹,如下图:在这里插入图片描述

    步骤二:

    然后点击新建文件命名后缀为.swift,这里命名helloworld.swift

    在这里插入图片描述

    步骤三:

    啦啦啦~~ 然后就开始写代码啦!

    我们这里用最简单的例子来补充,根据swift语言输出格式,为print(“Hello world”),写入右侧输入框,然后保存,如下图:

    在这里插入图片描述

    步骤四:

    保存完以后,因我们用的是Windows,所以得下载一个可以运行swift文件适用于Windows的软件——Swift for Windows

    Swift for Windows下载地址
    在这里插入图片描述
    在这里插入图片描述
    耐心哦~~❤,马上你的成就感就会爆棚!!!☺

    步骤五:

    ------下载完后打开,界面如下:

    在这里插入图片描述

    ------接下来,我们点击Select File,选择我们刚才准备好的.swift文件。

    在这里插入图片描述

    ------再点击Compile(成功在即~)…

    在这里插入图片描述

    ------出来Logs框成功提示后,点击Run,完成最后的运行工作。如下:在这里插入图片描述

    !!!恭喜你~~ 我们就完成了在Windows下用VScode编写swift程序,非常感谢小伙伴们的耐心,希望对你们有所帮助❤❤❤!!!

    展开全文
  • Windows系统下, 用 VScode和SwiftForWindows 编写和运行Swift代码, 开发还得用XCODE.
  • 桥接到WinRT(Windows运行时)到SwiftSwift / WinRT桥接到WinRT(Windows Runtime)到SwiftWindows运行时的示例基本同步调用:import WinRT do {RoInitialize()// ...
  • Windows下编写swift程序

    千次阅读 2020-03-03 18:45:47
    Windows下编写swift程序 1.首先介绍一下本次使用到的软件Visual Studio Code和 Swift for Windows(见图1)。 Visual Studio Code(以下简称vscode)是一个轻量且强大的跨平台开源代码编辑器(IDE),支持Windows...

    在Windows下编写swift程序

    1.首先介绍一下本次使用到的软件Visual Studio Code和 Swift for Windows(见图1)。
    Visual Studio Code(以下简称vscode)是一个轻量且强大的跨平台开源代码编辑器(IDE),支持Windows, OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。Swift for Windows(以下简称swift)是一个免费开源的工具,提供了在 Windows 下编译和运行 Swift 语言程序的支持。
    图1
    (图1)
    2.打开vscode,为更方便使用,先把语言调成中文。通过快捷键Ctrl+Shit+P在弹出的命令窗口输入“configure language”,回车,会出现语言下载页面,选择中文(简体),点击install,此时会提示重启软件,选择是,语言就调好了。然后单击左侧最下方的图标,进入插件搜索页面,在搜索框内输入Swift Language,点击install,然后重启软件,swift语言就安装好了,开发环境配置完成。

    3.在D盘新建一个文件夹,最好使用英文命名。然后进入vscode,点击左上角文件—新建文件,在右侧编辑器中输入代码“print(1+2)”,然后以Swif类型保存到刚刚新建的文件夹中。如图2:
    在这里插入图片描述
    (图2)
    4.打开swift程序,单击Select File(选择文件),选择刚刚保存在文件夹中的hello.swift,然后点击左侧的Compile,如图3所示出现“Successfully compiled”即为成功;
    在这里插入图片描述
    (图3)
    然后点击右侧的Run,运行结果见图4。

    在这里插入图片描述
    (图4)

    展开全文
  • Swift / Win32旨在提供一种MVC模型,用于在Windows上编写应用程序。 它提供了Win32 API的Swift友好包装,就像MFC为C ++所做的一样。 Swift / Win32 Swift / Win32旨在提供一种MVC模型,用于在Windows上编写应用程序...
  • 此工具有助于自动执行这些任务,从而更轻松地在 Windows 上使用 Swift 进行开发。 使用此工具,您不再需要担心获得正确的shell或环境变量 使用此工具部署模块映射要方便得多,因为它使用 Windows Shell 基础结构将...
  • Minesweeper该项目是Windows游戏Minesweeper的副本。 关于Minesweeper是一个完全在Swift中构建的iOS&Mac Catalyst应用程序。 逻辑是在Composable Architecture中构建的,而UI是在SwiftUI中构建的。 该项目显示了...
  • 源码JSONExport,JSONExport是一款用Swift编写的桌面端应用程序,可以将任何有效的JSON对象转换为它所支持的语言的类。当你键入或者粘贴JSON时,JSONExport将会对所生成的内容进行预览,生成的内容包括构造函数、将...
  • 要求PythonKit需要Swift 5或更高版本,并且已经在macOS,Linux和Windows上进行了测试。 用法像这样的一些Python代码:import sys print(f“ Python {sys.version_info.major}。{sys.version_info.minor}”)print...
  • swiftui swift-UI 中文版

    2020-11-30 16:34:48
    Get started quickly with SwiftUI and Combine reactive programming framework through practice, and master the next generation client UI development technology At WWDC 2019, Apple announced the ...
  • VSCode配置Swift 开发环境

    千次阅读 2022-04-04 18:17:40
    VSCode配置Swift debug环境 `swift`初始化 项目LSP插件Debugger引用 用Swift写小功能,或者仅仅测试一下语法,然后每次打开 xcode 时间太久,我就想能不能在 vscode 中进行 swift debug 或者学习 从网上查找了一些...

    用Swift写小功能,或者仅仅测试一下语法,然后每次打开 xcode 时间太久,我就想能不能在 vscode 中进行 swift debug 或者学习

    从网上查找了一些资料,却同质化严重,这里做个小结。

    swift初始化 项目

    mkdir firstDemo
    cd firstDemo
    swift package init --type executable
    

    此时你可以通过 命令行 对运行项目
    swift build -> 编译程序

    swift run -> 运行程序

    这个纯手写,没有提示,且无法断点调试,无法满足debug需求

    LSP

    由于是用vscode 集成新语言不能没有 LSP。swfit LSP 我找到了两个可用的,但 目前swfit 有一个官方维护的 LSP SourceKit LSP ,而且它是 MAC 电脑自带的 LSP

    在电脑运行sourcekit-lsp 命令 查看 电脑是否存在sourcekit-lsp,如果发生错误请先安装 XCode。

    运行 which sourcekit-lsp 记录地址,下面需要配置

    插件

    在 vscode 插件市场搜索 swift ,安装作者为 Swift Server Work Group 的插件。
    P3EMm6ZdUaw8lX5

    为 swift 插件配置属性

    "sourcekit-lsp.serverPath": "/usr/bin/sourcekit-lsp",
    "sourcekit-lsp.trace.server": "messages"
    

    或者是可视化配置
    QohDp2yY5kTfv3J
    此时可以发现 vscode 有提示了
    在这里插入图片描述

    Debugger

    这个是比较模糊的点
    由于 swift 使用了 llvm 当做语言后段,可以使用 lldb 命令调试,但如果直接使用 lldb 调试 会发现 本地变量没有名称,多试使用 p 、 po 、frame v 指令会说 本 lldb 没有 swift 插件。但 XCode 却能使用 lldb 进行调试,最后通过forums.swift.org技术贴找到了 XCode 使用的 lldb 位置/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB

    为了避免跟其他冲突 不建议把一下代码 放到 vscode 全局配置文件
    推荐配置到工作区 ,防止 污染 CodeLLDB 插件
    也就是再工作目录下,.vscode/setting.json 添加

    "lldb.library":"/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB"
    

    此外附一份 launch.json

    {
        "configurations": [
            {
                "command": "swift run",
                "name": "run swift",
                "request": "launch",
                "type": "node-terminal"
            },
            {
                "type": "lldb",
                "request": "launch",
                "name": "Debug firstDemo",
                "program": "${workspaceFolder:firstDemo}/.build/debug/firstDemo",
                "args": [],
                "cwd": "${workspaceFolder:firstDemo}",
                "preLaunchTask": "swift: Build Debug firstDemo"
            },
            {
                "type": "lldb",
                "request": "launch",
                "name": "Release firstDemo",
                "program": "${workspaceFolder:firstDemo}/.build/release/firstDemo",
                "args": [],
                "cwd": "${workspaceFolder:firstDemo}",
                "preLaunchTask": "swift: Build Release firstDemo"
            },
            {
                "type": "lldb",
                "request": "launch",
                "name": "Test firstDemo",
                "program": "/Applications/Xcode.app/Contents/Developer/usr/bin/xctest",
                "args": [
                    ".build/debug/firstDemoPackageTests.xctest"
                ],
                "cwd": "${workspaceFolder:firstDemo}",
                "preLaunchTask": "swift: Build All"
            }
        ]
    }
    

    引用

    SourceKit LSP

    vscode plugin

    Need help with lldb-vscode plugin

    展开全文
  • Swift可以在Windows系统上写程序了

    千次阅读 2020-09-23 10:13:27
    Swift引入WindowsSwift移植到Windows并不只是简单地移植编译器,而是要确保完整的生态系统在平台上可用。这包括编译器,标准库和核心库(调度程序,基础,XCTest)。这些库是使开发人员能够轻松编写功能强大的...
  • swift-5.7-RELEASE-windows10

    2022-09-13 09:31:31
    功能:在windows环境下学习SWIFT的工具,熟悉swift并可以编译运行 建议:如果开发的话,建议还是用mac os xcode. Swift for Windows" 是一个免费开源的工具,提供了在 Windows 下编译和运行 Swift 语言程序的支持
  • .pngData()) } 详细链接:Swift - 使用PhotoKit获取照片1(获取所有照片缩略图、原图及其信息) 14.相册视频移出 let option = PHVideoRequestOptions() option.version = PHVideoRequestOptionsVersion.current ...
  • 萧箫 发自 凹非寺量子位 报道 | 公众号 QbitAI最近,Swift发行了5.3版本,这意味着它可以直接在Windows 10上使用了。由于Swift是苹果开发的一门编程语言,能在U...
  • WIN10下的IOS开发,基于Swift语言

    千次阅读 2019-04-09 13:17:00
    1.安装虚拟机和macos系统: ... ※务必在安装完系统后安装VMtools,方便将文件直接拖入虚拟系统中(虚拟机的网络条件不太好)。...Swift语言的语法学习可参见b站,MIT课程等。 4.完成效果概览:
  • 简而言之,它允许您运行Windows,Androi UTM。可以发明一台可用于计算任何可计算序列的机器。 -艾伦·图灵(Alan Turing),1936年,UTM是iOS的全功能虚拟机主机。 简而言之,它允许您在iPhone和iPad上运行Windows,...
  • xcschemes,Runner.xcscheme,Runner.xcworkspace,contents.xcworkspacedata,Podfile,.gitignore,pubspec.lock,pubspec.yaml,README.md,windows,main.cpp,FlutterPlugins.props,.gitignore,resource.h,Runner.vcxproj,...
  • iOS的经典Windows 95风格UI组件集合
  • Windows下用VScode写swift

    千次阅读 2020-03-11 16:07:01
    首先需要visual studio Code + swift for Windows swift for windows 可以去官网下: 官网连接 VScode下载swift插件 用VSCode,新建一个hello.swift文件 写好后保存,用swift for Windows编译运行 先点compile再点...
  • Swift for Windows" 是一个免费开源的工具,提供了在 Windows 下编译和运行 Swift 语言程序的支持
  • 介绍在Ubuntu平台搭建Swift开发环境; 介绍Swift脚本解析器swift的使用; 介绍swift编译器swiftc的使用;1.序言周三12月4日凌晨1点多看到苹果正式开源了Swift,国外各大媒体资讯动作超级快。我也兴奋的起来看了一遍...
  • 该项目的主要目标是提供一种兼容,可靠和高效的实现,可在macOS 10.15和iOS 13之前的Apple操作系统以及Linux和Windows上使用。 该项目处于早期开发阶段。 安装OpenCombine包含三个公共目标:OpenCombine,...
  • 在线Swift Playground,采用Swift实现
  • acextract-master.zip,acextract-master,.gitignore,acextractTests,acextractTests-Bridging-Header.h,TemplateRenderingTests.swift,GraphicalClassTests.swift,MemoryClassTests.swift,data,assets_iphone.car,...
  • Swift:Swift编程语言

    2021-03-13 19:41:08
    苹果公司首次出现-2014年6月2日在Windows中安装Swift 转到swiftforwindows.github.io,下载Swift并安装并运行该程序创建具有以下内容的名为“ demo.swift”的文本文件import Swiftprint("Hello World!")在Swift程序...
  • Swift 开发团队表示,其即将推出的5.3 版本的目标包括“增加对 Windows 和其他 Linux 发行版的支持”。他们提到 Swift 5.3 将包括重大的质量和性能增强。更重要的是,此版本还将扩展 Swift 可用和受支持的平台的数量...
  • 最小和模块化的库多平台支持(Windows / macOS / iOS / Android / Linux)多体系结构支持(X86-64,ARM,ARM64)Dobby Dobby一个轻量级,多平台,多体系结构的利用钩子框架。 最小的模块化库多平台支持(Windows / ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,550
精华内容 3,820
关键字:

windows开发swift