Guild icon
swift-developers-japan
main / carthage
Avatar
話題が多いし建てました
Avatar
わいわいCarthage
10:40 AM
Motivation & Context I want to use carthage-verify on workflows to skip duplicated builds. However, current .Package.version file doesn't contains Xcode version information. So we can't...
Avatar
これって --cache-builds オプション使うのとは想定シチュエーションが違う感じです?
Avatar
cache-build みたけど、そこまで賢くやってくれなさそうですね
7:49 AM
A simple, decentralized dependency manager for Cocoa - Carthage/Carthage
7:49 AM
ここでチェックしかしてない
7:50 AM
[--cache-builds] use cached builds when possible
7:50 AM
要はCarhage/Builds以下に残ってたらビルドしないぐらいのことしかしてないっぽい
Avatar
--cache-buildsはbootstrapとかupdateなどのビルドする系のコマンドで、必要なければビルドしない、というためのものですが、verifyはそもそもビルドする必要があるかどうかを判定するだけのコマンドで、Xcodeのビルドフェーズなどに組み込む事を想定しています。前者をビルドフェーズに入れてしまうと、キャッシュが有効ではないと判断されると、突然ライブラリのビルドも始まってしまってめちゃくちゃ、という感じですかね。
Avatar
Please update to the latest Carthage version: 0.31.0. You currently are on 0.30.1 ↑と出るのですが↓です・・・。まだ brew の方が更新されてない? $ brew update Already up-to-date. $ brew upgrade carthage Error: carthage 0.30.1 already installed
Avatar
carthage update がなんか終わらないと思ったらメモリ 9.32 GB も使って暴走してた😱 一度止めてもう一回実行したらうまくいった。
Avatar
はい、homebrewの方がbottleのビルドに失敗していてまだ更新されていません
🙏 1
4:19 AM
Have you followed the guidelines for contributing? Have you checked that there aren't other open pull requests for the same formula update/change? Have you built your formula locally with bre...
Avatar
norio_nomura 9/28/2018 4:29 AM
Carthageのformulaはまだxcodebuildなのか。
Avatar
でした。ちょうどいい機会なのでSwiftPMビルドの方にするのはどうかと提案してみたところですね。
👍 1
Avatar
元々dynamic frameworkとして提供されてるライブラリをstatic libraryとして自動でビルドするような機能についてcarthage内でいま実装予定とか方針とか決まっているのでしょうか
Avatar
omochimetaru 1/15/2019 1:44 AM
A simple, decentralized dependency manager for Cocoa - Carthage/Carthage
1:44 AM
Carthageそれ自体のテストコードの実行方法について誰か知りませんか?
1:45 AM
$ swift test$ swift package generate-xcodeproj してみたんですけど、
1:45 AM
class ArchiveSpec: QuickSpec { override func spec() { describe("unzipping") { let archiveURL = Bundle(for: type(of: self)).url(forResource: "CartfilePrivateOnly", withExtension: "zip")!
1:45 AM
↑ここのBundleがnilで落ちてしまって、
1:46 AM
testing bundleに正しくリソースが埋め込めてないみたいなんですが
1:46 AM
CarthageKitTestsターゲットの構成を見ても実際リソース埋め込みしてないように見えるし、
1:46 AM
何がなんだかわからず。
1:47 AM
Carthageユーザ向けのマニュアルじゃなくてCarthage開発者向けのマニュアルがどっかにないかと思って探してるんですがそれもまだ見つけられてません。 (edited)
1:49 AM
A simple, decentralized dependency manager for Cocoa - Carthage/Carthage
Avatar
Kishikawa Katsumi 1/15/2019 1:51 AM
CarthageはTravis CIでテストされてるのでそれを見ると良さそう。でmake testなので Makefileのこの辺がそれなんじゃないでしょうか? https://github.com/Carthage/Carthage/blob/master/Makefile#L32-L38
A simple, decentralized dependency manager for Cocoa - Carthage/Carthage
Avatar
omochimetaru 1/15/2019 1:52 AM
ああなるほど、CIの入力からたどっていけばよかったのか・・・
1:53 AM
ありがとうございます、テストがちゃんと動き始めました。
👍 1
Avatar
SwiftPMベースにしたのでもともとあったxcodeprojは削除されたんですが、その時のテストターゲットではResourcesを指定したり、build phaseでスクリプトを走らせてbundleに埋め込んでました。 (edited)
2:38 PM
SwiftPMにはまだリソース埋め込みの機構がないわけですが、Darwin上ではXcode同様にxctestのバンドルは出来上がるので、swift build --build-testsでテストターゲットのビルドだけして、リソースを埋め込んでからswift test --skip-buildingでビルド済みのテストターゲットをテストする、という回避策をしています。 (edited)
2:43 PM
Avatar
テストバンドルがデバイスへインストールされる等は無いから、ソースコードが置かれたファイルシステムにテストがアクセスできることを前提に、テスト内の#fileからfixturesのパスを作る様に変えてしまった方が良さげ。 (edited)
Avatar
はい、SwiftPMが前提になったので要調整だなと思っています。ただfixturesはzipでコミットされてるのでどこかで解凍しておく必要があるんですよね。
Avatar
carthageの場合はiphoneで動く必要は無いからそれもありなのか。>ソースコードのファイルシステム
Avatar
ソースツリー配下には解凍したくないのと、どのタイミングで解凍するか。swift testコマンドだけで、テスト実行前に何か処理走らせられるか。ってところがあるかなと。(今はmake testで準備している) (edited)
Avatar
norio_nomura 1/17/2019 1:03 AM
SourceKittenは実際にそうしてます。>ソースコードのファイルシステム
1:04 AM
unzipとかもテスト内でしてしまえば良さげ。
Avatar
omochimetaru 1/17/2019 1:04 AM
ソースツリー配下には解凍したくない
gitignoreさえされてれば実害無い気がしますけど、そうでもないかな
Avatar
もともとテストバンドル内に隔離されていたので、なんか漏れ出すのが気持ち悪いんですよねー(すごい感覚的なんですけど)
Avatar
norio_nomura 1/17/2019 1:07 AM
テンポラリディレクトリ内に解凍して、そこでテストするとか。
Avatar
omochimetaru 1/17/2019 1:09 AM
その感覚はわかります、なんとなくサンドボックス化されてないとテストが不安定になりそう
1:10 AM
でも実際にこのテストケースを調べた時は
1:10 AM
手元でzipを解答して中身をチェックする手間があったから
1:10 AM
もしソースツリー上で展開されてたら、テスト自体のデバッグは楽になるメリットもあるなと思った
Avatar
norio_nomura 1/17/2019 1:11 AM
jazzyとか、fixtures相当がgit submoduleにしてあったりしますね。
1:12 AM
ソースコードのコミットと、テストターゲットで使われる実際のプロジェクトのコミットを混ぜない為に。 (edited)
1:14 AM
それだと、デバッグ時のファイルシステム上では普通に見られるから「テスト自体のデバッグは楽になるメリット」も受けられる。
Avatar
norio_nomura 3/6/2019 1:07 PM
Carthageのリポジトリって、もうXcode Projectを含んでいないのか。
Avatar
SwiftPMのproductを使うようになった関係って感じですね
2:35 PM
I also ignored the Xcode project file. Maybe this is not needed and then I can remove it.
2:35 PM
CommandantをCarthageで使ってるユーザーを考えるXcodeプロジェクトは消せないですね
Avatar
norio_nomura 3/6/2019 11:12 PM
そう、それ。Xcodeプロジェクトを積極的に削除したくなる動機があるのかが気になりました。
Avatar
Watch Extension内でcarthageのライブラリを使う場合に関して質問させてください iOSアプリ内でcarthageのライブラリを使うときはアプリケーションターゲットのBuild Phaseでcopy-frameworksを行うのは良いのですが、Watch Extension内でライブラリを使う場合、Watch用のFrameworkもアプリケーションターゲットでcopy-frameworksしちゃっていいんでしょうか? それともWatch ExtensionのBuild Phaseで個別にやるべきなんでしょうか? (edited)
4:04 PM
今はWatch ExtensionのBuild Phaseに入れてるのですが、ライブラリ追加した途端にWatchアプリの転送がやたら遅くなったので、そのやり方が正しいかいろいろ調べてるのですが、明確にどこで行うのが適切か判断する資料が見つからず困ってます (edited)
Avatar
Kishikawa Katsumi 3/13/2019 11:31 AM
@kuroruri Watchアプリケーションは本体アプリとは別の場所で動くし、Watch用のバイナリは本体アプリとは互換性がないので、Watch用にビルドしたフレームワークをWatch Appにコピーする、なので現状やられてる方法で正しいです。 転送に時間がかかるようになったのは単純にフレームワークを追加でコピーするぶんの時間が余計にかかるようになった、からだと思われます。
👍 1
Avatar
@Kishikawa Katsumi ありがとうございますー 合っていて安心しました
Avatar
Xcode 12ではiOSデバイス向けとApple Silicon Macで動くiPhone Simulator向けのどちらにもarm64が含まれるから、carthageがlipoでフレームワークを結合する時エラーになるのね。 https://github.com/Carthage/Carthage/issues/3019
carthage install method: [ ] .pkg, [x] homebrew, [x] source which carthage: /usr/local/bin/carthage carthage version: 0.35.0 xcodebuild -version: 12A8169g Are you using --no-build? No Are you using...
Avatar
xcframeworkの出番?
Avatar
ついにその問題が出たかw
12:25 PM
アーキテクチャだけでiPhone/シミュレータを区別するの、アーキテクチャがバラバラだからいいけど、駄目じゃね?って数年前から思ってた・・・ (edited)
12:26 PM
そっか、シミュレーターがarmになるほうで壊れるのか
Avatar
じゃあcarthage今使えないの…
Avatar
arm mac上の作業時だけじゃ?
Avatar
なるほど
Avatar
現行Macでもcarthage buildするとエラーになります。
Avatar
そうなの・・
Avatar
norio_nomura 10/8/2020 1:00 PM
Simulator向けビルドにarmを含めない様にする回避方法がそのissueに書かれてる。 https://github.com/Carthage/Carthage/issues/3019#issuecomment-665136323
carthage install method: [ ] .pkg, [x] homebrew, [x] source which carthage: /usr/local/bin/carthage carthage version: 0.35.0 xcodebuild -version: 12A8169g Are you using --no-build? No Are you using...
1:02 PM
この回避方法を使うと、多分Apple Silicon Mac上のシミュレータで動かないんじゃないかな。
Avatar
今 SwiftPM じゃなくて Carthage を使いたいときってどういうケースがありますか?
Avatar
Kishikawa Katsumi 10/8/2020 1:51 PM
SwiftPMが使えないケースですね。SwiftPMは配布側の対応が必要なので。
1:51 PM
で、だいたい2年くらい前にCocoaPodsからCarthageへ、、、というのをすましているプロジェクトが多い感じ。 (edited)
Avatar
Xcode の framework プロジェクトにはなってるけど Swift Package になってない場合? (edited)
Avatar
Kishikawa Katsumi 10/8/2020 1:52 PM
そうですね。ちょっと前までのFirebaseとか
1:52 PM
あと多くのVendored Framework
1:52 PM
まあVendored Frameworkはたぶん上記の問題は関係ないです。
1:53 PM
そういう意味でいうとFirebaseもCarthageで入れる場合はバイナリダウンロードだから関係ないな。 (edited)
Avatar
Kishikawa Katsumi 10/8/2020 1:55 PM
まあCarthageはSwiftPMに置き換えられていくと思います。
Avatar
CoreML の .mlmodel とかは多分↑を使ってもまだダメなんですよね。
Avatar
Kishikawa Katsumi 10/8/2020 1:55 PM
ローカルとCIのビルドが遅いとかはありますけどね。
1:56 PM
.mlmodelはただのリソースじゃなくてなんか決まりがあるのですか?
Avatar
型が自動生成されるんですけど、そこが SwiftPM じゃうまく動かなさそうな。
1:58 PM
Swift 5.3 になってから実験したわけじゃないですが、前できないか考えてたときに 5.3 になっても難しそうだなと思いました。
Avatar
Kishikawa Katsumi 10/8/2020 1:59 PM
あー、CoreDataのやつみたいにXcodeがうまくやってくれる系のやつですかね。
Avatar
ですです。
Avatar
Kishikawa Katsumi 10/8/2020 2:01 PM
使う側で一手間って感じになるのかな。インストールしたら~.bundleの~.mlmodelを〜〜に置いてください、みたいな。
Avatar
mlmodel ラップしたライブラリって結構需要あると思うんですが、それができなくて辛いのと、 Carthage だとできそうだなと。
Exported 90 message(s)
Timezone: UTC+0