Alice 1: 初始化一个 Swift 框架

Xcode11 终于内置了 swift package manager 支持——虽然功能还很简陋。

作为一个纯 swift 项目,Alice 将完全使用 spm 管理。当然,CocoaPods 以及 Carthage 的发布还是会有的。😉

本篇就简单记录一下 Alice 的初始化步骤。难度系数:0,可以不看。🤦‍♂️

init

使用 spm 初始化一个 swift 项目非常简单,只需要在终端运行 swift package init

mkdir Alice
cd Alice
swift package init

接下来,运行open Package.swift,Xcode11 将自动打开项目。

搞定!🍻

Package.swift

与 package.json 在 js 包里的角色一样,Package.swift 就是 swift 包里的 manifest 文件。

接下来,我要修改一下 Package.swift 里的内容。

除了删除无用的注释外,我在 targets 里添加了 ping,它的依赖是 Alice,又在 products 里添加了 ping,它是 executable,我可以用它来做一些真实世界的展示。

import PackageDescription

let package = Package(
    name: "Alice",
    products: [
        .library(name: "Alice", targets: ["Alice"]),
        .executable(name: "ping", targets: ["ping"])
    ],
    dependencies: [
    ],
    targets: [
        .target(name: "Alice", dependencies: []),
        .target(name: "ping", dependencies: ["Alice"]),
        .testTarget(name: "AliceTests", dependencies: ["Alice"]),
    ]
)

对应的,也要在 /sources 下创建 ping/main.swift

这样,Alice 的骨骼就搭建好了。演示一下:

/sources/Alice/Alice.swift 里加:

public let version = "0.0.1"

/sources/ping/main.swift 里加:

import Alice

print(Alice.version)

运行——输出:

0.0.1
Program ended with exit code: 0

非常棒!

ci

ci 已经是现代项目中不可或缺的部分。ci 平台的选择有很多,travis,circle,azure pipeline,还有 github action,等等等等,它们都对开源项目非常友好「免费」。

我这里选择的是 travis,因为——比较熟悉……

在项目的根目录添加 .travis.yml,然后修改它的内容:

language: swift
osx_image: xcode11
script: swift test

我们现在只需要简单的测试。

OK,所有基础工作都已经完成了。


  1. 分享一个 cli 工具:autojump,它可以让你轻松地在终端里跳转目录。以前你可能需要输入 cd /users/username/documents/codes/alice,有了 autojump,你只需要 j alice
  2. 如果你还在使用 Xcode10 的话,你需要 swift package generate-xcodeproj

#swift #http #future #alice #alice-serial

Comments