Upgrade to Pro — share decks privately, control downloads, hide ads and more …

再現ができない?特定ができない?ZOZOTOWNアプリのトップクラッシュに立ち向かった話 /dealing with top crash of zozotown app

347d87fba70c3d08867844bac08d3608?s=47 chichilam86
September 18, 2021

再現ができない?特定ができない?ZOZOTOWNアプリのトップクラッシュに立ち向かった話 /dealing with top crash of zozotown app

347d87fba70c3d08867844bac08d3608?s=128

chichilam86

September 18, 2021
Tweet

Transcript

  1. ࠶ݱ͕Ͱ͖ͳ͍ʁಛఆ͕Ͱ͖ͳ͍ʁZOZOTOWN ΞϓϦͷτοϓΫϥογϡʹཱͪ޲͔ͬͨ࿩ גࣜձࣾZOZOςΫϊϩδʔζ ZOZOTOWNຊ෦ɹZOZOΞϓϦ෦ ྛ ߒஐ Copyright © ZOZO Technologies,

    Inc. iOSDC Japan 2021 2021/09/18 16:35ʙ Track A
  2. © ZOZO Technologies, Inc. גࣜձࣾZOZOςΫϊϩδʔζ ZOZOTOWNຊ෦ɹZOZOΞϓϦ෦ ྛ ߒஐ(@chichilam86) • தࠃग़਎

    • 2019/4 ZOZOςΫϊϩδʔζʹೖࣾ • ZOZOTOWN iOSΞϓϦͷ։ൃΛ୲౰͍ͯ͠·͢ 2
  3. © ZOZO Technologies, Inc. 3 ͸͡Ίʹ ࠶ݱ͕Ͱ͖ͳ͍ʁಛఆ͕Ͱ͖ͳ͍ʁZOZOTOWN ΞϓϦͷτοϓΫϥογϡʹཱͪ޲͔ͬͨ࿩

  4. © ZOZO Technologies, Inc. 4 ̍̌೥ͿΓͷϦχϡʔΞϧ

  5. © ZOZO Technologies, Inc. 5 ϦχϡʔΞϧ ։ൃظ 2"ϲ݄ ؍ଌ ZOZOTOWN

    7.0.0 UIͷ࡮৽ ZOZO GLASS طଘը໘ͷ৽ػೳ௥Ճ ϦϑΝΫλϦϯά etc.
  6. © ZOZO Technologies, Inc. 6 Ϋϥογϡݕ஌

  7. © ZOZO Technologies, Inc. 7 Ϋϥογϡݕ஌ WARNING

  8. © ZOZO Technologies, Inc. 8 Ϋϥογϡݕ஌ ͦͷΫϥογϡ͕τοϓΫϥογϡͱͯ͠ ೔ʹ਺ઍ݅ൃੜ

  9. © ZOZO Technologies, Inc. 9 Ϋϥογϡݕ஌ Ϋϥογϡϩά UIViewͷextension

  10. © ZOZO Technologies, Inc. 10 extension UIView { func capture()

    -> UIImage? { UIGraphicsBeginImageContextWithOptions(bounds.size, false, 0) var image: UIImage? if let context = UIGraphicsGetCurrentContext() { layer.render(in: context) image = UIGraphicsGetImageFromCurrentImageContext() } UIGraphicsEndImageContext() return image } } ϏϡʔશମΛը૾ͱͯ͠ ॻ͖ग़͢ Ϋϥογϡݕ஌
  11. © ZOZO Technologies, Inc. 11 Ϋϥογϡݕ஌

  12. © ZOZO Technologies, Inc. ঎඼ৄࡉը໘ 12 UIViewControllerAnimatedTransitioning UIView.captureͰ ը૾ʹग़ྗ UIView.captureͰ

    ը૾ʹग़ྗ Ϋϥογϡݕ஌ Ϧετը໘ Ϧετը໘ ͷίϐʔ ঎඼ৄࡉը໘ ͷίϐʔ
  13. © ZOZO Technologies, Inc. 13 ࣮͸ੲ͔ΒରԠʹྀ͍ۤͯͨ͠Ϋϥογϡ Ϋϥογϡݕ஌ τοϓͰ͸ͳ͍

  14. © ZOZO Technologies, Inc. 14 😇ϦχϡʔΞϧΛܴ͑ͨ Ϋϥογϡݕ஌ w ࠶ݱ͕Ͱ͖ͳ͍ w

    ಛఆ͕Ͱ͖ͳ͍ 2"νʔϜͰௐࠪɾݕূΛߦͳ͕ͬͨ࠶ݱ͕Ͱ͖ͳ͔ͬͨ ઃܭ͸վળͷ༨஍͕͋Δ͕ɺΫϥογϡͷ௚઀ͷݪҼͰ΋ͳ͍ ࣮͸ੲ͔ΒରԠʹྀ͍ۤͯͨ͠Ϋϥογϡ τοϓͰ͸ͳ͍
  15. © ZOZO Technologies, Inc. 15 Ϋϥογϡղੳ

  16. © ZOZO Technologies, Inc. 16 Ϋϥογϡղੳ ͳͥࠓ͞Βൃੜ݅਺͕૿͑ͨͷ͔🧐

  17. © ZOZO Technologies, Inc. ͳͥࠓ͞Βൃੜ݅਺͕૿͑ͨͷ͔🧐 17 Ϋϥογϡղੳ 📩ʮ࢖͍ଓ͚ΔͱΞϓϦ͕མͪΔʯͱ͍͏ϑΟʔυόοΫ ͓٬༷ͷҙݟ Hint

  18. © ZOZO Technologies, Inc. 18 Ϋϥογϡղੳ 📩ʮ࢖͍ଓ͚ΔͱΞϓϦ͕མͪΔʯͱ͍͏ϑΟʔυόοΫ ͓٬༷ͷҙݟ ࢖͑͹࢖͏΄Ͳ ϝϞϦ͕஝ੵ͍ͯ͘͠

    📈ϗʔϜը໘͕̏ͭʹͳͬͯදࣔ͢Δίϯςϯπ͕૿͑ͨ 📈֤঎඼Ϧετϖʔδ͸ҎલΑΓཁૉ͕૿͑ͨ 📈঎඼ৄࡉϖʔδ΋Ϧονʹͳͬͨ ϦχϡʔΞϧʹΑΔมߋ ϝϞϦͷফඅ্͕͕Δ ͳͥࠓ͞Βൃੜ݅਺͕૿͑ͨͷ͔🧐
  19. © ZOZO Technologies, Inc. ΞϓϦ͕ՔಇதͷશͯͷϝϞϦه࿥ 19 Ϋϥογϡղੳ

  20. © ZOZO Technologies, Inc. 20 Ϋϥογϡղੳ ̍ճͷભҠͰҰཡϖʔδͱৄࡉϖʔδΛ߹Θͤͯ20Mbʂͷը૾ϝϞϦ

  21. © ZOZO Technologies, Inc. 21 …. 5JNF .FNPSZ Ϋϥογϡ ྦྷੵϝϞϦ

    εΫϦʔϯγϣοτͷҰ࣌ϝϞϦ Ϋϥογϡղੳ Ϧετ ৄࡉ Ϧετ ৄࡉ Ϧετ ৄࡉ
  22. © ZOZO Technologies, Inc. 22 ղܾʹ޲͚ͯ

  23. © ZOZO Technologies, Inc. ঎඼ৄࡉը໘ 23 UIViewControllerAnimatedTransitioning UIView.captureͰ ը૾ʹग़ྗ UIView.captureͰ

    ը૾ʹग़ྗ Ϋϥογϡݕ஌ Ϧετը໘ Ϧετը໘ ͷίϐʔ ঎඼ৄࡉը໘ ͷίϐʔ
  24. © ZOZO Technologies, Inc. ঎඼ৄࡉը໘ 24 UIViewControllerAnimatedTransitioning Ϋϥογϡݕ஌ Ϧετը໘ ঎඼ৄࡉը໘ࣗମͷಁ໌

    ౓ௐ੔
  25. © ZOZO Technologies, Inc. ղܾʹ޲͚ͯ 25 ΞϓϦ͕ՔಇதͷશͯͷϝϞϦه࿥ 👍20Mbͷը૾ϝϞϦ͕ͳ͘ͳΓϝϞϦফඅ͕ΏΔ΍͔ʹ

  26. © ZOZO Technologies, Inc. ղܾʹ޲͚ͯ 26 w 6*7JFXDBQUVSFͷΫϥογϡ͕ݮগ w શମతʹͦͷमਖ਼ʹΑΔ৽نΫϥογϡ͸ͳ͍

    ✅Bug Fixed
  27. © ZOZO Technologies, Inc. ·ͱΊ 27 Ϋϥογϡ͸։ൃதʹؾ͕͚ͭͳ͍͜ͱ͕ଟ͍ ϦϦʔεޙͷ؍ଌ͕ॏཁʹͳΔ 📝ಛఆͷ৚͔݅͠ൃੜ͠ͳ͍Ϋϥογϡ͕͋Δ

  28. © ZOZO Technologies, Inc. ·ͱΊ 28 Ϋϥογϡ͕࠶ݱɾಛఆͰ͖ͳ͍৔߹ɺ શମΛ၆ᛌͯ͠ԾઆΛཱͯͯΈ·͠ΐ͏ 🔍ϝϞϦͷফඅɺ௨৴ঢ়گɺϓογϡ͔ΒͷىಈͳͲ 📩͓٬༷ͷҙݟ͕)JOUʂόάΛݟ͚ͭͨΒڭ͍͑ͯͩ͘͞ʂ

  29. © ZOZO Technologies, Inc. ·ͱΊ 29 ٕज़ͷ࡮৽Λҙࣝ͠·͠ΐ͏ 💣߈Ί࣮ͨ૷͸ࢥΘ͵ͱ͜Ζʹෆ۩߹͕ى͖Δ͔΋͠Εͳ͍ 🙋௕೥ܧଓӡ༻͍ͯ͠ΔΞϓϦ͸ͳ͓͞Βʂ աڈʹෳࡶԽ͍ͯͨ͠ػೳ͸ࠓͳΒ؆୯ʹͰ͖Δ෦෼΋͋Δʂ

    💧ˢղੳ΍ݕূ͕େม͕ͩԸܙΛड͚ΒΕΔ͸ͣ
  30. © ZOZO Technologies, Inc. 30

  31. None