SlideShare a Scribd company logo
1 of 24
Download to read offline
Carthageについて知りたいn個のこと
@ikesyo
関西モバイルアプリ研究会!#5,!2015(08(26!Wed
#関モバ
@ikesyo
!ikesyo_nnid
いけしょー/池田翔
京都でフリーランスのiOSエンジニア
(時々Android)しています
フリュー㈱のモバイル開発の
チームにジョイン中。
Reac%veCocoa/Carthageの
コミッター(Collaborator)やってます2✨
HimotokiというJSONデコーダーを作ってます+!
• GitHub
• SlideShare
今日はCarthageについて話します(!
CarthageCocoaプラットフォーム用の
分散型依存性管理ツール
名前の由来
• “パッケージ(Package)”と発音が似てるから(英語の発音はカー
セッジみたいな感じです),!
• [Ques1on],Why,name,Carthage?,:,Issue,#549
I,suggested,“Carthage,”,because,it’s,vaguely,like,“package”,with,
some,consonants,swapped,out.
—"Rob"Rix"(@robrix)
Cartfile
# Require version 2.3.1 or later
github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1
# Require version 1.x
github "Mantle/Mantle" ~> 1.0 # (1.0 or later, but less than 2.0)
# Require exactly version 0.4.1
github "jspahrsummers/libextobjc" == 0.4.1
# Use the latest version
github "jspahrsummers/xcconfigs"
# Use the branch
github "jspahrsummers/xcconfigs" "branch"
# Use a project from GitHub Enterprise
github "https://enterprise.local/ghe/desktop/git-error-translations"
# Use a project from any arbitrary server, on the "development" branch
git "https://enterprise.local/desktop/git-error-translations2.git" "development"
# Use a local project
git "file:///directory/to/project" "branch"
Cartfile
• !"次のバージョンからGitHub"EnterpriseのリポジトリもGitHub
同様に扱えるようになります"!
• 実装しました"✨"Add"support"for"GitHub"Enterprise"by"ikesyo"
5"Pull"Request"#657
github "https://enterprise.local/ghe/desktop/git-error-translations"
Cartfile.private
テストターゲット用の依存性などFramework自体のビルドに必要
ないものはこちらに。
github "Quick/Quick" ~> 0.3.1
github "Quick/Nimble" "v1.0.0-rc.1"
github "AliSoftware/OHHTTPStubs" ~> 4.2.0
Cartfile.resolved
Gemfile.lockやPodfile.lockと同様のもの。リポジトリにコミットしましょう。
github "robrix/Box" "1.2.2"
github "Quick/Nimble" "v0.4.2"
github "jdhealy/PrettyColors" "v2.0.0"
github "Quick/Quick" "v0.3.1"
github "thoughtbot/Runes" "v2.0.0"
github "jspahrsummers/xcconfigs" "0.8.1"
github "Carthage/ReactiveTask" "0.7-beta.3"
github "antitypical/Result" "0.4.4"
github "Carthage/Commandant" "0.6.1"
github "ReactiveCocoa/ReactiveCocoa" "v3.0-RC.1"
github "thoughtbot/Argo" "v1.0.4"
Commands
carthage update
carthage bootstrap
carthage checkout
carthage build
carthage archive
carthage copy-frameworks
carthage(checkout
• --use-ssh:#チェックアウト時にHTTPSではなくSSHを使用する。
• --use-submodules:#依存プロジェクトをGitのサブモジュールとして追加する。#
• --no-use-binaries:#ビルド済みバイナリーのダウンロードをせず、必ずロー
カルでビルドさせる。
• --use-submodules#を指定してもこれを指定しないと、ビルド済みバイナリ
ーが使われてサブモジュールが使われないので要注意。
• 次のバージョンで変わります:#h,ps://github.com/Carthage/Carthage/pull/
692
carthage(update/bootstrap
• --configuration:#DebugやReleaseの指定。
• --platform:#ios,#mac,#watchosなどプラットフォーム指定。
今のところ1つだけ。
• --no-build:#Cartfile.resolvedの更新、チェックアウト
はするがビルドはしない。
• carthage checkoutのオプション一式
carthage(build
• --configuration
• --platform
• --no-skip-current:#依存ライブラリに加えて、(Cartfileを持
っている)自分自身のプロジェクトもビルドする。
carthage(archive
carthage build --no-skip-current
carthage archive YourFrameworkName
とすることで!YourFrameworkName.framework.zip!が生成さ
れるので、これをGitHub!Releaseに添付すればビルド済みバイナ
リーとして使ってくれるようになります。!!
carthage(copy,frameworks
• iOSで“Embedded+Binaries”に追加する代わりに使用するもの。
App+Storeへのサブミット時の不具合を回避するために必須。
• 不具合とは:+.frameworkにシミュレーター用バイナリーが含
まれていると申請できない。
• h<p://www.openradar.me/radar?id=6409498411401216
GitHubのアクセストークン
• ビルド済みバイナリーのダウンロードの関係でGitHub(APIを使用し
ている。
• その際に使用するアクセストークンを(GITHUB_ACCESS_TOKEN(環
境変数で指定できる。
• GITHUB_ACCESS_TOKEN=XXXXXXXXXXXXX carthage update
•
GITHUB_ACCESS_TOKEN="github.com=XXXXXXXXXXXXX,ent
erprise.local/ghe=YYYYYYYYY" carthage update
Universal*framework*target
• OS$X,$iOS,$watchOSのマルチプラットフォームを1つのターゲットでビルドで
きるターゲット設定。
• PRがマージされたので次のバージョンでビルドできるようになります。
• Support$universal$framework$targets.$by$neonichu$@$Pull$Request$#622
• こんなのが使えます
• hEps://github.com/mrackwitz/xcconfigs
• 豆知識:$この作者さんはCocoaPods$0.36でSwiO/Dynamic$Frameworkの対応
した人です。
!!快適なCarthageライフを
お過ごし下さい!"
Ques%ons❓
Thank&you❗"

More Related Content

What's hot

Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami
 

What's hot (20)

[DL輪読会]Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs (CV...
[DL輪読会]Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs (CV...[DL輪読会]Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs (CV...
[DL輪読会]Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs (CV...
 
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
 
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
 
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
 
正しいものを正しくつくるへ至る道
正しいものを正しくつくるへ至る道正しいものを正しくつくるへ至る道
正しいものを正しくつくるへ至る道
 
RDBでのツリー表現入門
RDBでのツリー表現入門RDBでのツリー表現入門
RDBでのツリー表現入門
 
Constexpr 中3女子テクニック
Constexpr 中3女子テクニックConstexpr 中3女子テクニック
Constexpr 中3女子テクニック
 
.NET 7 での ASP.NET Core Blazor の新機能ピックアップ
.NET 7 での ASP.NET Core Blazor の新機能ピックアップ.NET 7 での ASP.NET Core Blazor の新機能ピックアップ
.NET 7 での ASP.NET Core Blazor の新機能ピックアップ
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
 
KubernetesとSpannerで 進化し続けるコロプラのゲーム開発
KubernetesとSpannerで 進化し続けるコロプラのゲーム開発KubernetesとSpannerで 進化し続けるコロプラのゲーム開発
KubernetesとSpannerで 進化し続けるコロプラのゲーム開発
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embedding
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
 

Viewers also liked (6)

How to handle bitcode
How to handle bitcodeHow to handle bitcode
How to handle bitcode
 
iOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバiOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバ
 
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
iOSアプリのライブラリ依存管理ツールとして Swift Package Managerを使うのは まだしばらく先かなと思った話
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercari
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
 
JUnit5とAndroidのテスト
JUnit5とAndroidのテストJUnit5とAndroidのテスト
JUnit5とAndroidのテスト
 

Similar to Carthageについて知りたいn個のこと

Similar to Carthageについて知りたいn個のこと (7)

SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
 
Dynamic frameworks tips
Dynamic frameworks tipsDynamic frameworks tips
Dynamic frameworks tips
 
Himotoki: A type-safe JSON decoding library #関モバ
Himotoki: A type-safe JSON decoding library #関モバHimotoki: A type-safe JSON decoding library #関モバ
Himotoki: A type-safe JSON decoding library #関モバ
 
Next.js Storybook Driven Development
Next.js Storybook Driven DevelopmentNext.js Storybook Driven Development
Next.js Storybook Driven Development
 
アプリ開発の境界問題を支えるツール
アプリ開発の境界問題を支えるツールアプリ開発の境界問題を支えるツール
アプリ開発の境界問題を支えるツール
 
GitHub Enterprise with GMO Pepabo
GitHub Enterprise with GMO PepaboGitHub Enterprise with GMO Pepabo
GitHub Enterprise with GMO Pepabo
 
20131210 QZSS Ideathon 2013
20131210 QZSS Ideathon 201320131210 QZSS Ideathon 2013
20131210 QZSS Ideathon 2013
 

More from Syo Ikeda (6)

SwiftLint
SwiftLintSwiftLint
SwiftLint
 
Xcode and iTC submission topics
Xcode and iTC submission topicsXcode and iTC submission topics
Xcode and iTC submission topics
 
Swift 1.2からSwift 2への移行 #cocoa_kansai
Swift 1.2からSwift 2への移行 #cocoa_kansaiSwift 1.2からSwift 2への移行 #cocoa_kansai
Swift 1.2からSwift 2への移行 #cocoa_kansai
 
ObjectMapperでJSONマッピング
ObjectMapperでJSONマッピングObjectMapperでJSONマッピング
ObjectMapperでJSONマッピング
 
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
var RAC3 = ReactiveCocoa + Swift @ ReactiveCocoa Tokyo #rac_tokyo 10/18
 
var RAC3 = ReactiveCocoa + Swift
var RAC3 = ReactiveCocoa + Swiftvar RAC3 = ReactiveCocoa + Swift
var RAC3 = ReactiveCocoa + Swift
 

Carthageについて知りたいn個のこと