Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
既存アプリをXcode8対応させた話
Search
Kohei Tabata
September 22, 2016
Programming
1
1.4k
既存アプリをXcode8対応させた話
Kohei Tabata
September 22, 2016
Tweet
Share
More Decks by Kohei Tabata
See All by Kohei Tabata
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
850
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
82
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
4k
家庭をプロジェクトとして運営した話
nerd0geek1
2
4k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
970
みんなで育てるprecheck
nerd0geek1
1
630
matchとは?match導入のメリット
nerd0geek1
4
510
Improve your workflow with Sketch plugin
nerd0geek1
3
1.2k
Looking back try! Swift 2017
nerd0geek1
0
550
Other Decks in Programming
See All in Programming
AWS初心者ってどうやってAWSを学ぶ?〜アプリエンジニアがやってよかったアーキテクチャ学習方法〜
yamanashi_ren01
0
190
20240706_CDKConf
takuyay0ne
0
1.2k
「2024年版 Kotlin サーバーサイドプログラミング実践開発」の補講 〜O/Rマッパー編〜
n_takehata
2
260
CSC307 Lecture 12
javiergs
PRO
0
220
SDCon2024: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
cer
PRO
0
780
CSC307 Lecture 13
javiergs
PRO
0
150
CSC307 Lecture 05
javiergs
PRO
0
210
最近追加した型の紹介とその振り返り
aki19035vc
0
170
Prompt FlowによるLLMアプリケーション開発
yuto2000
1
1k
Namespace on read
tagomoris
2
370
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
CSC307 Lecture 08
javiergs
PRO
0
330
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
26
1.6k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
248
12k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
WebSockets: Embracing the real-time Web
robhawkes
59
7.2k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Thoughts on Productivity
jonyablonski
64
4.1k
Agile that works and the tools we love
rasmusluckow
325
20k
Scaling GitHub
holman
458
140k
Designing the Hi-DPI Web
ddemaree
276
34k
The Language of Interfaces
destraynor
151
23k
Transcript
طଘΞϓϦΛXcode8 ରԠͤͨ͞ 2016/09/22 SwiftѪձ@G's ACADEMY
ࣗݾհ ɾKohei Tabata(@nerd0geek1) ɾSaib Studio LLC ɾiOS/MacOS/tvOS Developer ɾFastlaneେ͖ ɾSwiftѪձେ͖
Said Studio LLC Kohei Tabata Next! Remote quick-zip plus Sleeple
http://next.saib-stud.io
Xcode8ग़·ͨ͠Ͷ
ରԠऴΘΓ·ͨ͠ʁ
Xcode8ରԠͯ͠ΈͨͷͰ ݟΛڞ༗͠·͢ɻ
ࡐ ɾNext! Remote(iOSΞϓϦ)ɺNext! for Mac(MacΞϓϦ) ɾCocoaPodsɺCarthageΛར༻ͨ͠ϑϧSwiftΞϓϦ ɾ51ϑΝΠϧɺ2400ߦ(Next! RemoteɺclocͰܭଌ) ɾ21ϑΝΠϧɺ1200ߦ(Next! for
MacɺclocͰܭଌ) ͱ͍ͬͨൺֱతখنͳΞϓϦ
࣍ ɾSwift3ͷҠߦʹઓ ɾSwift2.3ͷҠߦʹઓ ɾͦͷଞ
Swift3ͷҠߦʹઓ
μϝͰͨ͠ ɾSwift3Ҡߦ͢ΔͨΊʹɺϥΠϒϥϦ͕શͯSwift3Ҡߦ͍ͯ͠Δ ɹඞཁ͋Γ ɾར༻͍ͯ͠ΔେखOSSͷ͏ͪɺQuick, NimbleରԠࡁɻ ɹSnapKit͕ະରԠɻ ɾcarthage update —platform iOSͰίέͯ͠·͏ɻ
ɾͱ͍͏Θ͚Ͱૣʑʹఫୀɻ
Swift2.3ͷҠߦʹઓ
େ͖ͳࠔͳྃ͘ ɾCoreBluetooth.frameworkͰͪΐͬͱͭ·ͮ͘ ɹiOS9 ɿCBCentralManagerState ɹiOS10ɿCBManagerState ɹˢޓੑͳ͠ ɾͦΕҎ֎ɺ override func touchesCancelled(touches:
Set<UITouch>?, withEvent event: UIEvent?) ͱ override func touchesCancelled(touches: Set<UITouch>, withEvent event: UIEvent?) ͘Β͍
ऴΘΓͩͱࢥͬͨʁ
None
ࣗݾհ ɾKohei Tabata(@nerd0geek1) ɾSaib Studio LLC ɾiOS/MacOS/tvOS Developer ɾFastlaneେ͖ ɾAKIBA.swiftେ͖
Said Studio LLC Kohei Tabata Next! Remote quick-zip plus Sleeple
͓͔Γ͚ͨͩΖ͏͔…
None
Ͳ͏͍͔ͬͯͨʁ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞ ɾcrashlytics/pilotͰcrashlytics/iTunes ConnectΞοϓϩʔυ
Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞ ɾcrashlytics/pilotͰcrashlytics/iTunes ConnectΞοϓϩʔυ
Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞ ɾcrashlytics/pilotͰcrashlytics/iTunes ConnectΞοϓϩʔυ
Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞ ɾcrashlytics/pilotͰcrashlytics/iTunes ConnectΞοϓϩʔυ
Xcode8ʹ͢Δͱ CircleCI্Ͱ ɾcocoapods/carthage ActionͰϥΠϒϥϦΛηοτΞοϓͯ͠ ɾscanͰςετ ɾsighͰ࠷৽ͷProvisioning Profileμϯϩʔυͯ͠ ɾgymͰipaϑΝΠϧΛ࡞ ɾcrashlytics/pilotͰcrashlytics/iTunes ConnectΞοϓϩʔυ
΄΅ࢮʘ(^o^)ʗśƂŦ
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Λར༻͢ΔΑ͏ʹઃఆ
scanίέΔ ɾXcode7·ͰdestinationͰࢦఆ͍ͯͨ͠(OSɺ)ͰςετΛ ɹ࣮ߦ͢ΔΑ͏ʹͳ͍͕ͬͯͨɺXcode8͔Βແࢹ͞ΕΔΑ͏ʹɻ ɾ·ͨɺCircleCI্Ͱderived_data_path͕௨ৗͷ ɹ~/Library/Developer/Xcode/DerivedData/Ͱͳ͘ɺ”/”ͱͳΓɺ ɹpermissionͷͰςετ͕ίέΔΑ͏ʹɻ ɹˠదͳΛSCAN_DERIVED_DATA_PATHʹઃఆͯ͠ରԠ
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
pilotίέΔ ɾͲͪΒ͔ͱݴ͑ɺfastlaneΑΓiTunes Connectͷมߋɻ ɾpush௨ʹ͍ͭͯɺentitlements͕ͳͯ͘௨͍ͬͯͨͷ͕ ɹඞਢʹɻ ɾBluetoothΛ༻͍ͯͨͨ͠Ίɺ ɹNSBluetoothPeripheralUsageDescriptionΛInfo.plistʹؚΊΔ ɹ͜ͱ͕ඞਢʹɻ
·ͱΊ ɾXcode8 x Swift2.3ͦΜͳʹେม͡Όͳ͍ ɾXcode8 x Swift3.xΤίγεςϜͷߋ৽ͪɻ ɾXcodeपลͷࣗಈԽؔɺ·ͩͪΐͬͱෆ҆ఆ ɹཕ͋Β͔ͨ౿Έൈ͍ͨʂ(ന
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
ࢀߟ ɾίϚϯυϥΠϯπʔϧͰ͋ΒΏΔݴޠ͕ΘΕ͍ͯͯߦΛଌఆ͢Δ ɹ(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)