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
Appleにおけるプライバシーの全容を把握する
Search
akatsuki174
September 01, 2023
Technology
0
5.8k
Appleにおけるプライバシーの全容を把握する
2023/09/01(金) iOSDC Japan 2023 day0
akatsuki174
September 01, 2023
Tweet
Share
More Decks by akatsuki174
See All by akatsuki174
逆向きUIの世界 〜iOSアプリのRTL言語対応〜
akatsuki174
1
240
逆向きUIの世界〜AndroidアプリのRTL言語対応〜
akatsuki174
1
220
私が変えてきたこと、変えなかったこと
akatsuki174
2
880
最近読んでいる本-読書シェア会vol.1
akatsuki174
2
210
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
110
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
470
オフライン勉強会ぼっち対策
akatsuki174
1
670
Xcode 15の新機能
akatsuki174
0
2.8k
AndroidにもSelect Photosがやってきた
akatsuki174
0
1.4k
Other Decks in Technology
See All in Technology
非同期処理実行基盤 Delayed脱出 → Solid Queue完全移行への旅路。
srockstyle
3
1.6k
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
240
Pure Goで体験するWasmの未来
askua
1
170
Geospatialの世界最前線を探る [2025年版]
dayjournal
3
470
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
120
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
430
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
220
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
0
160
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
1
350
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
180
GA technologiesでのAI-Readyの取り組み@DataOps Night
yuto16
0
260
#普通の文系サラリーマンチャレンジ 自分でアプリ開発と電子工作を続けたら人生が変わった
tatsuya1970
0
920
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
27
2k
Become a Pro
speakerdeck
PRO
29
5.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Code Reviewing Like a Champion
maltzj
525
40k
Code Review Best Practice
trishagee
72
19k
Building an army of robots
kneath
306
46k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Rails Girls Zürich Keynote
gr2m
95
14k
4 Signs Your Business is Dying
shpigford
185
22k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
GitHub's CSS Performance
jonrohan
1032
460k
Transcript
Appleʹ͓͚Δ ϓϥΠόγʔͷ શ༰ΛѲ͢Δ iOSDC Japan 2023 day0 @akatsuki174
ࣗݾհ
• ˏakatsuki174 • גࣜձࣾΏΊΈॴଐ • Android/iOS/FlutterΤϯδχΞ • 1ࣇͷ • 9݄Լ०ʹୈೋࢠग़࢈༧ఆͷɹɹ
ͨΊɺࣄલऩʹͯࢀՃ
ࠓͷ
None
͓ॻ͖ • ϓϥΠόγʔશମͷ • ϓϥΠόγʔํɺతจࣈྻɺ৹ࠪΨΠυϥΠϯɺɹ Human Interface Guidelines etc… •
ݸʑͷݖݶͷ • ҐஔใɺτϥοΩϯάɺࣸਅ/ಈըɺ࿈བྷઌ etc…
None
• ൣғΛiOSͷຊମʹߜͬͯ·͢ • watchOSͳͲͷଞͷϓϥοτϑΥʔϜɺApp Clips, Widgetɹ ͳͲର֎Ͱ͢ • ࣌ؒͷ্ؔ…͢·Μ… •
۩ମతͳ࣮ํ๏ΘΓͱ͞Βͬͱྲྀ͠·͢ ҙॻ͖
Apple͕ߟ͑Δ ϓϥΠόγʔͱ
• ϓϥΠόγʔجຊతͳਓݖ • Ϣʔβ͔Βͷ৴པΛҡ࣋͢Δ্Ͱॏཁ ϓϥΠόγʔʹର͢Δߟ͑ IUUQTXXXBQQMFDPNKQQSJWBDZ
• ຖϓϥΠόγʔɺηΩϡϦςΟʹؔ͢Δಈը͕ग़͍ͯΔ • WWDC23 5ຊ • WWDC22 13ຊ • WWDC21
18ຊ • WWDC20 14ຊ etc… ϓϥΠόγʔͱWWDC IUUQTEFWFMPQFSBQQMFDPNWJEFPTQSJWBDZTFDVSJUZ
• σʔλͷ࠷খԽ • ΦϯσόΠεॲཧ • ಁ໌ੑͱཧ • ػີอ࣋ ϓϥΠόγʔอޢ4ݪଇ
• ඞཁͳ࣌ʹɺඞཁͳ͚ͩσʔλΛऔಘ͢Δ • ྫɿ • ҐஔใΛʮҰ͚ͩڐՄʯ • ҐஔใͷػೳΛར༻͢Δ·ͰɺϢʔβʹڐΛٻΊͳ͍ σʔλͷ࠷খԽ
• ػີσʔλΛͰ͖Δ͚ͩϩʔΧϧͰॲཧ͢Δ • ΦϑϥΠϯͰ͑Δɺ௨৴͕ͳ͍ߴͳͲͷϝϦοτ͋Δ • ྫɿ • SiriͷԻೝࣝϞσϧ • Create
MLʹΑΔػցֶश ΦϯσόΠεॲཧ
• σʔλͷ༻ํ๏ڞ༗ઌΛ໌֬ʹ͢Δ • ࣗͷҙࢥͰσʔλΛཧ͢Δ • ྫɿ • Sign in with
Apple • AppϓϥΠόγʔϨϙʔτʢޙड़ʣ • ϓϥΠόγʔϥϕϧʢޙड़ʣ ಁ໌ੑͱཧ
• ҆શʹอɺཧ͢Δ • ྫɿ • ੜମೝূ ػີอ࣋ʢηΩϡϦςΟʣ
• ࣍ͷΑ͏ͳใʹΞΫηε͍ͨ͠ͱ͖ɺγεςϜΞϥʔτΛɹ ग़ͯ͠ڐՄΛಘΔඞཁ͕͋Δ • ҐஔใɺϔϧεέΞɺͦͷଞݸਓΛಛఆͰ͖Δใ • ΧϝϥϚΠΫͳͲͷσόΠεͷػೳ • BluetoothσόΠεͳͲͷอޢ͞ΕͨϦιʔε •
σόΠεͷࠂࣝผࢠ ඞཁͳͱ͖ʹڐՄΛಘΔ
ৄ͘͠…
ৄ͘͠…
purpose strings ʢతจࣈྻʣͷॻ͖ํ
• ڐՄͷϦΫΤετΛ͢ΔγεςϜΞϥʔτʹදࣔ͞ΕΔจࣈྻ • Info.plistͰઃఆ͢Δ తจࣈྻͱ
• σʔλͷ༻్͕۩ମతʹઆ໌͞Ε͍ͯΔ͔ • σʔλͷ༻ํ๏ͷྫ͕ࣔ͞Ε͍ͯΔ͔ తจࣈྻͷApp Store৹ࠪ؍
App Tracking TransparencyΞϥʔτྫ ༻్❌ ༻ํ๏❌ τϥοΩϯάΛڐՄ͠ ͳ͍߹ͷ͜ͱʹ͍ͭ ͯݴٴ͍ͯ͠Δ👌 IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZUFDIUBMLT ༻్⭕
༻ํ๏⭕
ΧϝϥΞϥʔτྫ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZUFDIUBMLT ͗͢Δ ؆ܿ👌
ৄ͘͠…
Ґஔใ
ϦΫΤετྫ ༻தͷΈڐՄ ৗʹڐՄ
γεςϜΞϥʔτྫ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED ༻தͷΈڐՄ ৗʹڐՄ
• ͬ͘͟Γݴ͏ͱҎԼͷύλʔϯ͕ଘࡏ͢Δ • ະઃఆ • ʮৗʹڐՄʯ • ʮҰ࣌తʹڐՄʯ • ʮ༻தͷΈڐՄʯ
• ʮڐՄ͠ͳ͍ʯ ڐՄঢ়ଶ
ڐՄεςʔλεભҠਤ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
• ࠷খݶͷҐஔใఏڙͰࡁΉΑ͏ɺʮਖ਼֬ͳҐஔใʯΛΦϑʹ ͢Δػೳ • ΞϓϦଆͰΦϓτΞτ͢Δ͜ͱͰ͖ͳ͍ • iOS 14͔Βొ ਖ਼֬ͳҐஔใ
γεςϜΞϥʔτྫ
• UIKitCLLocationButtonɺSwiftUILocationButton • ʮඞཁͳͱ͖ʹҰ͚ͩҐஔใͷΞΫηεཁٻΛ͢Δʯ͕؆୯ ʹ࣮ݱͰ͖Δ • ͜ͷϘλϯࣗମʹҐஔใऔಘػೳͳ͍ • iOS 15Ҏ্Ͱ༻Մೳ
LocationButton
None
γεςϜΞϥʔτྫ
ৄ͘͠…
App Tracking Transparency
IUUQTEFWFMPQFSBQQMFDPNKQBQQTUPSFVTFSQSJWBDZBOEEBUBVTF γεςϜΞϥʔτྫ
• ࣍ͷ͜ͱΛ͢Δ࣌ϢʔβͷڐՄΛٻΊɺ AppTrackingTransparencyϑϨʔϜϫʔΫΛ༻͠ͳ͚ΕͳΒ ͳ͍ • IDFAʹΞΫηε͢Δ • ϢʔβΛτϥοΩϯά͢Δ • iOS
14.5Ҏ߱ରԠඞਢ App Tracking TransparencyʢATTʣͱ
• Identi fi er for Advertisersʢࠂࣝผࢠʣ • ݸʑͷσόΠεʹׂΓͯΒΕΔҰҙͷࣝผࢠ • ࠂओɺࠂωοτϫʔΫIDFAΛͬͯใΛऩू͠ɺࠂ
λʔήςΟϯάͳͲʹ׆༻͢Δ • iOS 14.5͔ΒσϑΥϧτͰऔΕͳ͘ͳͬͨ IDFAͱ
• ΞϓϦͰऩूͨ͠ಛఆͷΤϯυϢʔβ·ͨσόΠεʹؔ͢Δ σʔλΛ • αʔυύʔςΟͷσʔλͱඥ͚Δߦҝ • σʔλϒϩʔΧʔʹ͢ߦҝ τϥοΩϯάͱ
ϦΫΤετྫ
؆ܿʹ·ͱ·ͬͯΔࢿྉ IUUQTTQFBLFSEFDLDPNLPPPPPUBLFNJOJEGBBUUTLBEOFUXPSL
IUUQT[FOOEFWTFSJNBBSUJDMFTCEEBB
ࣸਅ/ಈը
γεςϜΞϥʔτྫ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED ࣸਅΛબʜ
• iOS 14͔ΒPHAuthorizationStatusʹ.limited͕૿͑ͨ • Ϣʔβ͕બͨࣸ͠ਅ͔͠ΞϓϦ͔ΒΞΫηεͰ͖ͳ͍ঢ়ଶΛ࡞ Δ͜ͱ͕Ͱ͖Δ ʮࣸਅΛબ…ʯ
ϦΫΤετྫ ಡΈॻ͖ ॻ͖ࠐΈͷΈ ॻ͖ࠐΈͷΈ ಡΈॻ͖
• ࣸਅಈըϐοΧʔΛදࣔͰ͖Δ • Photo LibraryʹΞΫηε͠ͳ͍ͷͰɺγεςϜΞϥʔτΛɹ ग़͢ඞཁ͕ͳ͍ • ࣸਅಈըΛѻ͏ͳΒ͜ͷํ๏͕ਪ͞ΕΔ • iOS
14͔Β͑Δ PHPickerViewController
IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
• PHPickerViewControllerSwiftUI͔Β͑ͳ͔ͬͨ • iOS 16͔ΒPhotosPickerΛSwiftUI͔Β͑Δ • ͪΖΜγεςϜΞϥʔτඞཁͳ͠ PhotosPicker
PhotosPicker༻ྫ
ৄ͘͠…
࿈བྷઌ
γεςϜΞϥʔτྫ
ϦΫΤετྫ
• ࿈བྷઌͷϐοΧʔΛදࣔͰ͖Δ • ϢʔβͷڐՄΛಘΔඞཁͳ͍ CNContactPickerViewController
None
CNContactPickerViewController༻ྫ
AppϓϥΠόγʔϨϙʔτ
• ΞϓϦ͕ͲΜͳσʔλʹΞΫηε͍ͯ͠Δ͔͕Θ͔ΔϨϙʔτ • ઃఆΞϓϦ͔Β֬ೝͰ͖Δ • σϑΥϧτͰOFF • JSONϑΝΠϧͱͯ͠ΤΫεϙʔτͰ͖Δ • iOS
15Ҏ߱ʹࡌ AppϓϥΠόγʔϨϙʔτͱ
None
None
Privacy Nutrition Labels ʢϓϥΠόγʔϥϕϧʣ
• Ϣʔβ͕ΞϓϦΛμϯϩʔυ͢ΔલʹΞϓϦͷϓϥΠόγʔɹ ํΛΔͨΊͷͷ • αʔυύʔςΟSDKͷ༰өͤ͞Δඞཁ͕͋Δ • App StoreͰݟΔ͜ͱ͕Ͱ͖Δ • WWDC20Ͱൃද͞Εͨ
• 2021ͷय़͔ΒରԠඞਢ ϓϥΠόγʔϥϕϧͱ
ϓϥΠόγʔϥϕϧྫ IUUQTXXXBQQMFDPNKQQSJWBDZMBCFMT
ϓϥΠόγʔϥϕϧྫ IUUQTXXXBQQMFDPNKQQSJWBDZMBCFMT
ৄ͘͠…
࣮ࡍͷରԠͪ͜Β IUUQTTQFBLFSEFDLDPNGSPNBUPNJPTEDKBQBO
Privacy Manifests
• αʔυύʔςΟSDK͕ͲΜͳϓϥΠόγʔใΛऩू͍ͯ͠Δͷ ͔ΛΞϓϦ։ൃऀ͕Δͷେม ϓϥΠόγʔϥϕϧରԠେม
• WWDC23Ͱൃද͞Εͨ • SDK͕ऩू͢ΔσʔλλΠϓɺͲͷΑ͏ʹ༻͞ΕΔ͔ͳͲ͕ એݴ͞Ε͍ͯΔ • αʔυύʔςΟSDK։ൃऀPrivacyInfo.xcprivacyͱ͍͏໊લͷ ϑΝΠϧΛ࡞͢Δ Privacy Manifests͕ొ
• ϓϩδΣΫτͷશͯͷPrivacy ManifestsΛूͨ͠Ϩϙʔτ • Xcode 15ͰɺApp Store͚ϏϧυΛ͢Δ࣌ʹग़ྗͰ͖Δ • ͜ΕΛݩʹϓϥΠόγʔϥϕϧΛهड़͢Δͱྑ͍ Privacy
report
Privacy report IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
• ར༻͢Δͷʹʮཧ༝͕ඞཁͳAPIʯ • ༻͢Δ߹ɺͦͷཧ༝ΛPrivacy Manifests্Ͱ1ͭҎ্બ ͢Δඞཁ͕͋Δ Required Reason API
• 2023ळҎ߱ɺબ͍ͯ͠ͳ͚Ε։ൃऀʹ௨͕ߦ͘ • 2024य़Ҏ߱ɺ৽ن/طଘ྆ํͷΞϓϦʹબ͕͚ٛΒΕΔ Required Reason
• File timestamp APIs • System boot time APIs •
Disk space APIs • Active keyboard APIs • User defaults APIs Required Reason APIϦετ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOCVOEMFSFTPVSDFT QSJWBDZ@NBOJGFTU@ fi MFTEFTDSJCJOH@VTF@PG@SFRVJSFE@SFBTPO@BQJ
ৄ͘͠…ʁ IUUQTGPSUFFKQJPTEDKBQBOQSPQPTBMECCFCCEFBECD
ৄ͘͠…
ϓϥΠόγʔΫΠζ
• ৹ࠪΨΠυϥΠϯɺHuman Interface GuidelinesΛݩʹΫΠζΛ ࡞ • ࣍ͷ֤ઃਖ਼͍͠Ͱ͠ΐ͏͔ʁ ϓϥΠόγʔͷཧղΛਂΊΑ͏
τϥοΩϯάͷڐՄΛಘΔͨΊʹγεςϜΞϥʔτΛग़͢߹ɺɹ τϥοΩϯάΛڐՄͯ͠΄͍͠ཧ༝Λઆ໌͢Δը໘ΛલʹڬΜͰ ྑ͍ ⭕ or ❌ Q1.
લʹը໘ΛڬΜͰOKɻ Human Interface GuidelinesͰʮϓϨΞϥʔτɹ ը໘ɺΠϯυɺϏϡʔʯʹͯɺͦͷද͕ࣔຬͨ ͖͢ཁ݅Λ͍ࣔͯ͠Δɻ ͨͩ͠ɺʮΩϟϯηϧʯͳͲͷճආϘλϯΛදࣔɹ ͢ΔͷNGɻ A1. ⭕
IUUQTEFWFMPQFSBQQMFDPNKQEFTJHOIVNBOJOUFSGBDFHVJEFMJOFTQSJWBDZ1SF BMFSUTDSFFOTXJOEPXTPSWJFXT
࣍ͷέʔετϥοΩϯάʹ֘͢Δ ⭕ or ❌ ʮࣗͷΞϓϦͰऩूͨ͠ใͱαʔυύʔςΟͷσʔλͷඥ ͚͕ϢʔβͷσόΠε্ͰͷΈߦΘΕɺϢʔβσόΠεΛಛఆͰ ͖ΔΑ͏ͳํ๏ͰσόΠεͷ֎෦ʹૹ৴͞ΕΔ͜ͱ͕ͳ͍ʯ Q2.
σόΠεͷ֎෦ʹૹ৴͞Εͯͳ͍ͷͰτϥοΩϯάʹ֘͠ͳ͍ɻ AppTrackingTransparencyϑϨʔϜϫʔΫΛͬͯϢʔβ͔ΒڐՄ ΛಘΔඞཁͳ͍ɻ A2. ❌ IUUQTEFWFMPQFSBQQMFDPNKQBQQTUPSFVTFSQSJWBDZBOEEBUBVTF
LocationButtonΛλοϓͯ͠Ґஔใͷ༻ΛڐՄ͠·ͨ͠ɻ ͜ͷ߹ɺ࣍ճىಈ࣌ʹλοϓͯ͠࠶γεςϜΞϥʔτ͕ɹ ग़ͯ͘Δ͜ͱͳ͍ ⭕ or ❌ Q3.
࠶γεςϜΞϥʔτ͕ग़ͯ͘Δ͜ͱͳ͍ɻ Ϣʔβ͕ΞϓϦΛΩϧ͢ΔͱڐՄແޮʹͳΔ͕ɺ࣍ʹ LocationButtonΛλοϓͨ͠ͱ͖ʹ·ͨڐՄ͕༗ޮʹͳΔɻ A3. ⭕ IUUQTEFWFMPQFSBQQMFDPNKQEFTJHOIVNBOJOUFSGBDFHVJEFMJOFT QSJWBDZ-PDBUJPOCVUUPO
ݱࡏ͕Θ͔Βͳ͍ͱҙຯ͕ͳ͍ΞϓϦͳͷͰɺҐஔใͷڐ ͕ಘΒΕͳ͔ͬͨΒͦͷػೳ͑ͳ͍Α͏ʹͨ͠ ⭕ or ❌ Q4.
ڐՄ͕ಘΒΕͳͯ͘ػೳΛར༻Ͱ͖ΔΑ͏ͳସखஈΛߟ͑Δ ͖ɻ ྫ͑༣ศ൪߸ΛखಈͰೖྗ͓͓ͤͯ͞ΑͦͷҐஔΛѲ͢Δɹ ͜ͱͰସͰ͖ͳ͍͔ͳͲΛݕ౼͢Δɻ A4. ❌ IUUQTEFWFMPQFSBQQMFDPNKQBQQTUPSFSFWJFXHVJEFMJOFTQSJWBDZ
ECαʔϏεͷΞϓϦΛ։ൃ͍ͯ͠·͢ɻੜΫʔϙϯΛɹ ͍ͨ͠ͷͰɺϢʔβͷੜཝΛඞਢ߲ʹͨ͠ɻ⭕ or ❌ Q5.
ੜཝΛඞਢʹ͢Δ͖Ͱͳ͍ɻ ECΞϓϦͷओཁػೳγϣοϐϯάͰ͋Γɺੜ͕Θ͔Βͳ͘ ͯར༻Ͱ͖ΔͣɻΑͬͯɺҙ߲ʹ͢Δͷ͕ྑ͍ɻ A5. ❌ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZUFDIUBMLT
͍͍తจࣈྻ͕ࢥ͍ු͔ͳ͔ͬͨͷͰɺతจࣈྻΛઃఆɹ ͤͣʹ৹ࠪఏग़ͨ͠ɻ⭕ or ❌ Q6.
తจࣈྻඞͣઃఆ͢Δɻ ઃఆͤͣʹ৹ࠪఏग़ͯ͠ɺϦδΣΫτ͞Εͯ͠·ͬͨྫ͋Δɻɹ ͦͦઃఆ͠ͳ͍ͱΫϥογϡͯ͠͠·͏߹͋Δɻ A6. ❌
·ͱΊ
• ϓϥΠόγʔΛૄ͔ʹ͠ͳ͍Α͏ʹ͠Α͏ • ϓϥΠόγʔ4ݪଇΛक͍ͬͯΔ͔ࣗ͠Α͏ • దͳతจࣈྻΛઃఆ͠Α͏ ΞϓϦΛ࡞Δͱ͖
એ
• डΛ௨ա͙ͯ͢͠ͷॴʹ͋Γ·͢ • ΫΠζ/Ξϯέʔτʹճ͢ΔͱΠΠίτ͕͋ΔͷͰͥͻૣΊʹ ΏΊΈεϙϯαʔϒʔεʹ͓ӽ͍ͩ͘͠͞ • ΤϯδχΞืूͯ͠ΔͷͰڵຯ͋ΔํͥͻͲ͏ͧ ΏΊΈεϙϯαʔϒʔεΛग़ͯ͠·͢
͓ΘΓ