Slide 1

Slide 1 text

StoreKit2Λ࢖ͬͨ ΞϓϦ಺՝ۚͷ ϑϧϦχϡʔΞϧ 2023/09/03

Slide 2

Slide 2 text

ࣗݾ঺հ ● גࣜձࣾCAM த్Ͱೖࣾ ● iOS ΤϯδχΞ 5೥໨ ● CAMͰ͸ɺLDHɺΞΠυϧɺ઎͍ɺ৽ R25ͳͲɺΤϯλϝࣄۀʹैࣄ ● λοϓϧʹδϣΠϯͯ͠໿1೥ ҏ౻ ༔ฏ

Slide 3

Slide 3 text

ओͳ಺༰ ● λοϓϧʹ͍ͭͯ ● λοϓϧͷ՝ۚʹ͍ͭͯ ● ϑϧϦχϡʔΞϧͷഎܠ ● ϑϧϦχϡʔΞϧ·Ͱͷ௕ظϓϥϯ ● StoreKit2 ● όοΫΤϯυଆͷରԠ ● ϦϦʔε࣌ʹରԠͯ͠Α͔ͬͨ͜ͱ ● ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ...

Slide 4

Slide 4 text

ฐࣾͷԣ࣠૊৫ʹ͍ͭͯ גࣜձࣾCAM → גࣜձࣾλοϓϧ

Slide 5

Slide 5 text

ԣ࣠૊৫ʹ͍ͭͯ αΠόʔΤʔδΣϯτάϧʔϓ಺ʹάϧʔϓ

Slide 6

Slide 6 text

λοϓϧʹ͍ͭͯ

Slide 7

Slide 7 text

λοϓϧʹ͍ͭͯ ● ϚονϯάΞϓϦͷʮλοϓϧʯ͸ɺ2014೥5݄ʹαʔϏεΛ։࢝ɻ ● ࣗ෼ͷझຯ΍ߦͬͯΈ͍ͨσʔτεϙοτΛ͖͔͚ͬʹɺ࿀ͷ૬ख͕ݟ͚ͭΒΕ Δࠃ಺࠷େن໛ͷϚονϯάΞϓϦɻ

Slide 8

Slide 8 text

9/1ʹɺϚονϯάΞϓϦͷTVCM͕ղې͞Ε·ͨ͠ TVCMͷ์ө͸৚͕݅ݫ͍͠Β͍͠...

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

λοϓϧͷ՝ۚʹ͍ͭͯ

Slide 11

Slide 11 text

λοϓϧͷ՝ۚʹ͍ͭͯ - ௨ৗ ʻফ໣ܕͷϙΠϯτʼ ʻαϒεΫͷγϯϓϧɺελϯμʔυϓϥϯʼ

Slide 12

Slide 12 text

λοϓϧͷ՝ۚʹ͍ͭͯ - ηʔϧࢪࡦ

Slide 13

Slide 13 text

ϑϧϦχϡʔΞϧͷഎܠ

Slide 14

Slide 14 text

ϑϧϦχϡʔΞϧͷഎܠ ● ՝ۚͷϚΠΫϩαʔϏεԽʢෳࡶͩͬͨγεςϜΛγϯϓϧʹ͍ͨ͠ʣ ● ՝ۚج൫ͷ৐Γ׵͑ʢαΠόʔΤʔδΣϯτͷ՝ۚج൫Λ࢖͍͍ͨʣ ● App Store Server Notifications ͷಋೖʢVersion 2ʣ ΞϓϦ಺՝ۚʹ͓͍ͯߪೖɺࣗಈߋ৽ɺαϒεΫఀࢭͳͲͷΠϕϯτΛαʔόʔʹ ϦΞϧλΠϜͰ௨஌Ͱ͖Δػೳɻ όοΫΤϯυଆ

Slide 15

Slide 15 text

ϑϧϦχϡʔΞϧͷഎܠ ● StoreKit2 ͷಋೖ ● KMPɺBFFΛ࢖ͬͨ՝ۚؔ࿈ͷڞ௨ԽʢAndroidͱ՝ۚϩδοΫΛڞ௨Խ͍ͨ͠ʣ ● ͓ࢼ͠ΦϑΝʔɺϓϩϞʔγϣϯΦϑΝʔͷಋೖ iOSଆ

Slide 16

Slide 16 text

ϑϧϦχϡʔΞϧͷ௕ظϓϥϯ

Slide 17

Slide 17 text

ϑϧϦχϡʔΞϧͷ௕ظϓϥϯʢ໿4ϲ݄ؒʣ ՝ۚͷϚΠΫϩαʔϏεԽ KMPɺBFFԽ ※ StoreKit1 ͷঢ়ଶ Step1 Step2 Step3 StoreKit2ͷಋೖ ͓ࢼ͠ΦϑΝʔ ϓϩϞʔγϣϯΦϑΝʔ ͷಋೖ େ͖ͳࢪࡦɺ͔͠΋՝ۚͷͨΊɺ3ͭʹ෼͚ͨ

Slide 18

Slide 18 text

StoreKit2 γϯϓϧͳίʔυ

Slide 19

Slide 19 text

StoreKit2 - γϯϓϧͳίʔυ ϓϩμΫτ৘ใͷऔಘ - Product.products() ● Կ΋४උ͸ඞཁͳ͍ɻͨͬͨɺ1ߦͷίʔυɻ ● ͜ͷ Productʢ= SKProductʣʹ͋ΒΏΔ৘ใ͕٧·͍ͬͯΔɻ

Slide 20

Slide 20 text

StoreKit2 - γϯϓϧͳίʔυ ϓϩμΫτͷߪೖ - Product.purchase() ● Կ΋४උ͸ඞཁͳ͍ɻͨͬͨɺ1 ߦͷίʔυͰߪೖ։࢝ɻ ● ߪೖ঎඼ͷݕূ͸ΞϓϦଆͰɻ ● τϥϯβΫγϣϯ͸ಉؔ͡਺಺Ͱ ׬ྃͰ͖Δɻ ● try catch ͰΤϥʔ΋ଈ࠲ʹऔಘͰ ͖Δɻ ● Delegate ͳ͠ɻ ● ίʔϧόοΫؔ਺΋ͳ͘ͳΔɻ

Slide 21

Slide 21 text

StoreKit2 - γϯϓϧͳίʔυ 2ϲॴͷτϥϯβΫγϣϯ ● ΞϓϦىಈ࣌ͷτϥϯβΫγϣϯ ● ߪೖ঎඼ͷ෮ݩ࣌ͷτϥϯβΫγϣϯ ͪ͜Β΋؆୯ʹ࣮૷Ͱ͖Δɻ

Slide 22

Slide 22 text

StoreKit2 - γϯϓϧͳίʔυ ΞϓϦىಈ࣌ͷτϥϯβΫγϣϯᶃ - Transaction.updates ● ࣗಈߋ৽ͷαϒεΫͳͲͰൃੜ ͨ͠ɺະॲཧͷτϥϯβΫγϣ ϯΛऔಘͰ͖Δɻ ● λοϓϧͰ͸ Root ͷ ViewController Ͱ listen ͍ͯ͠ Δɻʢৗʹ؂ࢹʣ

Slide 23

Slide 23 text

StoreKit2 - γϯϓϧͳίʔυ ߪೖ঎඼ͷ෮ݩ࣌ͷτϥϯβΫγϣϯᶄ - Transaction.currentEntitilements ● ෮ݩର৅ͷτϥϯβΫγϣϯΛ औಘͰ͖Δɻ ● λοϓϧͰ͸ઃఆը໘ʹ͋Δ ʮߪೖ಺༰ͷ෮ݩʯϝχϡʔʹ ࣮૷͍ͯ͠Δɻ

Slide 24

Slide 24 text

StoreKit2 - γϯϓϧͳίʔυ ߪೖ঎඼ͷ෮ݩ࣌ͷτϥϯβΫγϣϯᶄ - Transaction.unfinished ● ߪೖ࣌ʹApp Storeͷܾࡁ͸׬ ͕ྃͨ͠ɺαʔόʔଆͷܾࡁޙ ॲཧʹࣦഊͨ͠έʔεͳͲͰɺ ະॲཧͷτϥϯβΫγϣϯΛऔ ಘͰ͖Δɻ ● ͪ͜Β΋ઃఆը໘ʹ͋Δʮߪೖ ಺༰ͷ෮ݩʯϝχϡʔʹ࣮૷͠ ͍ͯΔɻ

Slide 25

Slide 25 text

StoreKit2 - γϯϓϧͳίʔυ τϥϯβΫγϣϯॲཧͷ஫ҙ఺ʂᶃ λοϓϧͰ͸ɺ෮ݩ࣌ʹҎԼͷ2छྨͷτϥϯβΫγϣϯΛ֬ೝͯ͠Δɻ ᶃ Transaction.currentEntitlements ᶄ Transaction.unfinished ԿΒ͔ͷཧ༝Ͱߪೖ঎඼ͷτϥϯβΫγϣϯΛ׬ྃͰ͖ͳ͔ͬͨͱ͖ɺ֘౰ͷτϥϯβΫγϣϯ ͸ Transaction.currentEntitlements Ͱ͸ͳ͘ɺTransaction.unfinished ʹଘࡏ͍ͯͨ͠ɻ ։ൃॳظஈ֊Ͱ͸ Transaction.currentEntitlements ʹར༻Մೳ঎඼͕͢΂ͯଘࡏ͢Δͱࢥ͕ͬͨɺ ςετΛ௨ͯ͡ɺະ׬ྃͷτϥϯβΫγϣϯ͸ Transaction.currentEntitlements ʹؚ·Ε͍ͯͳ͍ ͜ͱ͕Θ͔ͬͨɻ

Slide 26

Slide 26 text

StoreKit2 - γϯϓϧͳίʔυ τϥϯβΫγϣϯॲཧͷ஫ҙ఺ʂᶄ ͦͷͨΊɺαʔόʔଆͰ͸APIΛϩοΫͯ͠ɺαʔόʔଆͷ࿈ଓܾͨ͠ࡁޙॲཧ͕ൃੜ͠ͳ͍Α͏ ʹରࡦͨ͠ɻ ঎඼Λߪೖͨ͠ͱ͖ɺαʔόʔଆͰܾࡁޙॲཧΛ͢Δ͕ɺ ॏෳͯ͠৽نߪೖͷॲཧͯ͠͠·͍ͬͯͨɻ Appleͷެࣜαϯϓϧίʔυʹ͸ɺߪೖʹΑΔτϥϯβΫγϣϯ͸ listen͠ͳ͍ͱॻ͍͕ͯ͋ͬͨ... // Iterate through any transactions that don't come from a direct call to `purchase()`. https://developer.apple.com/documentation/storekit/in-app_purchase/implementing_a_store_in_your_app_using_the_storekit_api A. ߪೖ௚ޙ B. ΞϓϦىಈ࣌ʹ listen ͨ͠ Transactions.updates

Slide 27

Slide 27 text

StoreKit2 - γϯϓϧͳίʔυ Ϩγʔτ Ϩγʔτ͕ෆཁʹͳͬͨʂ ͦͷ୅ΘΓʹԿ͕ඞཁʁ

Slide 28

Slide 28 text

StoreKit2 - γϯϓϧͳίʔυ Ϩγʔτ͕ෆཁʹͳͬͨʂ- ফ໣ܕ ● Ϩγʔτͷ୅ΘΓʹɺ jwsRepresentation Λαʔόʔʹ ૹΔɻ ● base64ʹΤϯίʔυ͞Ε͍ͯΔ ͷͰɺσίʔυ͢Ε͹ transactionId ͳͲΛऔಘͰ͖Δɻ ● ߪೖ੒ޭޙͷฦΓ஋ͰऔಘͰ͖Δ ஋ɻ

Slide 29

Slide 29 text

StoreKit2 - γϯϓϧͳίʔυ Ϩγʔτ͕ෆཁʹͳͬͨʂ- αϒεΫϦϓγϣϯ ● Ϩγʔτͷ୅ΘΓʹɺ originalTransactionId Λαʔόʔʹ ૹΔɻ ● λοϓϧͷαʔόʔଆͰ͸ɺ originalTransactionId Λجʹ App Store Server API Λ࢖ͬͯɺ τϥϯβΫγϣϯͷৄࡉ৘ใΛऔಘ ͢Δɻ ● ͪ͜Β΋ɺߪೖ੒ޭޙͷฦΓ஋Ͱऔ ಘͰ͖Δ஋ɻ

Slide 30

Slide 30 text

StoreKit2 - γϯϓϧͳίʔυ StoreKit2Ͱ γϯϓϧͳίʔυʹͳ͓͔ͬͨ͛Ͱ ίʔυΛ௥͍΍͘͢ͳΓ σόοάָ͕ʹͳͬͨ ՝ۚཧղͷϋʔυϧ͕Լ͕ͬͨ

Slide 31

Slide 31 text

StoreKit2 ΦϑΝʔ

Slide 32

Slide 32 text

StoreKit2 - ΦϑΝʔ ͓ࢼ͠ແྉ΍ηʔϧࢪࡦͷͨΊʹɺΦϑΝʔΛ௥Ճͨ͠ɻ ● ͓ࢼ͠ΦϑΝʔ ● ϓϩϞʔγϣϯΦϑΝʔ

Slide 33

Slide 33 text

StoreKit2 - ΦϑΝʔ ● αϒεΫάϧʔϓ಺ͰҰ౓͚ͩఏڙՄೳɻ ● ίʔυଆͰΦϑΝʔͷద༻༗ແΛࢦఆͰ͖ͳ͍ɻʢAppleଆͰ൑அʣ ● αϒεΫάϧʔϓ಺Ͱɺར༻தͷαϒεΫ͕͋Δͱద༻Ͱ͖ͳ͍ɻ ※ΞοϓάϨʔυɺμ΢ϯάϨʔυͰͷఏڙ͸Ͱ͖ͳ͍ɻ ● αϒεΫͷߪೖܦݧ͕͋ͬͯ΋ɺ͓ࢼ͠ܦݧ͕ͳ͚Ε͹ɺ ͓ࢼ͠ΦϑΝʔΛఏڙͰ͖Δɻ ͓ࢼ͠ΦϑΝʔ

Slide 34

Slide 34 text

StoreKit2 - ΦϑΝʔ ͓ࢼ͠ΦϑΝʔ ● ͓ࢼ͠ΦϑΝʔͷ৘ใ Product.subscription?.introductoryOffer ● ͓ࢼ͠ΦϑΝʔΛఏڙՄೳ͔ʁ Product.SubscriptionInfo.isEligibleForIntroOffer

Slide 35

Slide 35 text

StoreKit2 - ΦϑΝʔ ͓ࢼ͠ΦϑΝʔ - ஫ҙ఺ʂ isEligibleForIntroOffer == true Ͱ΋ɺ ಉ͡αϒεΫάϧʔϓ಺Ͱɺར༻தͷαϒεΫ͕͋Δͱ͓ࢼ͠ΦϑΝʔΛద༻Ͱ͖ͳ͍ɻ ͦͷͨΊλοϓϧͰ͸ɺProduct.SubscriptionInfo.status Λऔಘͯ͠ɺ ݱࡏར༻தͷαϒεΫ͕ଘࡏ͢Δ͔νΣοΫ͍ͯ͠Δɻ true ͚ͩͲɺ͓ࢼ͠ΛఏڙͰ͖ͳ͍ͷͰ஫ҙʂ

Slide 36

Slide 36 text

StoreKit2 - ΦϑΝʔ Ϩγʔτͷத਎Λൈਮʢ๨Εͳ͍Α͏ʹϝϞʣ ● ແྉ͓ࢼ͠ΦϑΝʔ "is_trial_period": "true", "is_in_intro_offer_period": "false", ● ༗ྉ͓ࢼ͠ΦϑΝʔ "is_trial_period": "false", "is_in_intro_offer_period": "true", ͓ࢼ͠ΦϑΝʔ - Ϩγʔτͷத਎

Slide 37

Slide 37 text

StoreKit2 - ΦϑΝʔ ● Կ౓Ͱ΋ఏڙՄೳɻ ● ίʔυଆͰߪೖ࣌ʹOfferIdΛࢦఆ͢Δɻ OfferIdΛࢦఆ͠ͳ͍ͱ௨ৗՁ֨ѻ͍ɻ ● ΞϓϦ಺ͰҰ౓Ͱ΋αϒεΫߪೖܦݧ͕ͳ͍ͱఏڙͰ͖ͳ͍ɻ ※ߪೖܦݧ͕ͳ͍ͷʹϓϩϞʔγϣϯΦϑΝʔͰߪೖ͠Α͏ͱ͢ΔͱΤϥʔʹͳΔɻ ϓϩϞʔγϣϯΦϑΝʔ

Slide 38

Slide 38 text

StoreKit2 - ΦϑΝʔ ● ϓϩϞʔγϣϯΦϑΝʔ৘ใͷऔಘʢ࠷େ10݅ͷొ࿥͕Մೳʣ Product.subscription?.promotionalOffers.first(where: { $0.id == offerId }) ● ϓϩϞʔγϣϯΦϑΝʔΛఏڙՄೳ͔ʁ Product.SubscriptionInfo.status(for: subscriptionGroupId)?.isEmpty λοϓϧͰ͸ɺಉ͡αϒεΫάϧʔϓ಺ͷߪೖܦݧͰ൑அͨ͠ɻ ※ϕετϓϥΫςΟε͕͋Ε͹ڭ͍͖͍͑ͯͨͩͨͰ͢ɻ ϓϩϞʔγϣϯΦϑΝʔ

Slide 39

Slide 39 text

StoreKit2 - ΦϑΝʔ Ϩγʔτͷத਎Λൈਮʢ๨Ε͕ͪͳͷͰϝϞʣ "promotional_offer_id": "**************************" ϓϩϞʔγϣϯΦϑΝʔ - Ϩγʔτͷத਎

Slide 40

Slide 40 text

ʮappBundleId + '\u2063' + keyIdentifier + '\u2063' + productIdentifier + '\u2063' + offerIdentifier + '\u2063' + appAccountToken + '\u2063' + nonce + '\u2063' + timestampʯ ʮappBundleId + '\u2063' + keyIdentifier + '\u2063' + productIdentifier + '\u2063' + offerIdentifier + '\u2063' + '' + '\u2063' + nonce + '\u2063' + timestampʯ StoreKit2 - ΦϑΝʔ ϓϩϞʔγϣϯΦϑΝʔΛߪೖ͢Δͱ͖ɺαʔόʔଆͰ signature Λੜ੒ͯ͠ɺ iOSଆͰ Product.purchase ࣌ʹ signature Λ෇༩͢Δඞཁ͕͋Δɻ ͜ͷͱ͖ɺΦϓγϣφϧͷ appAccountToken ͕ෆཁͳ৔߹͸ɺۭจࣈͱͯ͠ઃఆ͢Δɻ ※ۭจࣈ΋ແ͍ঢ়ଶͰ signature Λ࡞੒ͨ͠ΒߪೖͰ͖ͣΤϥʔʹͳΔɻ ϓϩϞʔγϣϯΦϑΝʔͷॺ໊࡞੒Ͱ͸·ͬͨ͜ͱʢsignatureʣ [Link] https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/subscriptions_and_offers/ generating_a_signature_for_promotional_offers

Slide 41

Slide 41 text

όοΫΤϯυଆͷରԠ

Slide 42

Slide 42 text

όοΫΤϯυଆͷରԠ App Store Server API ● αϒεΫ৘ใͷऔಘ αϒεΫͷܾࡁޙॲཧͷͱ͖ɺoriginalTransactionId ͔Βৄࡉ৘ใΛऔಘ͢ΔͨΊʹɺ Լه API Λར༻ͨ͠ɻ https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{transactionId} https://developer.apple.com/documentation/appstoreserverapi/get_all_subscription_statuses ● τϥϯβΫγϣϯཤྺ αϒεΫͷΞοϓάϨʔυ/μ΢ϯάϨʔυͷࡍʹɺաڈͷߪೖ৘ใ͕ඞཁͩͬͨͨΊɺ Լه API Λར༻ͨ͠ɻ https://api.storekit.itunes.apple.com/inApps/v1/history/{transactionId} https://developer.apple.com/documentation/appstoreserverapi/get_transaction_history

Slide 43

Slide 43 text

ϦϦʔεޙʹରԠͯ͠Α͔ͬͨ͜ͱ

Slide 44

Slide 44 text

ϦϦʔε࣌ʹରԠͯ͠Α͔ͬͨ͜ͱ ஈ֊తϦϦʔε ● App Store Connect ͔ΒΞϓϦΛ ϦϦʔε͢Δͱ͖ɺʮஈ֊తϦϦ ʔεʯΛར༻ͨ͠ɻ ● λοϓϧͰ͸௨ৗ࣌΋ஈ֊తϦϦ ʔεΛ࣮ࢪ͍ͯ͠Δ͕ɺ՝ۚؔ࿈ ͷϦϦʔε࣌͸ɺΧελϚʔαϙ ʔτ΁ͷ໰͍߹Θͤঢ়گͳͲݟͳ ͕Βɺ͍ͭ΋ΑΓ༨༟Λ࣋ͬͯ 100%։์ʹͨ͠ɻ

Slide 45

Slide 45 text

ϦϦʔε࣌ʹରԠͯ͠Α͔ͬͨ͜ͱ ৽چίʔυͷ੾Γସ͑ ● Firebase ͷ Remote Config Λ ࢖ͬͯɺԿ͔େ͖ͳ໰୊͕ൃੜ ͨ͠ͱ͖ͷͨΊʹɺ৽چͷίʔ υΛ੾Γସ͑ΒΕΔΑ͏ʹ͠ ͨɻ ● ։์཰Λ0%ʹ͢Δͱɺچίʔ υͰ՝ۚॲཧ͕࣮ߦ͞ΕΔɻ

Slide 46

Slide 46 text

ϦϦʔε࣌ʹରԠͯ͠Α͔ͬͨ͜ͱ Τϥʔϩάͷग़ྗ - Datadog ● Datadog Λར༻ͯ͠ɺ՝ۚؔ࿈ͷΤ ϥʔΛग़ྗͨ͠ɻϢʔβʔ͔Βͷ໰ ͍߹Θͤ࣌ͷௐࠪʹ໾ʹཱͬͨɻ ● εϜʔζͳௐࠪͷͨΊʹɺͪΐͬͱ ΍Γ͗͢ʁ͘Β͍ৄࡉͳΤϥʔ಺༰ ΛૹΔ͜ͱΛ͓͢͢Ίɻ ● Τϥʔ͕ٸܹʹ૿͑ͨࡍ͸ɺSlack ΁௨஌͕ಧ͘Α͏ʹ Monitors Λར ༻ͨ͠ɻ

Slide 47

Slide 47 text

ϦϦʔε࣌ʹରԠͯ͠Α͔ͬͨ͜ͱ ΤϥʔϝοηʔδʹΤϥʔ ID ● ֤छ՝ۚؔ࿈ͷΤϥʔΛ ·ͱΊͯ؅ཧͯ͠ɺϢʔ βʔʹදࣔ͢ΔΤϥʔϝ οηʔδʹIDΛ෇༩͠ ͨɻ ● Ϣʔβʔ͔Βͷ໰͍߹Θ ͤ࣌ʹɺΤϥʔϝοηʔ δͷεΫγϣ΋͓ئ͍͠ ͍ͯΔͨΊɺID͕ෆ۩߹ ௐࠪʹ໾ཱͬͨɻ

Slide 48

Slide 48 text

ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ...

Slide 49

Slide 49 text

ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ... StoreKit1 ͱ 2 Λࠞࡏͤͯ͞͠·ͬͨ...

Slide 50

Slide 50 text

ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ... αʔόʔଆͷ౎߹ʹΑΓɺஈ֊Λ౿ΜͰϦχϡʔΞϧΛܭըͨ͠ɻ Step1: ·ͣ͸ɺiOSଆͷΈΛ StoreKit2 ʹҠߦ Step2: ࣍ʹɺαʔόʔଆΛ StoreKit2 ʹରԠͨ͠APIʹҠߦ

Slide 51

Slide 51 text

ͦͷͨΊɺ࠷ॳͷஈ֊Ͱ͸ چདྷܕͷ receipt σʔλ(StoreKit1) Λ࢖ܾͬͨࡁޙॲཧΛͨ͠ɻ ͭ·ΓɺiOSଆͷߪೖ͸StoreKit2ɺαʔόʔଆͷܾࡁޙॲཧ͸StoreKit1 ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ...

Slide 52

Slide 52 text

͜ͷͱ͖ɺαʔόʔଆͰ receipt Λ࢖ͬͯϨγʔτͷத਎Λ֬ೝͨ͠Βɺ ࠷৽ͷߪೖ৘ใؚ͕·Ε͓ͯΒͣɺਖ਼ৗʹߪೖ঎඼Λ෇༩Ͱ͖ͳ͔ͬͨɻ Ϩγʔτͷ൓өʹλΠϜϥά͕͋ͬͨɻ ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ...

Slide 53

Slide 53 text

Apple ͷςΫχΧϧαϙʔτʹ໰͍߹ΘͤͨΒɺStoreKit1ͱ2 Λࠞࡏͤͯ͞͸ͩΊɻ αʔόʔଆ΋ StoreKit2 Λ࢖ͬͨਪ঑ͷํ๏ͰɺܾࡁޙॲཧΛ͢ΔΑ͏ʹͱࢦఠΛड͚ͨɻ σόοά࣌͸ΤϥʔʹͳΒͳ͔͔ͬͨΒɺ͍͚Δͱࢥͬͨ... ϦϦʔεޙʹ໌Β͔ʹͳࣦͬͨഊ...

Slide 54

Slide 54 text

ͥͻɺStoreKit2ʹ͠·͠ΐ͏ʂ

Slide 55

Slide 55 text

Ҏ্ʹͳΓ·͢ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠