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

未知の世界 App Transfer @potatotips #68

Yusuke Kuroiwa
February 12, 2020

未知の世界 App Transfer @potatotips #68

[neuet] オフィスオープニングパーティお申込み
https://forms.gle/iMxNdfhuztKjsDRP9

未知の世界 App Transfer
@potatotips #68
2020/02/12 19:30~

#メルチャリ #neuet #メルカリ #クララオンライン

1. 会社概要
2. App Transfer概要
3. 意識すること
4. 注意すること / やってみて
5. 公式ドキュメントと違ったこと
6. まとめ

Yusuke Kuroiwa

February 12, 2020
Tweet

More Decks by Yusuke Kuroiwa

Other Decks in Technology

Transcript

  1. - Yusuke Kuroiwa - wakinchan - ͖ΜͪΌΜɻ - neuetגࣜձࣾ /

    גࣜձࣾϝϧΧϦ - iOS Engineer, Frontend, ଞॾʑ - Twitter @wa_kinchan - GitHub @wakinchan Who?
  2. Image 1. ձࣾ֓ཁ 2. App Transfer֓ཁ 3. ҙࣝ͢Δ͜ͱ 4. ஫ҙ͢Δ͜ͱ

    / ΍ͬͯΈͯ 5. ެࣜυΩϡϝϯτͱҧͬͨ͜ͱ 6. ·ͱΊ ໨࣍ 4
  3. ӡӦձࣾ neuetגࣜձࣾ ຊࣾ ౦ژ౎ߓ۠ຑ෍୆1-7-2 ໾һମ੍ Ոຊ ݡଠ࿠ দຊ ཾ༞ ݩϝϧϖΠCPO,

    ඇৗۈ ௕୩઒ େี ΫϥϥΦϯϥΠϯCFO, ඇৗۈ גओ גࣜձࣾΫϥϥΦϯϥΠϯ גࣜձࣾϝϧΧϦ ϝϧνϟϦ͸ɺ2019೥7݄26೔ΑΓ ӡӦձ͕ࣾ neuetגࣜձࣾ ʹͳΓ·ͨ͠ɻ ӡӦओମ͕ neuetגࣜձࣾ ʹ
  4. App Λผͷσϕϩούʹച٫͢Δ৔߹ɺ·ͨ͸ผͷ App Store Connect ΞΧ΢ϯτ΍૊৫ʹҠߦ͢Δ৔߹ɺͦͷ App Λৡ౉͠·͢ɻ ͜ΕʹΑΓɺApp Store

    ͔Β App Λ࡟আͤͣʹɺผͷσϕϩούʹ App ͷॴ༗ݖΛҠ͢͜ͱ͕Ͱ͖·͢ɻApp ͸ৡ౉ த΍ৡ౉ޙ΋͜Ε·ͰͷΧελϚʔϨϏϡʔͱධՁΛอ࣋͠ଓ͚ɺϢʔβ͸ࠓޙ͋ΔΞοϓσʔτ΁΋ΞΫηε͢Δ͜ͱ ͕Ͱ͖·͢ɻ·ͨɺApp ͷϏϧυ͕Ξοϓϩʔυ͞Εͨޙʹόϯυϧ ID Λมߋ͢Δ͜ͱ͸Ͱ͖ͳ͍ͨΊɺApp ͕ৡ౉ ͞Εͨޙ΋ͦͷόϯυϧ ID ͸อ࣋͞Ε·͢ɻ App Transfer ͷ֓ཁ https://help.apple.com/app-store-connect/#/deved688524f
  5. εςοϓ 1ɿApp ͕ৡ౉ՄೳͰ͋Δ͜ͱΛ֬ೝ͢Δ εςοϓ 2ɿ͢΂ͯͷ App ৘ใͷόοΫΞοϓΛऔΔ εςοϓ 3ɿApp ͷৡ౉Λ։࢝͢Δ

    εςοϓ 4ɿApp ͷৡ౉Λঝ୚͢Δ App Transfer ͷखॱ https://help.apple.com/app-store-connect/#/deved688524f
  6. 3ͭͷঢ়ଶͷΞϓϦ͕ଘࡏ͢Δ͜ͱʹͳΔ ͜ΕΛҙࣝ͢Δ͜ͱ͕େࣄͰɺࣄલʹ࡞ۀΛ੔ཧ͢Δඞཁ͕͋Δ 1. App: Aࣾͷূ໌ॻ, App StoreͱAPNs (AppleͷόοΫΤϯυؚΉ): Aࣾ a.

    App Transfer લ 2. App: Aࣾͷূ໌ॻ, App StoreͱAPNs (AppleͷόοΫΤϯυؚΉ): Bࣾ a. App Transfer ޙɺॳΊͯͷΞϓϦϦϦʔεΛߦ͏·Ͱͷؒ 3. App: Bࣾͷূ໌ॻ, App StoreͱAPNs (AppleͷόοΫΤϯυؚΉ): Bࣾ a. App Transfer ޙɺॳΊͯͷΞϓϦϦϦʔεΛߦͬͨ͋ͱ App Transfer ʹ͓͚ΔΞϓϦͷঢ়ଶ 1 ॳΊͯͷΞϓϦϦϦʔε 2 3 App Transfer ࣮ߦ
  7. - υΩϡϝϯτʹ͸໌ه͞Εͯͳ͍Ͱ͕͢ɺTeam ID ͕มΘΔͷͰɺӨڹൣғͷચ͍ग़͓͘͠ඞཁ͕͋Δ - Ͳ͜ʹӨڹ͕͋Δ? - Web Credentials -

    Firebase Dynamic Links (App Links) - Firebase Cloud Messaging - ϝϧνϟϦͷ৔߹ɺ্ه͚͕ͩͩͬͨɺଞʹ΋͋Δ͔΋? Team ID ͷӨڹൣғͷચ͍ग़͠
  8. ΩʔνΣʔϯͷڞ༗͸ɺApp ͷΞοϓσʔτ·Ͱ͸ͦͷ··ಈ࡞͠·͕͢ɺΞοϓσʔτ͞ΕΔͱແޮʹͳΓ·͢ɻͦͷͨΊɺΞοϓ σʔτΛఏग़͢Δࡍ͸ɺΩʔνΣʔϯΛ࠶ߏங͢Δඞཁ͕͋Γ·͢ɻXcode ϓϩδΣΫτͰΩʔνΣʔϯάϧʔϓ͕ఆٛ͞Ε͍ͯΔ৔ ߹ɺΩʔνΣʔϯڞ༗ͷ࢖༻Λܧଓ͢Δʹ͸ɺडऔਓ͕࡞੒ͨ͠ʢडऔਓͷ Team ID ΛؚΉʣΩʔνΣʔϯάϧʔϓͱஔ͖׵͑Δඞཁ ͕͋Γ·͢ɻϢʔβ͕ App

    ΛΞοϓσʔτ͢ΔͱɺΩʔνΣʔϯʹೝূτʔΫϯ͕ݟ͔ͭΒͳ͘ͳΓɺ࠶ϩάΠϯΛٻΊΒΕ·͢ɻ ঢ়ଶ2ͷΞϓϦ͔Βɺঢ়ଶ3ͷΞϓϦʹΞοϓσʔτ͢ΔࡍΩʔνΣʔϯ͕࡟আ͞ΕͨΑ͏ʹΈ͑Δ ΩʔνΣʔϯ্͸࢒͍ͬͯΔ͕ɺࢀর͕Ͱ͖ͳ͍͚ͩ ΩʔνΣʔϯڞ༗ App https://help.apple.com/app-store-connect/#/deved688524f
  9. ΩʔνΣʔϯڞ༗ - AࣾͷϩάΠϯΛ࣮ݱ͢ΔͨΊɺAࣾͱڞ௨ͷΩʔνΣʔϯڞ༗Λར༻͍ͯ͠Δ - AࣾͷϩάΠϯΛഇࢭͯ͠ɺಠࣗͷBࣾಠࣗͷΞΧ΢ϯτ΁ͷҠߦظؒͰ͋ͬͨ - ·ͨɺΞΧ΢ϯτҠߦΛߦ͏ͨΊʹɺAࣾϩάΠϯΛҡ࣋ඞཁ͕͋ͬͨ - ϩάΠϯঢ়ଶΛҡ࣋͢Δʹ͸? -

    App TransferલʹUserDefaultsʹΩʔνΣʔϯ৘ใΛ҉߸Խͯ͠อଘ͢Δ - ঢ়ଶ2ͷΞϓϦ͔Βɺঢ়ଶ3ͷΞϓϦʹΞοϓσʔτ͢Δͱ͖෮ݩ͢Δ - ͰɺͳΜͱ͔Ͱ͖Δ - ಠஅͰ͢͢ΊΔͷͰ͸ͳ͘ɺηΩϡϦςΟνʔϜ͍ΔͷͰ͋Ε͹ɺ૬ஊ͠·͠ΐ͏
  10. Web Credentials - ύεϫʔυอଘͰར༻͍ͯ͠Δ - ࣗલͰhosting͍ͯ͠Δwebsiteͷapple-app-site-associationͷมߋ - Ͳ͏͢Ε͹Α͍͔? - Bundle

    Identifier͸ಉ͡ͰɺTeam ID͕App Transferޙͷ΋ͷΛ௥Ճ͢Ε͹Α͍ - ΞϓϦͷ Capabilities ͷ Associated Domains ʹ΋๨Εͣ௥هͯ͠ϦϦʔε͓ͯ͘͠ - App Transferલ(ঢ়ଶ1)ͷͱ͖ʹରԠΛߦ͓ͬͯ͘ - ͦ͏͢Ε͹ɺঢ়ଶ2, 3ͲͪΒͰ΋ಈ࡞͢Δ
  11. - Team IDมߋޙɺapple-app-site-associationʹ൓ө͞ΕΔʹ͸ɺ਺࣌ؒͷϥά͕ൃੜ͢Δ - ϦϯΫΛ౿ΉͱApp Storeʹඈ͹͞ΕΔ - apple-app-site-associationΩϟογϡղফޙ΋ɺ୺຤Ωϟογϡ͕ޮ͍͍ͯΔ - ϦϯΫΛ౿ΉͱApp

    Storeʹඈ͹͞ΕΔ - ڍಈΛݟΔݶΓɺΞϓϦΠϯετʔϧ / Ξοϓσʔτ࣌ʹΩϟογϡͷߋ৽͕૸Δ - ଞʹ΋τϦΨʔ͋Δ͔΋ - υΩϡϝϯτʹ΋ॻ͍ͯͳ͍ - ঢ়ଶ2ͰɺBࣾͷTeam ID΁มߋ͢ΔͱɺΞϓϦͷTeam IDͱҰகͤͣɺDynamic LinksΛղܾͰ͖ͳ͍ - ϦϯΫΛ౿ΉͱApp Storeʹඈ͹͞ΕΔ - ঢ়ଶ3ʹͳͬͯɺApp StoreʹΞϓϦ͕൓ө͞ΕͨॠؒʹTeam IDΛมߋͰ͖Δͷ͕ϕετ Firebase Dynamic Links (App Links)
  12. - Firebase Cloud Messaging (FCM)Λ࢖͍ͬͯΔ - ϥΠυऴྃͷ௨஌ɺ௥Ճྉۚͷ௨஌ɺ੥ٻॻͷ௨஌ - ௨஌͸େࣄͰ͢ -

    ͲͷλΠϛϯάͰAPNs Authentication Key (ҎԼAPNs Auth Key) Λมߋ͢΂͖͔? - App Transferલ(ঢ়ଶ1)·Ͱ͸ɺAࣾͷAPNs Auth KeyΛར༻͢Δ - ঢ়ଶ2ʹͳͬͨ࣌఺ͰɺBࣾͷAPNs Auth KeyΛར༻͢Δ - ࣍ϖʔδͷཧ༝ʹΑΓɺঢ়ଶ2ͰAࣾͷAPNs Auth Keyͩͱϓογϡ௨஌͕ಧ͔ͳ͍ ϓογϡ௨஌ (Firebase Cloud Messaging)
  13. Firebase Cloud Messaging - APNs Auth Key͸Team IDͱີ઀Ͱɺൃߦͨ͠ΞΧ΢ϯτ͕Ұக͠ͳ͍ͱ͍͚·ͤΜ - APNs

    Auth Key͕AࣾɺTeam ID͕Bࣾͱ͔͸ͩΊ - APNs Auth KeyͱTeam ID͕ҧ͏ͱϓογϡ௨஌͕ಧ͖·ͤΜ
  14. - Firebase Dynamic Links͸ঢ়ଶ3ʹͳͬͨ࣌఺ͰɺTeam IDΛมߋ͢Δඞཁ͕͋Δ - Firebase Cloud Messaging͸ঢ়ଶ2ʹͳͬͨ࣌఺ͰɺTeam IDΛมߋ͢Δඞཁ͕͋Δ

    - Ͱ͕͢ɺFireaseͷTeam IDΛઃఆ͢Δޱ͸ɺ1ͭͰ͢ - ճආํ๏͸͋Δͷ͔? - APNs Auth KeyͷΞοϓϩʔυ͢Δͱ͜Ζ͕ɺΞοϓϩʔυॠؒ࣌ͷFirebaseʹઃఆ͞Ε͍ͯΔTeam ID͕࠾ ༻͞ΕͯɺΩϟογϡ͞ΕΔ࢓૊Έ(ͦΕ͕ҠߦTeam ID͕มߋ͞ΕΑ͏ͱ΋Өڹ͠ͳ͍)ʹͳ͍ͬͯΔɺτϦο ΩʔͰ͸͋Δ͕ɺͦͷFirebaeͷόάΆ͍࢓༷Λ࢖͏ - ঢ়ଶ2ʹͳͬͨ௚ޙɺҰॠTeam IDΛBࣾ΁มߋͯ͠ɺAPNs Auth KeyΛΞοϓϩʔυͯ͠ɺTeam IDΛ͢ ͙͞·Aࣾʹ໭͢ - ͦ͏͢Ε͹ɺঢ়ଶ2ͷͱ͖ʹɺFirebase Dynamic Links΋Firebase Cloud Messaging΋࢖͑Δ Έͳ͞Μ͓ؾ͖ͮͰ͠ΐ͏͔...?
  15. App ৘ใʹ͍ͭͯ ͢΂ͯͷ App ৘ใͷόοΫΞοϓΛऔΔ App ͸ৡ౉ޙʹ͋ͳͨͷΞΧ΢ϯτ͔Β࡟আ͞ΕΔͨΊɺৡ౉Λߦ͏લʹͦͷ App ʹؔ͢Δ͢΂ͯͷ৘ใͷόοΫΞο ϓΛऔ͓ͬͯ͘ඞཁ͕͋Γ·͢ɻ

    - App TransferޙɺApp Store ConnectͷAppʹؔ͢Δ৘ใ͕ܧଓͰҠ؅͞Εͨʢফ͑ͳ͍ʣ - ೦ͷҝऔಘ͓͍ͯͨ͠΄͏͕Α͍ɺfastlane deliverͰόοΫΞοϓ͓ͯ͘͠ͱΑ͍ - ʮ͋ͳͨͷΞΧ΢ϯτʯͬͯҙຯ͕ਂ͍ - ৡ౉લͷΞΧ΢ϯτͰɺৡ౉ޙ͸ผͷձࣾʹͳͬͯΔ͔Β͋Μͨ͸ϩάΠϯͰ͖ΜΑͬͯɺҙຯͩͬͨͷ ͔ https://help.apple.com/app-store-connect/#/deved688524f
  16. App Transfer ͕׬ྃ·Ͱͷ࣌ؒ App ͷৡ౉͕׬ྃ͢Δ·Ͱʹ 2 Ӧۀ೔΄Ͳ͔͔Δ͜ͱ͕͋Γɺͦͷؒͷ App εςʔλε͸ʮProcessing App

    TransferʢApp ͷৡ౉ΛॲཧதʣʯͱͳΓ·͢ɻ - ࣮ࡍ͸AppTransferͷ࣮ߦϘλϯΛԡͨ͠λΠϛϯάͰɺ΄΅ಉظతʹߦΘΕͨ - ೦ͷҝɺ2Ӧۀ೔͸ݟੵ΋͓͍ͬͯͨ΄͏͕ϕλʔ͕ͩɺ͋͘·Ͱ࠷େ஋Ά͍ https://help.apple.com/app-store-connect/#/deved688524f
  17. - Firebase ͕ͦ΋ͦ΋ App Transfer ͷ͜ͱͳΜͯ1ϛϦ΋ߟ͍͑ͯͳ͍ - ະݕূͰ͋Δ͕ɺFirebaseʹ໰͍߹ΘͤͨΒಛผରԠͯ͘͠ΕΔ͔΋͠Εͳ͍ - ݁ՌͲΜ͚ͩؤுͬͯ΋ɺFirebase

    Dynamic LinksɺFirebase Cloud MessagingΛ࢖͏Ҏ্μ΢ϯλΠϜ͕ൃੜ͠·͢ - ͜ͷࢿྉΛݟ͍͍ͯͨͩͯɺۃݶ·Ͱμ΢ϯλΠϜΛݮΒ͢౒ྗΛ͢Δ - Ұ౓ϦϦʔεͯ͠͠·͏ͱɺ͜ͷล͸࠶ઃܭ͸೉͍͠ͱࢥ͏ - αϙʔτମ੍ͷڧԽ - μ΢ϯλΠϜ͕ൃੜ͢ΔͷΛڐ༰͓ͨ͠٬͞·ͷαϙʔτମ੍ - ສ͕ҰҐɺো֐͕͋ͬͨͱ͖ͷٕज़తͳαϙʔτମ੍ - ؾ߹ͱࠜੑ ·ͱΊ