#potatotips #65
バグの再現リポジトリ https://github.com/tattn/WeirdDarkMode-iOS12
Qiitaにこの発表をテキスト化したものを投稿しました https://qiita.com/tattn/items/c56b15ed8d1cea26a955
VRの体を手に入れました https://twitter.com/tanakasan2525/status/1177736175894908928
μʔΫϞʔυରԠͰҙ͖͢͜ͱాதୡ (@tattn)#potatotips #65
View Slide
ాத ୡ / ͨͳͨͭ (@tattn)• Yahoo!Ҋ• iOSΞϓϦΤϯδχΞ@tattn@tanakasan2525@tattnCopyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
࠷ۙɺόʔνϟϧͳମΛखʹೖΕ·ͨ͠Unite Tokyoͱ͍͏ΠϕϯτͰશ3DεΩϟϯͯ͠Β͍·ͨ͠ ॊೈͳମΛखʹೖΕΔͨΊʹϘʔϯΛೖΕΔ࡞ۀ͕େมͰͨ͠ˠIUUQTUXJUUFSDPNUBOBLBTBOTUBUVT
Ҋ iOS 13ϦϦʔεॳʹ μʔΫϞʔυରԠ͠·ͨ͠ IUUQTUXJUUFSDPNUBOBLBTBOTUBUVT
ͭΒΈ͕ࢁΓͩͬͨͷͰ ͦͷҰ෦Λհ͠·͢
ಈ࡞֬ೝڥ• macOS Mojave 10.14.6• Xcode 11.0 (11A420a)ڥґଘͷՄೳੑߴ͍ͨΊɺࡌ͓͖ͤͯ·͢ CatalinaͳΒͬͯΔΑʂͳͲͷݟ͕͋Εڭ͑ͯԼ͍͞ʂ
iOS 11ͰColor Assetsͷ৭Λ औಘͰ͖ͳ͍(ݱࡏमਖ਼͞Ε·ͨ͠)
Xcode 11 GM1ͰΧϥʔΞηοτ͕͑ͳ͔ͬͨ (iOS 11)Xcode 11 GM1ͰϏϧυͨ͠ΞϓϦΛiOS 11Ͱಈ͔͢ͱ UIColor(named:_) ͕ৗʹnilΛฦ͢ʹ·͞Ε·ͨ͠iOS 13ϦϦʔεͷ3લ·Ͱ͜ͷঢ়گͰ ͔ͳΓযΓ·ͨ͠ (ॳϦϦʔεΛࢦ͍ͯͨͨ͠Ί)Xcode 11 GM2ͰແࣄΓ·ͨ͠…
iOS 12ҎԼͰμʔΫϞʔυͷ৭͕දࣔ͞Εͯ͠·͏ (͜Εݱ࣌Ͱى͖͍ͯͯ ͔ͳΓࠔ͍ͬͯ·͢)IUUQTHJUIVCDPNUBUUO8FJSE%BSL.PEFJ04࠶ݱϦϙδτϦ:
iOS 12ҎԼͰμʔΫϞʔυͷ৭͕දࣔ͞ΕΔiOS 13Ͱಈ࡞֬ೝΛ͠ͳ͕Β։ൃΛਐΊɺ ͋ΔఔਐΜͩஈ֊ͰiOS 12ͷͰ֬ೝΛ͢Δͱ Կނ͔Ұ෦ͷ৭͕μʔΫϞʔυͰදࣔ͞Ε͍ͯ·ͨ͠
iOS 12ҎԼͰμʔΫϞʔυͷ৭͕දࣔ͞ΕΔ৭ʑݕূ͍ͯ͘͠தͰҎԼͷ͕͔Γ·ͨ͠• MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔ• iOS 13Ͱ֎؍Ϟʔυʹ߹Θͤͨਖ਼͍͠৭͕දࣔ͞ΕΔ͕ɺ iOS 12ҎԼͰຒΊࠐ·Εͨ৭͕දࣔ͞Εͯ͠·͏έʔε͕͋Δ• xib/StoryboardʹΧελϜ৭Λઃఆͨ͠ޙɺ Asset CatalogͰͦͷ৭Λฤूͯ͠Viewଆͷ৭͕มΘΒͳ͍ (iOS 12ҎԼͷΈ)※Asset CatalogͰ࡞ͨ͠৭ͷ͜ͱΛ͜͜ͰΧελϜ৭ͱݺͿ͜ͱʹ͠·͢
MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔMac͕ϥΠτϞʔυͷ࣌Mac͕μʔΫϞʔυͷ࣌
MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔclass View: UIView {@IBInspectable var ibBackgroundColor: UIColor = .white {didSet {backgroundColor = ibBackgroundColor}}}←͜ͷΑ͏ͳViewΛ༻ҙBackgroundͰ৭Λઃఆ IBInspectableͰ৭ΛઃఆMacΛμʔΫϞʔυ ʹ͍ͯ͠·͢
MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔ←BackgroundͰઃఆͨ͠ΧελϜ৭←IBInspectableͰઃఆͨ͠ΧελϜ৭OMG StoryboardʹຒΊࠐ·Εͨ৭͕ग़ͯ͠·͍ͬͯ·͢
MacΛμʔΫϞʔυʹ͍ͯ͠Δͱɺxib/StoryboardʹຒΊࠐ·ΕΔ ΧελϜ৭ͷRGB͕μʔΫϞʔυͷ৭ʹͳΔOMG iOS 12 iOS 13 iOS 13
iOS 12ҎԼͰμʔΫϞʔυͷ৭͕දࣔ͞ΕΔશͯͷύλʔϯѲͰ͖͍ͯ·ͤΜ͕ IBInspectable (User Defined Runtime Attributes) Ͱ ઃఆͨ͠৭͜ͷݱ͕ى͖͍͢Ͱͦ͢ΕҎ֎ͷͱ͖ൃੜ͢Δ͜ͱ͕͋ͬͨͨΊɺ μʔΫϞʔυରԠMacΛϥΠτϞʔυʹͯ͠ ࡞ۀ͢ΔͷΛ͓͢͢Ί͠·͢
Asset CatalogͰͦͷ৭Λฤूͯ͠Viewଆͷ৭͕มΘΒͳ͍ (iOS 12ҎԼͷΈ)iOS 12 iOS 13iOS 12ͷIBInspectableͷํͷ ৭͕มΘΒͳ͍…OMG
ͱʹ͔͘৭Λม͑ͨΒ࠶ઃఆ৭Λޙ͔Βมߋͯ͠Ұ෦มΘΒͳ͍Օॴ͕͋ΔͨΊɺ ࢀরઌͷxib/Storyboardͷ৭Λ࠶ઃఆͨ͠΄͏͕ྑͦ͞͏Ͱ͢Ͳ͔͜ҰՕॴΛҰ୴ผͷ৭ʹ͠ɺ ·ͨݩͷ৭ʹ͢ͱͦͷϑΝΠϧͷ৭શ෦ਖ਼͍͠৭ʹߋ৽͞Ε·ͨ͠
εϓϥογϡεΫϦʔϯͷ ը૾͕ߋ৽͞Εͳ͍
εϓϥογϡεΫϦʔϯͷը૾͕ߋ৽͞Εͳ͍Launch Screen Image not Updating!!!IUUQTGPSVNTEFWFMPQFSBQQMFDPNUISFBEεϓϥογϡεΫϦʔϯͷը૾Λ μʔΫϞʔυରԠͷͨΊʹࠩ͠ସ͑ͯ ը૾͕ߋ৽͞Εͣɺݹ͍ը૾͕ग़ͯ͠·͏έʔε͕͋Γ·ͨ͜͠Εੲ͔Β͋ΔͰɺLaunchScreenͷStoryboardʹ xcassetsͷը૾Λઃఆ͍ͯ͠Δͱى͖ΔΑ͏Ͱ͢
ը૾͕μʔΫʹͳΒͳ͍
ը૾͕μʔΫʹͳΒͳ͍IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJUVJJNBHFSFTJ[BCMFJNBHFresizableImage(withCapInsets:resizingMode:)Ͱ ը૾Λ࡞Γ͢ͱͦͷ࣌ͷiOSͷ֎؍Ϟʔυ༻ͷը૾͚͔ͩ͠ ੜͯ͘͠Ε·ͤΜ→ΞϓϦىಈதʹϥΠτ→μʔΫʹͯ͠ը૾͕มΘΒͳ͍ ɹ͕ى͖·͢…
ը૾͕μʔΫʹͳΒͳ͍resizableImage(withCapInsets:resizingMode:) xcassetsͰͷεϥΠεͷઃఆʹஔ͖͑·͠ΐ͏ଞʹͲ͏ͯ͠ը૾Λ࠶ੜ͢Δඞཁ͕͋Δ߹ దͳϝιουͰը૾Λߋ৽͢Δඞཁ͕͋Γ·͢override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
·ͱΊ
·ͱΊ• ͕ࣗѱ͍ͷ͔ͦΕͱ…ʹ·͞Ε·ͨ͠• μʔΫϞʔυରԠ࣌ʹiOS 12ҎԼαϙʔτ͢Δ߹ ͦΕΒͷಈ࡞֬ೝΛΕͣʹ• όάϨϙʔτΛ6ͭૹΓ·ͨ͠ (࠶ݱੑ͕ߴ͍ͷͷΈ) ɾiOS 13Xcode 11ʹ·ͩ·ͩ՝͕͋ΔͷͰ ɹͨ͘͞ΜϑΟʔυόοΫ͍͖ͯ͠·͠ΐ͏• ibtoolͰ৭ΛҰׅߋ৽Ͱ͖ͦ͏ͳؾ͠·͢ (Ͱ͖ͨํ͍ͨΒڭ͑ͯ΄͍͠Ͱ͢)