杏z学習帳

Swift、Unityなどを中心に節操なく手を出してますまる

SwiftPMで作ったものがMintで実行できない...(2018/08/17)

[Swift]SwiftPMで作ったものがMintで実行できない...

ざっくりまとめ。

です。

環境

問題

以前自分のCLIアプリをつくったのだけれど、ふと実行してみたらなんとエラーで実行できない事態に陥ってるのに気づきました。

$ mint run anzfactory/anz

と実行すると...

Executable product not found

とメッセージがでてしまって実行できない。
公開したときはまちがいなく実行できていたのだけれど...🤔

調査

以前は実行できていた...
さらに、clone して swift build とやると問題なくビルドはされる。
このことから、Mint がなにか変わったんだろうか?と当たりをつけて、
とりあえずなにか issue が上がっていないか確認してみました。
するときになるものが

言っていることは僕の事象とちがうのだけれど、きになったのは概要にかかれている Package.swift の書き方がきになりました。

products というものが書かれている。
その中身は .executable(name:,targets:) というもの。
僕の Package.swift にはそのような記述はない。
言われているメッセージ的にもこれなのでは!?🤔

解決

ということで、自分の Package.swift にも追記してみました。

これで再度実行してみると、無事出来ました〜! 🎉
ちなみに products の記述がなくても実行できていた Mint のバージョンは v0.10.2 です。
で、今の最新は v0.11.2 です。(多分 v0.11.x で変わったのかな。。と)

SwiftPM でCLIアプリ作る時なんかは

$ swift package init --type executable

と実行してプロジェクトを作るかと思いますが、現時点ではこれでつくっても、Package.swift にはこの protucts の部分が記載されていないので、
Mint をつかって公開しようと思っている方は自分で書いときましょう〜! 👍

参考

Mint
Swift Package Manager のメモ - mike-neckのブログ