Help us understand the problem. What is going on with this article?

【Swift】ライブラリ Example を Carthage で管理する方法

はじめに

Carthage でライブラリを管理する場合 Cartfile に github "ReactiveX/RxSwift" といった感じで設定を記述すると思います。実は、ここにはローカルリポジトリを指定することも可能です。
この機能を使って scheme を分けて example を作成しているライブラリを Carthage で管理する方法をご紹介します。

この記事は AkkeyLab/RxScreenProtectKit というライブラリを作成・公開するにあたって学んだことをまとめたものになります。

問題

ドキュメント にもある通り git "file:///directory/to/project" "branch" という形式で記述すればいいことがわかります。
しかし、相対パス指定ができません(私の環境・方法では)。

解決策

echo "git \"file://$($(dirname $0); pwd)\"" >> Cartfile

Cartfile の保存場所がライブラリの保存場所と同じ場合、このスクリプトを実行することで、問題を解決できます。やってることとしてはカレントディレクトリの絶対パスを生成して Cartfile に追加しているだけの単純なものです。

git "file:///Users/name/Development/RxScreenProtectKit"

成功例も載せておきます。

おわりに

AkkeyLab/RxScreenProtectKit にも導入しておりますが、 example プロジェクトを動かしたい人用のスクリプトを準備しておくといいかもしれません。ここにも載せておきます。

#!/bin/bash

function command_exists {
  command -v "$1" > /dev/null;
}

echo "git \"file://$($(dirname $0); pwd)\"" >> Cartfile

# carthage
if ! command_exists brew ; then
  /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  brew update
  brew upgrade --all
  brew doctor
  brew -v
fi

if ! command_exists carthage ; then
  brew install carthage
fi

carthage update --platform iOS --no-use-binaries --cache-builds

# SwiftLint
if ! command_exists swiftlint ; then
  brew install swiftlint
fi

追記

Screen Shot 2019-07-12 at 16.27.40.png
実は Embedded Binaries の項目にビルドすることで自動生成される framework ファイルを追加する方法が一般的だと思います。ライブラリ開発時にサンプルを頻繁に使う場合、確実にこのほうが効率的です。この記事は方法の一つとしてご覧ください。

planningdev
九州工業大学 ITサービス開発・運用団体
https://www.planningdev.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした