LoginSignup
5
4

More than 5 years have passed since last update.

Swift Package Manager (SPM) の除外設定

Last updated at Posted at 2016-03-25

Swift Package Manager (SPM) でハマったことを共有します。🍂

なおドキュメントにはバッチリ記載されている内容です。😅

ハマったこと

パッケージに *.swift を含まないフォルダを持たせる場合は Manifest File で除外設定 が必要です。

Tests or any subdirectory can be excluded via Manifest file.

Package.swift — The Manifest File

具体例を挙げます。

  • exclude: ["Documentation"]

パッケージ APIHimotoKit1Documentation フォルダは *.swift を含まないため次のとおり設定します。

Package.swift
import PackageDescription

let package = Package(
    name: "APIHimotoKit",
    dependencies: [
        .Package(url: "https://github.com/JPMartha/APIKit.git",
            Version(2, 0, 0)),
        .Package(url: "https://github.com/JPMartha/Himotoki.git",
            Version(2, 0, 0))
    ],
    exclude: ["Documentation"]
)

もし除外しなかったら…

ビルド時に怒られます🙇

error: NoSources("/.../Documentation")

補足

EARLY DAYS

Swift Package Manager はまだ初期の設計・開発段階です。🚧
下記の Swift.org コミュニティにて議論中で今後仕様が変わる可能性があります。👷🏻

など

今回のテスト環境

  • OS X 10.11.4
  • swift-DEVELOPMENT-SNAPSHOT-2016-03-24-a

今回の依存ライブラリ

  • JPMartha / APIKit forked from ishkawa/APIKit (諸事情で 2.0.0 を作るため Fork)
  • JPMartha / Himotoki forked from ikesyo/Himotoki (同上)

おまけ

2016-03-26 追記: 🚨この方法はなくなりそうな展開になっています。
https://github.com/apple/swift-package-manager/pull/223

本物の APIKitHimotoki はいずれも投稿時点で 2.0.0-beta.2 がプレリリースとして公開されており、すでに Manifest File を配置されています。

もしこれらを指定する場合は次のとおり設定します。(あくまで現状)

Package.swift
dependencies: [
    .Package(url: "https://github.com/ishkawa/APIKit.git",
        Version(2, 0, 0, prereleaseIdentifiers: ["beta", "2"])),
    .Package(url: "https://github.com/ikesyo/Himotoki.git",
        Version(2, 0, 0, prereleaseIdentifiers: ["beta", "2"]))
]

ほかにもありますが長くなるのでこのへんで締めます。💁


  1. 無断で作成した非公式ツールです。🙏 

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4