Slide 1

Slide 1 text

طଘΞϓϦΛXcode8 ରԠͤͨ͞࿩ 2016/09/22 SwiftѪ޷ձ@G's ACADEMY

Slide 2

Slide 2 text

ࣗݾ঺հ ɾKohei Tabata(@nerd0geek1) ɾSaib Studio LLC ɾiOS/MacOS/tvOS Developer ɾFastlaneେ޷͖ ɾSwiftѪ޷ձେ޷͖ Said Studio LLC Kohei Tabata Next! Remote quick-zip plus Sleeple

Slide 3

Slide 3 text

http://next.saib-stud.io

Slide 4

Slide 4 text

Xcode8ग़·ͨ͠Ͷ

Slide 5

Slide 5 text

ରԠऴΘΓ·ͨ͠ʁ

Slide 6

Slide 6 text

Xcode8ରԠͯ͠ΈͨͷͰ ஌ݟΛڞ༗͠·͢ɻ

Slide 7

Slide 7 text

୊ࡐ ɾNext! Remote(iOSΞϓϦ)ɺNext! for Mac(MacΞϓϦ) ɾCocoaPodsɺCarthageΛར༻ͨ͠ϑϧSwiftΞϓϦ ɾ51ϑΝΠϧɺ2400ߦ(Next! RemoteɺclocͰܭଌ) ɾ21ϑΝΠϧɺ1200ߦ(Next! for MacɺclocͰܭଌ) ͱ͍ͬͨൺֱతখن໛ͳΞϓϦ

Slide 8

Slide 8 text

໨࣍ ɾSwift3΁ͷҠߦʹ௅ઓ ɾSwift2.3΁ͷҠߦʹ௅ઓ ɾͦͷଞ

Slide 9

Slide 9 text

Swift3΁ͷҠߦʹ௅ઓ

Slide 10

Slide 10 text

μϝͰͨ͠ ɾSwift3Ҡߦ͢ΔͨΊʹ͸ɺϥΠϒϥϦ౳͕શͯSwift3Ҡߦ͍ͯ͠Δ ɹඞཁ͋Γ ɾར༻͍ͯ͠ΔେखOSSͷ͏ͪɺQuick, Nimble͸ରԠࡁɻ ɹSnapKit͕ະରԠɻ ɾcarthage update —platform iOSͰίέͯ͠·͏ɻ ɾͱ͍͏Θ͚Ͱૣʑʹఫୀɻ

Slide 11

Slide 11 text

Swift2.3΁ͷҠߦʹ௅ઓ

Slide 12

Slide 12 text

େ͖ͳࠔ೉΋ͳ͘׬ྃ ɾCoreBluetooth.frameworkͰͪΐͬͱͭ·ͮ͘ ɹiOS9 ɿCBCentralManagerState ɹiOS10ɿCBManagerState ɹˢޓ׵ੑͳ͠ ɾͦΕҎ֎͸ɺ override func touchesCancelled(touches: Set?, withEvent event: UIEvent?) ͱ override func touchesCancelled(touches: Set, withEvent event: UIEvent?) ͘Β͍

Slide 13

Slide 13 text

ऴΘΓͩͱࢥͬͨʁ

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

ࣗݾ঺հ ɾKohei Tabata(@nerd0geek1) ɾSaib Studio LLC ɾiOS/MacOS/tvOS Developer ɾFastlaneେ޷͖ ɾAKIBA.swiftେ޷͖ Said Studio LLC Kohei Tabata Next! Remote quick-zip plus Sleeple

Slide 16

Slide 16 text

͓෼͔Γ௖͚ͨͩΖ͏͔…

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Ͳ͏࢖͍͔ͬͯͨʁ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμ΢ϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞੒ ɾcrashlytics/pilotͰcrashlytics/iTunes Connect΁Ξοϓϩʔυ

Slide 19

Slide 19 text

Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμ΢ϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞੒ ɾcrashlytics/pilotͰcrashlytics/iTunes Connect΁Ξοϓϩʔυ

Slide 20

Slide 20 text

Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμ΢ϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞੒ ɾcrashlytics/pilotͰcrashlytics/iTunes Connect΁Ξοϓϩʔυ

Slide 21

Slide 21 text

Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμ΢ϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞੒ ɾcrashlytics/pilotͰcrashlytics/iTunes Connect΁Ξοϓϩʔυ

Slide 22

Slide 22 text

Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμ΢ϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞੒ ɾcrashlytics/pilotͰcrashlytics/iTunes Connect΁Ξοϓϩʔυ ΄΅ࢮ๢ʘ(^o^)ʗśƂŦ

Slide 23

Slide 23 text

Carthage࢖͑ͳ͍໰୊ ɾXcode8Ͱ͸ɺToolchainsʹSwift2.3༻ͱSwift3༻ͷ΋ͷ͕ ɹؚ·Ε͍ͯΔ ɹ$ ls /Applications/Xcode.app/Contents/Developer/Toolchains/ ɹSwift_2.3.xctoolchain XcodeDefault.xctoolchain ɾσϑΥϧτ͸Swift3ͷToolchain ɾexport TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 ɹͰSwift2.3Λར༻͢ΔΑ͏ʹઃఆ

Slide 24

Slide 24 text

scanίέΔ໰୊ ɾXcode7·Ͱ͸destinationͰࢦఆ͍ͯͨ͠஋(OSɺ୺຤)ͰςετΛ ɹ࣮ߦ͢ΔΑ͏ʹͳ͍͕ͬͯͨɺXcode8͔Βແࢹ͞ΕΔΑ͏ʹɻ ɾ·ͨɺCircleCI্Ͱ͸derived_data_path͕௨ৗͷ ɹ~/Library/Developer/Xcode/DerivedData/Ͱ͸ͳ͘ɺ”/”ͱͳΓɺ ɹpermissionͷ໰୊Ͱςετ͕ίέΔΑ͏ʹɻ ɹˠద౰ͳ஋ΛSCAN_DERIVED_DATA_PATHʹઃఆͯ͠ରԠ

Slide 25

Slide 25 text

gymίέΔ໰୊ ɾࠓ·Ͱ͸bundle install -j4 --path=vendor/bundleͰΠϯετʔϧ͠ɺ ɹbundle exec fast lane …Ͱ࣮ߦ͍ͯ͠Ε͹໰୊ͳ͔͕ͬͨɺ࠷৽൛ ɹ(1.102.0 or 1.103.0)Ͱ͸Ұ෦ɺγεςϜඪ४rubyͷgem͕ࢀর͞ΕΔ ɹΑ͏ʹɻɻɻ(͓ͦΒ͘όά) ɹ ɾͦͷͨΊɺCircleCI্Ͱsudo gem install fastlaneͱͯ͠ରԠɻ ɹॺ໊͸ɺXcode8͔Βͷࣗಈબ୒Ͱ͸͏·͘ಈ͔ͳ͔ͬͨͨΊݸผʹઃఆ ɾଞʹ΋ੜ੒͞ΕΔipa/dSYMϑΝΠϧͷϕʔεωʔϜ͕มߋʹɻ ɹNext! Remote.ipa→App.ipa

Slide 26

Slide 26 text

pilotίέΔ໰୊ ɾͲͪΒ͔ͱݴ͑͹ɺfastlaneΑΓiTunes Connectͷมߋɻ ɾpush௨஌ʹ͍ͭͯɺentitlements͕ͳͯ͘΋௨͍ͬͯͨ΋ͷ͕ ɹඞਢʹɻ ɾBluetoothΛ࢖༻͍ͯͨͨ͠Ίɺ ɹNSBluetoothPeripheralUsageDescriptionΛInfo.plistʹؚΊΔ ɹ͜ͱ͕ඞਢʹɻ

Slide 27

Slide 27 text

·ͱΊ ɾXcode8 x Swift2.3͸ͦΜͳʹେม͡Όͳ͍ ɾXcode8 x Swift3.x͸ΤίγεςϜͷߋ৽଴ͪɻ ɾXcodeपลͷࣗಈԽؔ܎͸ɺ·ͩͪΐͬͱෆ҆ఆ ɹ஍ཕ͸͋Β͔ͨ౿Έൈ͍ͨʂ(ന໨

Slide 28

Slide 28 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

Slide 29

Slide 29 text

ࢀߟ ɾίϚϯυϥΠϯπʔϧͰ͋ΒΏΔݴޠ͕࢖ΘΕ͍ͯͯ΋ߦ਺Λଌఆ͢Δ ɹ(http://qiita.com/GeneralD/items/c4351f42d0a441373033) ɾfastlane/fastlane ɹ(https://github.com/fastlane/fastlane) ɾBuilding dependencies with Swift 2.3 rather than Swift 3 when using Xcode 8 Beta ɹ(https://github.com/Carthage/Carthage/issues/1351#issuecomment-226637835)