Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
In-App Purchase / Subscription with StoreKit
Search
WorldDownTown
June 30, 2016
Programming
3
3k
In-App Purchase / Subscription with StoreKit
『WWDC16. Meetup @Wantedly with 日本経済新聞社』の登壇資料
WorldDownTown
June 30, 2016
Tweet
Share
More Decks by WorldDownTown
See All by WorldDownTown
WWDC動画鑑賞会📹🍱を支える技術 / WWDC Video Lunch
worlddowntown
0
280
Live Renderingとの上手い付き合い方
worlddowntown
1
530
20150225_iqon.pdf
worlddowntown
0
83
ios_push_local_notification
worlddowntown
0
140
iqon_ios_growth_hack
worlddowntown
3
4.3k
Other Decks in Programming
See All in Programming
モテるデスク環境
mozumasu
3
1.3k
CSC305 Lecture 09
javiergs
PRO
0
310
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
810
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
110
コード生成なしでモック処理を実現!ovechkin-dm/mockioで学ぶメタプログラミング
qualiarts
0
270
理論と実務のギャップを超える
eycjur
0
180
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
1.6k
CSC509 Lecture 07
javiergs
PRO
0
240
Six and a half ridiculous things to do with Quarkus
hollycummins
0
210
Catch Up: Go Style Guide Update
andpad
0
250
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
110
Google Opalで使える37のライブラリ
mickey_kubo
3
150
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Six Lessons from altMBA
skipperchong
29
4k
Building Adaptive Systems
keathley
44
2.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Designing for Performance
lara
610
69k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Being A Developer After 40
akosma
91
590k
Transcript
In-App Purchase / Subscription with StoreKit
Keisuke Shoji @WorldDownTown VASILY, Inc.
In-App Purchase େ͖ͳൃද͕͋Γ·ͨ͠Ͷ (WWDCͷલʹ)
Introducing Expanded Subscriptions in iTunes Connect (Session 301) Using Store
Kit for In-App Purchases with Swift 3 (Session 702)
Introducing Expanded Subscriptions in iTunes Connect (Session 301)
In-App Purchase?
In-App Purchase • Consumable (LINEͷίΠϯ) • Non-consumable (ࠂඇදࣔΦϓγϣϯ) • Non-renewable
subscriptions (Quizlet) • Auto-renewalbe subscriptions (Apple Music) • Free subscriptions (Newsstand)
In-App Purchase • Consumable • Non-consumable • Non-renewable subscriptions •
Auto-renewalbe subscriptions • Free subscriptionsɹ2016ळ͔Βdeprecated
Auto-renewable subscriptions
Auto-renewable subscriptions ։ൃऀͷച্͕Ξοϓ
Auto-renewable subscriptions ։ൃऀͷച্͕Ξοϓ • ച্ͷ70→85% • ద༻ϦϦʔε͔Β1ޙ • ͢ͰʹϦϦʔε͔Β1ܦա͍ͯ͠Δσϕϩούʔʹద༻ࡁ Έ
Auto-renewable subscriptions ΧςΰϦ੍ݶͷഇࢭ
Auto-renewable subscriptions ΧςΰϦ੍ݶͷഇࢭ • 2016ळʙ • ϧʔϧ·ͩ໌จԽ͞Ε͍ͯͳ͍ ex) ͨͩͷջதి౮ΞϓϦʹ͑ͳ͍ͱ͔ •
͜Ε·Ͱ৹͕ࠪ௨Βͳ͔ͬͨΧςΰϦͰɺ৹ࠪʹ௨ΔΑ͏ ʹͳͬͨ
Auto-renewable subscriptions Subscription Groups ࠓ·Ͱ
Auto-renewable subscriptions Subscription Groups 2016ळʙ SubscriptionάϧʔϓʹෳͷΛแͰ͖Δ
Auto-renewable subscriptions Subscription Groups AppStoreΞϓϦͰҙͷϓϥϯʹมߋՄೳ
Auto-renewable subscriptions Territory Pricing ࠃ͝ͱʹTierͷΓସ͕͑Մೳ
Auto-renewable subscriptions Customrer Retension ্͛ͨ࣌͠… ࠓ·Ͱϝʔϧͷ௨ͷΈ
Auto-renewable subscriptions Customrer Retension ্͛ͨ࣌͠… 2016ळʙ PUSH௨དྷΔ
Auto-renewable subscriptions Customrer Retension 240ԁʹ্͛͢Δ͕ɺطʹߪೖࡁΈͷ Ϣʔβʔʹ120ԁͷ··ఏڙ͢Δ͜ͱ ͕Ͱ͖Δ
Auto-renewable subscriptions • ऩӹͱΧςΰϦͷخ͍͠ΈΜͳخ͍͠ʂ • (্͕ͬͨऩӹͰAppStoreͷࠂങͬͯͶ) • Androidʹಉ͡ػೳ͕ͳ͍ͷʹɺiOS͚ͩԼ͛ͬͯͷ… • ݸਓ։ൃऀʹخ͍͔͠
Using Store Kit for In-App Purchases with Swift 3
In-App Purchase Auto-renewable subscriptions Λ͜Ε͔Β࣮͢Δ͋ͳͨ
͜ͷಈըݟͳ͍͍ͯ͘Ͱ͢
iOS 10ʹͳͬͯߪೖॲཧͷϑϩʔ มΘΒͳ͍
In-App Purchase ϓϩάϥϛϯάΨ Πυ https://developer.apple.com/jp/documentation/ StoreKitGuide.pdf ϨγʔτݕূϓϩάϥϛϯάΨΠυ https://developer.apple.com/jp/documentation/General/ ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/
εϥΠυͷίʔυ͕ಈ͔ͳ͍
εϥΠυͷίʔυ͕ಈ͔ͳ͍
StoreKit API Diff in iOS 10 https://developer.apple.com/library/prerelease/content/ releasenotes/General/iOS10APIDiffs/Swift/StoreKit.html
StoreKit API Diff in iOS 10 Enumͷͷ಄จࣈ͕খจࣈʹͳͬͨ enum SKPaymentTransactionState :
Int { case Purchasing ! case purchasing
StoreKit API Diff in iOS 10 ͳϝιου໊͕γϯϓϧʹͳͬͨ // SKPaymentQueue func
addTransactionObserver(_ observer: SKPaymentTransactionObserver) ! func add(_ observer: SKPaymentTransactionObserver)
Receipt Validation
Receipt Validation StoreKitͰߪೖྃޙɺAppStore͔Βड͚औΕΔϨγʔτใ (ߪೖͷূ໌ॻ) ↓ վ᜵͞ΕΔةݥੑ͕͋Δ
Receipt Validation ΞϓϦͰݕূ ❌ΞϧΰϦζϜެ։͞Ε͍ͯΔ͕ෳࡶ ❌αϯϓϧίʔυ͕ͳ͍ ❌OSS͋Δʹ͋Δ͕… rmaddy/VerifyStoreReceiptiOS
Receipt Validation αʔόʔαΠυͰݕূ • ࣗલͰϗετ͢ΔαʔόʹϨγʔτΛ͛Δ • αʔόˠAppStoreʹϨγʔτΛ͛ͯݕূ͢Δ ✅ෳࡶͳϩδοΫΛ࣮͢Δඞཁ͕ແ͍
Φεεϝ SwiftyStoreKit ˒900+ https://github.com/bizz84/ SwiftyStoreKit In-App Purchaseʹඞཁͳॲཧ͕΄ͱΜ Ͳೖ͍ͬͯΔ
·ͱΊ • Auto-renewable subscriptions ։ൃऀͷऩӹ͕Ξοϓ • Auto-renewable subscriptions ͷΧςΰϦ੍ݶ͕ͳ͘ͳΔ •
iOS10ʹͳͬͯIn-App PurchaseͷΈมΘΒͣ • StoreKitϝιου໊ͷมߋ͕΄ͱΜͲ • ϨγʔτݕূαʔόʔͰΔͷ͕Φεεϝ
Thank You!