59545
<https://github.com/RxSwiftCommunity/RxKeyboard>

のREADMEには、

> With Carthage, RxKeyboard only supports binary installation:

Carthageの場合、バイナリーインストールのみサポートとあります。

Carthageの仕組みをあまり把握していないのですが、

```

    $ carthage update --platform ios --cache-builds --no-use-binaries
    
```

とした場合、  
`--cache-builds`の意味は`ビルド済みのライブラリはスキップ`  
`--no-use-binaries`の意味は`そうでないライブラリはソースからコンパイル`  
と考えました。

ここで疑問なのですが、バイナリーインストールのみサポートとはどういうことなのでしょうか？  
なぜGitHubにソースコードがあるにもかかわらず、バイナリーを私達のローカルマシーンで作り出すことができないのでしょうか？

今回の質問は、どちらかというと`RxKeyboard`の`Carthage`について **ということではなく** 、  
より一般的に **Carthageにおけるソースコードとバイナリーの関係性** について教えていただきたいと考えております。
CC BY-SA 4.0
2019-10-07T12:19:55.747
59535
2019-10-07T23:03:37.910
9008
question
swift ios xcode carthage
Carthageでバイナリーインストールのみサポートということがなぜ起こるのでしょうか？
RxKeyboardのリポジトリにはXcodeプロジェクトファイル（`*.xcodeproj`）が存在しないからです。

CarthageはCocoaPodsやSwift Package Managerと異なり、ビルド設定はXcodeプロジェクトの仕組みをそのまま利用します。  
（CocoaPodsはPodspecの内容からXcodeプロジェクトファイルを生成してビルドするし、Swift Package
Managerは標準ではXcodeプロジェクトファイルを使用しません。）

他のパッケージマネージャと異なり、Carthageは独自のビルドシステムを持たず、主な役割はパッケージ間の依存関係の解決のみを行います。

そのため、Xcodeプロジェクトファイル（`*.xcodeproj`）がリポジトリにコミットされてない以上、Carthageは依存関係を解決して、リポジトリをチェックアウトするところまではできますが、ビルドすることはできません。

それが、このプロジェクトではCarthageはバイナリインストールのみ、ソースコードからのビルドはサポートされていない理由です。
CC BY-SA 4.0
2019-10-07T23:03:37.910
59545
2019-10-07T23:03:37.910
5519
59535
answer