# Swift quickstart

> Learn how to generate a Swift SDK with Fern. Step-by-step guide to configure generators.yml and create client libraries for your API.

Generate a Swift SDK by following the instructions on this page.

<Info>
  This page assumes that you have:

  * An initialized `fern` folder. See [Set up the `fern`
    folder](/sdks/overview/quickstart).
  * A GitHub repository for your SDK. See [Project Structure](/sdks/overview/project-structure).
</Info>

<Steps>
  ### Pass `fern check`

  Run `fern check` to ensure that your API definition is valid. If there are any errors,
  fix them before proceeding.

  <Note>
    If you're using an OpenAPI Specification, check out all of our
    [supported extensions](/learn/api-definition/openapi/extensions).
  </Note>

  ### Add the SDK generator

  Run the following command to add the Swift SDK generator to `generators.yml`:

  ```bash
  fern add fern-swift-sdk --group swift-sdk
  ```

  <Note>
    `swift-sdk` is the name of the `generators.yml` group that configures your Swift
    SDK's output location and other metadata. You can customize this group name to
    differentiate between multiple SDKs across different languages (e.g.,
    `ruby-sdk`, etc) in your organization.
  </Note>

  This command adds the following `group` to `generators.yml`:

  ```yaml title="generators.yml"
    swift-sdk: # group name
      generators:
        - name: fernapi/fern-swift-sdk
          version: 0.25.4
          output:
            location: local-file-system
            path: ../sdks/swift
  ```

  ### Generate the SDK

  Run the following command to generate your SDK:

  ```bash
  fern generate --group swift-sdk
  ```

  This creates a `sdks` folder in your current directory. The resulting folder structure looks like this:

  <Files>
    <Folder name="fern" comment="created by fern init" />

    <Folder name="sdks" defaultOpen comment="created by fern generate --group swift-sdk">
      <Folder name="swift" defaultOpen>
        <File name="Package.swift" />

        <Folder name="Sources" defaultOpen>
          <File name="YourClient.swift" />

          <Folder name="Schemas" />

          <Folder name="Public" />

          <Folder name="Core" />

          <Folder name="Resources" />
        </Folder>
      </Folder>
    </Folder>
  </Files>
</Steps>