Slide 1

Slide 1 text

1 Bitrise͜ͱ͸͡Ί ೔ຊܦࡁ৽ฉࣾɹத઒ ສᣦಸ Otemachi.swiftɹ×ɹKyobashi.swift #02

Slide 2

Slide 2 text

2 Marina Nakagawa @marina10172013 ೔ຊܦࡁ৽ฉࣾͷiOSΤϯδχΞ ిࢠ൛ΞϓϦɼࢴ໘ϏϡʔΞʔΞϓϦͷ։ൃ

Slide 3

Slide 3 text

3 ຊ೔࿩͢͜ͱ Bitriseͱ͸ ฐࣾͷCIαΠΫϧ Bitrise࣮ફνϡʔτϦΞϧ 1 2 3 BitriseTips 4

Slide 4

Slide 4 text

4 Bitriseͱ͸ 1

Slide 5

Slide 5 text

5 Bitriseͱ͸ ϞόΠϧΞϓϦ։ൃʢiOS Android,Xamarin…ʣ Λओ؟ʹ͓͍ͨCI/CDαʔϏεϓϥοτϑΥʔϜ

Slide 6

Slide 6 text

6 Ͳ͏ͯ͠ಋೖͨ͠ͷʁ

Slide 7

Slide 7 text

7 Travis CIͷXcode࣍ظόʔδϣϯରԠ͕஗ͯ͘ίέΔɹɹ ཧ༝̍ BitriseͷXcodeͷόʔδϣϯରԠ͕ ૣͯ͘Αͦ͞͏ɹɹɹɹɹɹɹɹɹɹɹ

Slide 8

Slide 8 text

8 !ূ໌ॻΛϓϩϏδϣχϯάϑΝΠϧΛCI༻ʹ༻ҙͨ͠Γ !ॺ໊༻ͷൿີ伴ͷ؅ཧํ๏ ূ໌ॻ͕೉͍͠ ཧ༝̎ ূ໌ॻपΓ΍ൿີ伴पΓָ͕

Slide 9

Slide 9 text

9 TravisCI ಉ࣮࣌ߦ਺̎ 129υϧ ίετ໘ ཧ༝̏ TravisCI ಉ࣮࣌ߦ਺3 150υϧ ಉ࣮࣌ߦ਺ʹ͔͔ΔίετͰൺֱ͢Δͱˈ14.5͍҆

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

11 ಉ࣌ʹ̏ͭճͤΔϓϥϯͰܖ໿

Slide 12

Slide 12 text

12 ϥΠϒϥϦߋ৽Λ๨Εͯख໭Γ͢Δ S3 ϏϧυࡁΈͷϥΠϒϥϦ Ξοϓϩʔυ ϏϧυࡁΈͷϥΠϒϥϦ μ΢ϯϩʔυ ཧ༝̐

Slide 13

Slide 13 text

13 ϥΠϒϥϦߋ৽Λ๨Εͯख໭Γ͢Δ S3 ϏϧυࡁΈͷϥΠϒϥϦ Ξοϓϩʔυ ϏϧυࡁΈͷϥΠϒϥϦ μ΢ϯϩʔυ ཧ༝̐ த઒:QA͞Μʂ֬ೝ͓ئ͍͠·͢ʂ QA͞Μ:ϏϧυͰ͖ͳ͍Ͱ͢ɾɾɾ த઒:͋͋ͬɾɾ͍͢·ͤΜɾɾ֬ೝ͠·͢ த઒:ϥΠϒϥϦߋ৽͠๨Εͯ·ͨ͠ɾɾ ɹɹɹ΋͏Ұ౓֬ೝ͓ئ͍͍ͨ͠·͢

Slide 14

Slide 14 text

14 ϥΠϒϥϦߋ৽Λ๨Εͯख໭Γ͢Δ S3 ϏϧυࡁΈͷϥΠϒϥϦ Ξοϓϩʔυ ϏϧυࡁΈͷϥΠϒϥϦ μ΢ϯϩʔυ ཧ༝̐ ख໭Γͷ͕࣌ؒ΋͍ͬͨͳ͍

Slide 15

Slide 15 text

15 ΞʔΧΠϒʴiTunesConnect Ξοϓϩʔυʹ͕͔͔࣌ؒΔ ཧ༝̑

Slide 16

Slide 16 text

16 ΞʔΧΠϒʴiTunesConnect Ξοϓϩʔυʹ͕͔͔࣌ؒΔ ཧ༝̑ !20ʙ30෼ଞͷ࡞ۀ͕Ͱ͖ͳ͍ !Ϗϧυ൪߸Λؒҧ͑ͯ࠶ΞʔΧΠϒͨ͜͠ͱ΋ !ਃ੥΍ϦϦʔεΛͩ͢ϏϧυΛؒҧ͑Δϛε͕ൃੜͦ͠͏
 ʢओʹࢲ͕ʣ

Slide 17

Slide 17 text

17 ΞʔΧΠϒʴiTunesConnect Ξοϓϩʔυʹ͕͔͔࣌ؒΔ ཧ༝̑ ͭΒ͍

Slide 18

Slide 18 text

18 ࣗಈԽ͠·͠ΐ͏

Slide 19

Slide 19 text

19 ฐࣾͷCIαΠΫϧ 2

Slide 20

Slide 20 text

20 ΍Γ͍ͨ͜ͱ 1 !ϦϦʔε͢Δόʔδϣϯͷϒϥϯν͕Ϛʔδ͞Εͨ࣌ ɹࣗಈͰiTunesConnectʹΞοϓϩʔυ !TestFlight഑৴ !Ϗϧυ൪߸ΛࣗಈͰ্͛Δ

Slide 21

Slide 21 text

21 ճ͍ͨ͠αΠΫϧ ূ໌ॻ֬ೝ S3͔ΒϑϨʔϜϫʔΫΛμ΢ϯϩʔυ Ϗϧυ൪߸Λ্͛ΔͨΊͷ ϓϥάΠϯΛμ΢ϯϩʔυ Ϗϧυͯ͠iTunesConnectʹΞοϓϩʔυ ϏϧυφϯόʔΛ͋͛ͯgitʹpush ΩϟογϡΞοϓσʔτʴslack௨஌

Slide 22

Slide 22 text

22 ΍Γ͍ͨ͜ͱ !ϥΠϒϥϦ͕ߋ৽͞ΕͯΔ͔֬ೝ !ϏϧυࡁΈͷϑϨʔϜϫʔΫΛS3ʹ্͛Δ 2

Slide 23

Slide 23 text

23 ճ͍ͨ͠αΠΫϧ pushͨ͠ϒϥϯνΛμ΢ϯϩʔυ pushͨ͠ϒϥϯνΛμ΢ϯϩʔυ ϥΠϒϥϦͷߋ৽͕͋Δ͔Λ֬ೝ S3ʹϑϨʔϜϫʔΫΛΞοϓσʔτ slackʹ௨஌ S3

Slide 24

Slide 24 text

24 Bitrise࣮ફ ~BitriseͷΈͰσϓϩΠͯ͠Ϗϧυ൪߸Λ্͛Δ·Ͱ~ 3

Slide 25

Slide 25 text

25 ূ໌ॻΛग़ྗ͢Δ ࢀߟURL: http://devcenter.bitrise.io/ios/uploading-certificates/ ԼهίϚϯυΛ࣮ߦͯ͠ɺΞʔΧΠϒ͍ͨ͠εΩʔϚΛબ୒͢Δ bash -l -c "$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap-xcode.sh)" XcodeϑΝΠϧΛ Darg&Drop

Slide 26

Slide 26 text

26 ূ໌ॻΛग़ྗ͢Δ

Slide 27

Slide 27 text

27 ग़ྗ͞Εͨূ໌ॻΛΞοϓϩʔυ

Slide 28

Slide 28 text

28 Workflowsλϒ

Slide 29

Slide 29 text

29 ϫʔΫϑϩʔͷ໊લΛ͍ΕΔ

Slide 30

Slide 30 text

30 ϫʔΫϑϩʔΛͭ͘Δ

Slide 31

Slide 31 text

31 ϫʔΫϑϩʔΛͭ͘Δ ←͜͜·Ͱ͸σϑΥϧτͷ··ͰOK ←͔͜͜Βઃఆ͕ඞཁ

Slide 32

Slide 32 text

32 㲔 Ϗϧυ൪߸ΛࣗಈͰ্͛ΔͨΊͷઃఆ Info.plistͷϑΝΠϧύεΛೖྗˣ ͜͜ʹ਺ࣈΛೖΕ͓ͯ͘ͱ Info,plistʹొ࿥͞Ε͍ͯΔϏϧυ൪߸ʴBuild Number OffsetʹͳΓ·͢ˢ 㲔 σϑΥϧτͰ͸ɼBitriseͷϏϧυ൪߸͕ ୅ೖ͞ΕΔઃఆʹͳ͍ͬͯ·͢ˠ

Slide 33

Slide 33 text

33 ΞʔΧΠϒͯ͠ग़ྗ͢Δઃఆ 㲔 ↑iTunes Connectʹఏग़͢ΔͨΊapp-storeΛબ୒͠·͢

Slide 34

Slide 34 text

34 iTunesConnectʹΞοϓϩʔυ͢Δઃఆ iTunes Connect: User Apple ID (email) iTunes Connect: Password iTunes Connect: App Apple ID iTunes Connect: App Bundle ID iTunes Connect: Team name ←͜ͷ߲໨Λೖྗ͢Δ

Slide 35

Slide 35 text

35 㲔 Slackͷಛఆͷνϟϯωϧʹ௨஌ΛૹΔ ↑Webhook URLΛऔಘͯ͠୅ೖ͢Δ

Slide 36

Slide 36 text

36 Webhook URLΛऔಘ͢Δ

Slide 37

Slide 37 text

37 ↑͜ΕΛbitriseʹίϐϖ

Slide 38

Slide 38 text

38 ׬ྃ

Slide 39

Slide 39 text

39 Tips 4

Slide 40

Slide 40 text

40 ؀ڥม਺Λઃఆ͍ͨ࣌͠ ϦϙδτϦ͝ͱʹ؀ڥม਺ΛઃఆͰ͖·͢ ϫʔΫϑϩʔ͝ͱʹ؀ڥม਺Λઃఆ͢Δ͜ͱ΋Մೳ

Slide 41

Slide 41 text

41 ϒϥϯν͝ͱʹϫʔΫϑϩʔΛม͍͑ͨ࣌ develop-*͸ͱʹ͔͘develop-ʹҰகͯ͠Ε͹deployϫʔΫϑϩʔ͕࣮ߦ͞Ε·͢ʢྫdevelop-2.7.3ʣ ্͔Βॱ൪ʹҰக͢Δϒϥϯν͕ݟ͔ͭͬͨΒྡͷϫʔΫϑϩʔ͕࣮ߦ͞Ε·͢ ͜ͷྫͩͱdevelop-* →ɹbeta-*ɹˠ;ͨͭʹҰக͠ͳ͍৔߹͸ϒϥϯνͷ໊લ͕ԿͰ͋ͬͯ΋ update_carhage_cahceϫʔΫϑϩʔ͕࣮ߦ͞Ε·͢

Slide 42

Slide 42 text

42 priveteͷϦϙδτϦΛ࢖͍͍ͨ࣌ bitriseɹsettingλϒ಺

Slide 43

Slide 43 text

43 githubɹbotΞΧ΢ϯτͷsettingϖʔδ ࡞੒ͨ͠Bot͕ϓϥΠϕʔτϦϙδτϦΛಡΊΔ͔Ͳ͏͔ͷઃఆΛ๨Εͣʹʂ

Slide 44

Slide 44 text

44 PodsͷΩϟογϡΛ্͍͛ͨ࣌ ࢀߟURL https://discuss.bitrise.io/t/how-to-cache-cocoapods-dependencies/193 Cache Pods Cache:Pull σϑΥϧτͷ··ͰOK ϫʔΫϑϩʔͷ࠷ॳͷํͰઃఆ͢Δඞཁ͕͋Δ
 (Git Clone Repositoryͷ࣍ʹઃఆ͠·ͨ͠ʣ Cache PathsΛॻ͖׵͑·ͨ͠ ϫʔΫϑϩʔͷҰ൪࠷ޙʹઃఆ͠·ͨ͠

Slide 45

Slide 45 text

45 fastlaneͰϏϧυ൪߸Λ͍͋͛ͤͨ࣌͞ desc "update build number" lane :update_build_number do |options| xcodeproj = XCODEPROJ_PATH build_number = options[:build_number] version_number = options[:version_number] # dist increment_build_number_in_plist(xcodeproj: xcodeproj, target: SCHEME_DIST, build_number: build_number) # dev increment_build_number_in_plist(xcodeproj: xcodeproj, target: SCHEME_DEV, build_number: build_number) end desc "Commit and push to remote" lane :commit_and_push do # git commit sh "git checkout #{git_branch}" git_add(path: [PLIST_PATH_DEV, PLIST_PATH_DIST]) git_commit(path: [PLIST_PATH_DEV, PLIST_PATH_DIST], message: "Increment Info-development.plist and Info.plist build number [skip ci] ") push_to_git_remote( remote: "origin", local_branch: "#{git_branch}", remote_branch: "#{git_branch}", force: false, # optional, default: false tags: false # optional, default: true ) end

Slide 46

Slide 46 text

46 ໰୊఺ ୭͔͕pushͨ͠ޙ͸pull͠ͳ͍ͱ Ϗϧυ൪߸͕͔ͿΔɾɾɾ Ϗϧυ൪߸30 Ϗϧυ൪߸30 Ϗϧυ൪߸30 Ϗϧυ൪߸30 Ξοϓϩʔυ ͢ͰʹϏϧυ൪߸30ͷ σʔλ͕ଘࡏ͢ΔͨΊ
 ΞοϓϩʔυͰ͖ͳ͍

Slide 47

Slide 47 text

47 ໰୊఺ ୭͔͕pushͨ͠ޙ͸pull͠ͳ͍ͱ Ϗϧυ൪߸͕͔ͿΔɾɾɾ Ϗϧυ൪߸30 Ϗϧυ൪߸30 Ϗϧυ൪߸30 Ϗϧυ൪߸30 Ξοϓϩʔυ ͢ͰʹϏϧυ൪߸30ͷ σʔλ͕ଘࡏ͢ΔͨΊ
 ΞοϓϩʔυͰ͖ͳ͍ BitriseͷϏϧυ൪߸ʹ߹Θͤͯ Ϗϧυ൪߸Λੜ੒͢Δํ਑ʹมߋ

Slide 48

Slide 48 text

48 ymlϑΝΠϧͷѻ͍ํ͕΄͔ͷCIͱҧ͏ bitriseCIͷymlϑΝΠϧΛมߋͯ͠ϦϙδτϦʹ͋͛ͯ΋ ͦΕ͕bitrise্ʹ൓ө͞ΕΔΘ͚Ͱ͸ͳ͍ bitriseͷWebαʔϏε্Ͱมߋ͢Δඞཁ͕͋Δ

Slide 49

Slide 49 text

49 ࢀߟURL: http://devcenter.bitrise.io/tips-and-tricks/use-bitrise-yml-from-repository/ bitriseͷ৴೦ !ϒϥϯνͷτϦΨʔ͸bitrise.io্Ͱ؅ཧ͢Δͷ͕ྑ͍ Bitrise͸ɺϒϥϯνͷ໊લΛτϦΨʔʹͯ͠ɺ ࣮ߦ͢ΔϫʔΫϑϩʔΛܾΊͯΔ͔Β !Ϗϧυߏ੒Λbitriseʹอଘ͢Δͱɺ ৽͍͠Ϗϧυߏ੒Ͱ͍ͭͰ΋؆୯ʹ࠶ߏஙͰ͖ͯศར

Slide 50

Slide 50 text

50 େମfastlaneͰઃఆ͔ͨ͠Β bitriseͷ৴೦ʹدΓఴ͑ͳ͔ͬͨɾɾɾɾ

Slide 51

Slide 51 text

51 ࠷ޙʹ

Slide 52

Slide 52 text

52 ࣗಈԽͯ͠޾ͤʹͳͬͨ ࢹ֮తͰॳ৺ऀʹ΍͍͞͠

Slide 53

Slide 53 text

53 ͋Γ͕ͱ͏͍͟͝·ͨ͠