Swift Package Manager (SPM) の除外設定
Swift Package Manager (SPM) でハマったことを共有します。🍂
なおドキュメントにはバッチリ記載されている内容です。😅
ハマったこと
パッケージに *.swift
を含まないフォルダを持たせる場合は Manifest File で除外設定 が必要です。
Tests
or any subdirectory can be excluded via Manifest file.
Package.swift
— The Manifest File
具体例を挙げます。
exclude: ["Documentation"]
パッケージ APIHimotoKit
1 の Documentation
フォルダは *.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 コミュニティにて議論中で今後仕様が変わる可能性があります。👷🏻
-
メーリングリスト
-
GitHub
など
今回のテスト環境
- 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
本物の APIKit と Himotoki はいずれも投稿時点で 2.0.0-beta.2 がプレリリースとして公開されており、すでに Manifest File を配置されています。
もしこれらを指定する場合は次のとおり設定します。(あくまで現状)
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"]))
]
ほかにもありますが長くなるのでこのへんで締めます。💁
-
無断で作成した非公式ツールです。🙏 ↩
Author And Source
この問題について(Swift Package Manager (SPM) の除外設定), 我々は、より多くの情報をここで見つけました https://qiita.com/jpmartha/items/f4c33043d7bb171306ab著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .