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
Toshihiro Morimoto
November 20, 2016
Technology
10
5.7k
Xcode8 で開発はどうかわったのか
iOSオールスターズ2
https://eventdots.jp/event/602872
Toshihiro Morimoto
November 20, 2016
Tweet
Share
More Decks by Toshihiro Morimoto
See All by Toshihiro Morimoto
魅せるデバッグ技術
dealforest
4
1.4k
LLDB の世界からみた Swift
dealforest
4
4.7k
Xcode で快適なデバッグライフを追い求める
dealforest
29
21k
Intrducing debug in WWDC2016
dealforest
3
730
swift build と Xcode での Build の違い
dealforest
3
1.9k
RIP Xcode Plugin 🙏
dealforest
0
4.6k
Introducing Xcode Editor Extension
dealforest
2
4.4k
Introducing Anglerfish
dealforest
2
3.1k
音声ガイダンスを導入した話
dealforest
0
3.7k
Other Decks in Technology
See All in Technology
元インフラエンジニアに成る / Human Resources to Human Relations
bobtani
4
910
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
Next'24 事例セッションの紹介とクラウド資格を活用したキャリア形成について語りMuscle
yasumuusan
1
440
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
170
Meta Quest 3 で動く桜マシマシ WebXR アプリを IBM Cloud Code Engine と Babylon.js で作った話
1ftseabass
PRO
0
120
コンテナセキュリティの基本と脅威への対策
kyohmizu
3
760
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
510
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
350
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.4k
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
720
DevOpsDays History and my DevOps story
kawaguti
PRO
9
2.5k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
Ruby is Unlike a Banana
tanoku
96
10k
Embracing the Ebb and Flow
colly
80
4.1k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Rails Girls Zürich Keynote
gr2m
91
13k
The Cult of Friendly URLs
andyhume
74
5.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Designing for humans not robots
tammielis
248
25k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Agile that works and the tools we love
rasmusluckow
325
20k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
KATA
mclloyd
15
12k
Transcript
2016/11/20 iOSΦʔϧελʔζ2 @dealforest Toshihiro Morimoto Xcode8 Ͱ։ൃͲ͏͔Θͬͨͷ͔
ࣗݾհ
Works
ຊͷΞδΣϯμ • Visual Debugging • App Signing • Xcode Plugin/Extension
• ͓·͚ - TSan and Static Analysis
ࠓ͠ͳ͍ • iOS • Storyboard • Swift • Xcode 7.3.1
-> Xcode 8 ͷҠߦ
Visual Debugging
Visual Debugging • View Debugging • FPS Performance Gauge •
Memory Graph Debugging
View Debugging
View Debugging • ϘλϯΛԡ͔ͯ͠Βͷ࣮ߦ͕ 70% ͘ͳͬͨ • transform, blur ͞Ε͍ͯͯਖ਼֬ʹϨϯμϦϯά͞ΕΔ
• ΫϥεఆٛʹඈΔ • ΞυϨεͰϑΟϧλϦϯάͰ͖Δ • ݱࡏͷ AutoLayout ͷ੍Λ֬ೝͰ͖Δ
࣮ࡍʹ༗ޮʹ AutoLayout ͷ֬ೝ͕ग़དྷΔ
FPS Performance Gauge
FPS Performance Gauge
Memory Graph Debugging
͜Ε͕ͱͯͭͳ͘ศརʂʂʂ
Memory Leak Λ ݟ͚ͭΔͱ͖ʹྗΛൃش͠·͢ʂ
͜Ε͚ͩͷͨΊʹ Xcode 8 ʹҠߦͨ͠ͱݴͬͯɹɹ աݴͰ͋Γ·ͤΜ
ͳʹΑΓோΊ͍ͯΔͱ ςϯγϣϯ͕͕͋Γ·͢
! Λλοϓ͢Ε leak ͍ͯ͠Δ object Λදࣔ
410 - Visual Debugging with Xcode
App Signing
Signing Certificate per Mac
ؾܰʹ Reset Λԡͯ͠͠·͏ͱ
͋Εʁʁ ϏϧυͰ͖ͳ͘ͳͬͨΜ͚ͩͲ…
((ƅЧƅ)); ŜƄŞŲƄſ
Signing Certificate per Mac
Signing Certificate per Mac
Signing in Xcode
Signing in Xcode
None
Signing in Xcode
Xcode 7
Xcode 8
Apple ͕ఏএ͢Δ Best Practice
Development • Use automatic • Add all developers to team
• Use the capabilities tab
Manual • Don’t set CODE_SIGN_IDENTITY • Use the new general
tab UI • Use the capabilities tab • Migrate to automatic
401 - What’s New in Xcode App Signing
͍͍͜ͱ͔ͬΓʹฉ͑͜Δʂʂ
·ɺͦΜͳΘ͚ͳ͍Ͱ͢ΑͶ
fastlane, Enterprise ͕ བྷΜͰ͘ΔͱΊΜͲ͍͘͞ʂʂ
ΊΜͲ͍͘͞ϙΠϯτ • Team ͕ҟͳΔ - Automatic Signing ͩͱෳνʔϜΛ·ͨ͛ͳ͍ • BUNDLE
IDENTIFIER ͕ҟͳΔ - Company ΞΧϯτͰ Automatic Signing Ͱɹ ϏϧυͰ͖Δ - Automatic Signing Ͱ archive ͕Ͱ͖ͳ͍
͔͠͠։ൃ࣌ Automatic Signing Λ͍͍ͨʂ
Ͳ͏͢Δͷ͔
Enterprise ରԠํ๏ -खಈϏϧυ- 1. ֘͢Δ Cert, Provisioning Profile ΛΠϯετʔϧ 2.
Customised Signing Λ͏ 3. ༻ͷ Configuration(scheme) ʹ Provisioning Profile Λબ 4. archive -> export
Enterprise ରԠํ๏ -fastlane- खಈϏϧυͱಉ͡Α͏ͳ͜ͱΛ͢Ε͍͍ 1. gym Ͱ࣮ߦ͢Δલʹ fastlane-plugin- update_project_codesigning Λͬͯ
Customised Signing ʹมߋ 2. Cert, Provisioning Profile ͷࢦఆΛ xcconfig ʹॻ͍ͯ ͓͘ 3. ༻ͷ Configuration ʹ xcconfig Λࢦఆ͓ͯ͘͠ 4. gym Ͱ࣮ߦ͢Δޙʹ Automatic Signing ʹมߋ
xcconfig ͷαϯϓϧ CODE_SIGN_IDENTITY = 1Q5231V7YW // CODE_SIGN_IDENTITY = iPhone Distribution:
dealforest (1Q5231V7YW) PROVISIONING_PROFILE_SPECIFIER = PROVISIONING_PROFILE_app = f3f8281b- a115-4529-8dnd-60e111d92fae PROVISIONING_PROFILE = $(PROVISIONING_PROFILE_$ (WRAPPER_EXTENSION))
͜ͷลΓ͏গ͠ݟ͕ͨ·Ε ϒϩάʹॻ͜͏͔ͳͱࢥ͏ͬͯ·͢
Xcode Plugin/Extension
Xcode Plugin • ඇެࣜͰ Xcode ͷ Plugin Λ࡞Δ͜ͱ͕Ͱ͖·ͨ͠ • Alcatraz
ͱ͍͏ Package Manager ͋Γ·ͨ͠ • Xcode 8 ʹͳ͔ͬͯΒެࣜͰ Xcode Extension ͕ αϙʔτ͞Ε͑ͳ͘ͳΓ·ͨ͠ (ؤுΕ͑Δ)
Xcode 8 Ͱ Xcode Plugin Λ ͏ํ๏
ࢍ൱྆͋Δͱࢥ͍·͕͢
Xcode ͕ Apple ʹΑͬͯॺ໊͞ΕΔ Α͏ʹͳͬͨͷͰॺ໊Λ֎͍͍ͤ
Xcode ͷॺ໊ͷ֎͠ํ • steakknife/unsign ΛͬͯࣗྗͰॺ໊Λ֎͢ https://gist.github.com/dealforest/ c5a5362005bce1a4280c34d18a5bc893 • fpg1503/MakeXcodeGr8Again Λ͏
྆ํͱ͍ͬͯΔ͜ͱಉ͡Ͱ ॺ໊Λ֎͍ͯ͠Δ͚ͩͰ͢
͋ͱ Xcode Plugin ʹ ͍͍ͨ Xcode ͷ UUID ΛՃ͢Δ
UUID ͷՃํ๏ $ find ~/Library/Application\ Support/Developer/ Shared/Xcode/Plug-ins -name Info.plist -maxdepth
3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
Xcode Extension • Xcode 8 ͔Βਖ਼ࣜʹαϙʔτ • ݱঢ় Plugin ͱҟͳΓͰ͖Δ͜ͱݶఆ͞Ε͍ͯΔ
• ΞϓϦؒΛ XPC Ͱ௨৴࣮͍ͯͯ͠͠Δ
Xcode 8 beta ͕ग़ͨ࣌ʹ গ͠Γ্͕͍͕ͬͯͨ...
ࠓ Xcode Extension ͷ͜ͱΛ ݴ͍ͬͯΔਓ୭͍ͳ͍
ͱ͍͏Θ͚Ͱ Xcode Extension ͷ ݱঢ়ʹ͍͓ͭͯ͠͠·͢
Ͳ͏͢Ε͑ΔΑ͏ʹͳΔͷ͔ • Xcode Extension ʹରԠ͍ͯ͠Δ Mac App ΛΠϯ ετʔϧ͢Ε͑ΔΑ͏ʹͳΔ •
App Store or GitHub or DMG Download
ͱ͍͏Θ͚Ͱ App Store ΛݟͯΈ·͠ΐ͏
App Store
(ͭд⊂)ŠƄŢŠƄŢ
App Store
App Store
ʢʀƅЧƅʣ …ʂʁ
ҧ͍͕ͳʹͳ͍ͩͱ…
Xcode Extension Ͱ͋Δ͜ͱ͕ Θ͔Βͳ͍…
ΧςΰϦ͕͋ΔΘ͚Ͱͳ͍͠…
ͭΒ͍…
Sierra ͩͱ͋Δͷ͔… ͱ୶͍ظΛͯ͠·͢
ͦΜͳ͋ͳͨͷͨΊʹ
tib/awesome-xcode-extensions
࣮ࡍʹಈ࡞Ͱ͖Δঢ়ଶʹ ͳ͍ͬͯΔ͔ͷ֬ೝ
System Preference -> Extensions
͓·͚ - TSan and Static Analysis
Thread Sanitizer
Diagnostics Ͱ༗ޮʹ͢Δ
Diagnostics Ͱ༗ޮʹ͢Δ
ͨͩ͑͠Δঢ়گݶΒΕ͍ͯ·͢
None
Static Analysis
Product -> Analyze
412 - Thread Sanitizer and Static Analysis
·ͱΊ Xcode 8 ʹͳ͔ͬͯΒՃ͞Εͨػೳͨ͘͞Μ͋Γ·͢ɻ ຊͦͷҰ෦Λհ͠·ͨ͠ɻ iOS 10 ͱҟͳΓࠓ͔ΒͰɺ͙͢ʹͰ͑Δͷ͕ͨ ͘͞Μ͋Γ·͢ɻ
গ͠ͰσόοάϥΠϑ͕ շదʹͳΕ͍Ͱ͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠