iOSDC 2017資料
ۀΞϓϦͷࡳProgramable KIOSK modeେશ9/17 iOSDC 2017taiki komaba(@r_plus)
View Slide
UBJLJLPNBCB[email protected])"/%4-"#*/$
,*04,BLB4JOHMF"QQ.PEF
ProgramableRequireSupervisionRequireMDMGuidedAccessNo No NoSingleAppModeNo Yes NoࣗతSAMYes Yes YesࣗಈධՁઃఆYes No No
Guided Access
SS͓͘
GUIDED ACCESS▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ ϘϦϡʔϜϘλϯ▸ ΩʔϘʔυ▸ λον▸ ը໘ճస
GUIDED ACCESS▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ ϘϦϡʔϜϘλϯ▸ ΩʔϘʔυ▸ λον▸ ը໘ճస⚠ଟͷσόΠε੍ޚʹ͔ͳ͍
SingleAppMode
Apple Configurator
MDM
SINGLE APP MODE▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ ϘϦϡʔϜϘλϯ▸ ΩʔϘʔυ▸ λον▸ ը໘ճస▸ AssistiveTouch▸ ζʔϜ▸ ৭స▸ VoiceOver
SINGLE APP MODE▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ ϘϦϡʔϜϘλϯ▸ ΩʔϘʔυ▸ λον▸ ը໘ճస▸ AssistiveTouch▸ ζʔϜ▸ ৭స▸ VoiceOverଟͷσόΠεʹEFQMPZՄೳ
SINGLE APP MODE▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ ϘϦϡʔϜϘλϯ▸ ΩʔϘʔυ▸ λον▸ ը໘ճస▸ AssistiveTouch▸ ζʔϜ▸ ৭స▸ VoiceOverଟͷσόΠεʹEFQMPZՄೳ͔͠͠"1*͕͑ͳ͍
ࣗతSingleAppMode
ࣗతSINGLE APP MODE▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ MultitaskingΞϓϦͷΈར༻Մʹ͢ΔతແޮԽͰ͖Δ߲͕গͳ͘ઃఆෆՄ
ࣗಈධՁઃఆ(Automatic Assessment Configuration)
ࣗಈධՁઃఆ▸ ϗʔϜϘλϯ▸ εϦʔϓ/ϩοΫϘλϯ▸ Multitasking▸ ࣗಈิ/εϖϧνΣοΫ/༧ଌม/ΩʔϘʔυγϣʔτΧοτ/ΫϦοϓϘʔυ/Իೖྗࢼݧར༻ͷͨΊͷ,JPTLΞϓϦͷΈར༻ՄʹՃ͑ͯճิॿʹͳΔΑ͏ͳػೳͷແޮԽ
)PXUPFOBCMF QSPHSBNBCMF
func UIAccessibilityRequestGuidedAccessSession(_ enable: Bool, completionHandler: @escaping (Bool) -> Void)
UIAccessibilityRequestGuidedAccessSession(true) { success inprint(success)}⚠completionHandler͕࣮ߦ͞ΕΔ·Ͱඦmsఔ͔͔Δ
-PDLBCMF
εϦʔϓϩοΫϘλϯແޮԽର
͔ͨ͠͠·ʹϩοΫͰ͖Δ
ϩοΫͰ͖·ͨ͠
Ͱɺ͜Εηʔϑ
ը໘ফ౮͞Ε͍ͯΔ͚ͩϩοΫղআը໘ग़ͳ͍
,JPTL$SBTI
,JPTLϞʔυͰΫϥογϡͨ࣌͠Ͳ͏ͳΔ͔ʁ
ϗʔϜը໘ʹભҠޙࣗಈతʹΞϓϦ͕ىಈ
(͏·͘ىಈ͠·ͨ͠)
ఆظతͳFYJU ͰϝϞϦͷΫϦΞ͕Մೳ
ͱࢥ͍͖ɾɾɾ
ΘΓͱىಈ͠ͳ͍
͔͠
ΞϓϦΛλοϓͯ͠ىಈ͠ͳ͍
શΞϓϦɺλοϓͯ͠ىಈ͠ͳ͍☠
XPSLBSPVOE͋Γ·͢
,JPTLΦϑͰͷ$SBTIͳΒൃੜ͠ͳ͍
func NSSetUncaughtExceptionHandler(_:((NSException) -> Void)?)
func NSSetUncaughtExceptionHandler { exception inUIAccessibilityRequestGuidedAccessSession(false){ _ in }}
4XJGUͷΫϥογϡͰݺΕͳ͍func NSSetUncaughtExceptionHandler { exception inUIAccessibilityRequestGuidedAccessSession(false){ _ in }}
4XJGUͷΫϥογϡ OJMVOXSBQFUD⚡γάφϧ⚡͕ඈͿ͚ͩɻ
SIGNALS▸ SIGHUP▸ SIGINT▸ SIGTRAP▸ SIGABRT▸ SIGKILL▸ SIGSEGV▸ …NBOTJHOBMͰ৭ʑݟΕ·͢
⚡γάφϧ⚡Λτϥοϓ͠Α͏
import Darwinfunc sigaction(_: Int32,_: UnsafePointer!,_: UnsafeMutablePointer!) -> Int32int sigaction(int sig,const struct sigaction *restrict act,struct sigaction *restrict oact);JO$NBOTJHBDUJPOͰ৭ʑݟΕ·͢*#.4XJGU#MVF4JHOBMT͕Φεεϝ
·ͱΊ▸ KioskϞʔυʹ4छྨ͋Δɺ੍ݶͰ͖ΔػೳͦΕͧΕҧ͏▸ API͕͑Δͷͱ͑ͳ͍KioskϞʔυ͕͋Δ▸ KioskϞʔυͰϓϩηε͕ऴྃ͢ΔͱࣗಈͰ࠶ىಈ͞ΕΔ▸ ࣗಈతͳ࠶ىಈத్ͳঢ়ଶʹͳΔࣄ͕͋Δ▸ த్ͳঢ়ଶʹͳΔͱ٧Ή▸ ٧·ͳ͍ͨΊʹNSExceptionͱSIGNALΛΩϟον͠Α͏ʂ
͓ΘΓɻ