Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

15,169 views

Published on

関西モバイルアプリ研究会 #5での発表スライドです。

Published in: Engineering
  • Be the first to comment

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

  1. 1. Carthageについて知りたいn個のこと @ikesyo 関西モバイルアプリ研究会!#5,!2015(08(26!Wed #関モバ
  2. 2. @ikesyo !ikesyo_nnid いけしょー/池田翔 京都でフリーランスのiOSエンジニア (時々Android)しています フリュー㈱のモバイル開発の チームにジョイン中。
  3. 3. Reac%veCocoa/Carthageの コミッター(Collaborator)やってます2✨
  4. 4. HimotokiというJSONデコーダーを作ってます+! • GitHub • SlideShare
  5. 5. 今日はCarthageについて話します(!
  6. 6. CarthageCocoaプラットフォーム用の 分散型依存性管理ツール
  7. 7. 名前の由来 • “パッケージ(Package)”と発音が似てるから(英語の発音はカー セッジみたいな感じです),! • [Ques1on],Why,name,Carthage?,:,Issue,#549 I,suggested,“Carthage,”,because,it’s,vaguely,like,“package”,with, some,consonants,swapped,out. —"Rob"Rix"(@robrix)
  8. 8. 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"
  9. 9. Cartfile • !"次のバージョンからGitHub"EnterpriseのリポジトリもGitHub 同様に扱えるようになります"! • 実装しました"✨"Add"support"for"GitHub"Enterprise"by"ikesyo" 5"Pull"Request"#657 github "https://enterprise.local/ghe/desktop/git-error-translations"
  10. 10. Cartfile.private テストターゲット用の依存性などFramework自体のビルドに必要 ないものはこちらに。 github "Quick/Quick" ~> 0.3.1 github "Quick/Nimble" "v1.0.0-rc.1" github "AliSoftware/OHHTTPStubs" ~> 4.2.0
  11. 11. 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"
  12. 12. Commands carthage update carthage bootstrap carthage checkout carthage build carthage archive carthage copy-frameworks
  13. 13. carthage(checkout • --use-ssh:#チェックアウト時にHTTPSではなくSSHを使用する。 • --use-submodules:#依存プロジェクトをGitのサブモジュールとして追加する。# • --no-use-binaries:#ビルド済みバイナリーのダウンロードをせず、必ずロー カルでビルドさせる。 • --use-submodules#を指定してもこれを指定しないと、ビルド済みバイナリ ーが使われてサブモジュールが使われないので要注意。 • 次のバージョンで変わります:#h,ps://github.com/Carthage/Carthage/pull/ 692
  14. 14. carthage(update/bootstrap • --configuration:#DebugやReleaseの指定。 • --platform:#ios,#mac,#watchosなどプラットフォーム指定。 今のところ1つだけ。 • --no-build:#Cartfile.resolvedの更新、チェックアウト はするがビルドはしない。 • carthage checkoutのオプション一式
  15. 15. carthage(build • --configuration • --platform • --no-skip-current:#依存ライブラリに加えて、(Cartfileを持 っている)自分自身のプロジェクトもビルドする。
  16. 16. carthage(archive carthage build --no-skip-current carthage archive YourFrameworkName とすることで!YourFrameworkName.framework.zip!が生成さ れるので、これをGitHub!Releaseに添付すればビルド済みバイナ リーとして使ってくれるようになります。!!
  17. 17. carthage(copy,frameworks • iOSで“Embedded+Binaries”に追加する代わりに使用するもの。 App+Storeへのサブミット時の不具合を回避するために必須。 • 不具合とは:+.frameworkにシミュレーター用バイナリーが含 まれていると申請できない。 • h<p://www.openradar.me/radar?id=6409498411401216
  18. 18. 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
  19. 19. 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の対応 した人です。
  20. 20. !!快適なCarthageライフを お過ごし下さい!"
  21. 21. Ques%ons❓
  22. 22. Thank&you❗"

×