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
6.5k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xcode8 で開発はどうかわったのか
iOSオールスターズ2
https://eventdots.jp/event/602872
Toshihiro Morimoto
November 20, 2016
More Decks by Toshihiro Morimoto
See All by Toshihiro Morimoto
魅せるデバッグ技術
dealforest
4
1.6k
LLDB の世界からみた Swift
dealforest
4
5.6k
Xcode で快適なデバッグライフを追い求める
dealforest
29
25k
Intrducing debug in WWDC2016
dealforest
3
840
swift build と Xcode での Build の違い
dealforest
3
2.2k
RIP Xcode Plugin 🙏
dealforest
0
4.9k
Introducing Xcode Editor Extension
dealforest
2
4.7k
Introducing Anglerfish
dealforest
2
3.6k
音声ガイダンスを導入した話
dealforest
0
4k
Other Decks in Technology
See All in Technology
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
0
130
When Does a Local Qwen Start to Break
morshoto
0
180
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
120
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
160
grill-me(grilling):AI駆動開発を超助けてくれるSkill / grill me
mathbullet
0
110
enechainの内製セルフサービスプラットフォーム
hiyosi
0
120
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
350
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
1k
V8コントリビュート超入門
riyaamemiya
0
140
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
130
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
510
Un-Boring Meetings
codingconduct
0
410
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
For a Future-Friendly Web
brad_frost
183
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Rails Girls Zürich Keynote
gr2m
96
14k
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 ͱҟͳΓࠓ͔ΒͰɺ͙͢ʹͰ͑Δͷ͕ͨ ͘͞Μ͋Γ·͢ɻ
গ͠ͰσόοάϥΠϑ͕ շదʹͳΕ͍Ͱ͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠