SwiftPMで作ったものがMintで実行できない...
ざっくりまとめ。
- Mint で作ったCLIアプリが実行できない
- Executable product not found とかいわれる
- Mint のバージョンが怪しい...!?
- Package.swift に products を追記したらイケた!
です。
環境
- SwiftPM v4.1.0
問題
以前自分の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 をつかって公開しようと思っている方は自分で書いときましょう〜! 👍