Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
290
Live Renderingとの上手い付き合い方
worlddowntown
1
540
20150225_iqon.pdf
worlddowntown
0
87
ios_push_local_notification
worlddowntown
0
140
iqon_ios_growth_hack
worlddowntown
3
4.3k
Other Decks in Programming
See All in Programming
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
390
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
420
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
340
認証・認可の基本を学ぼう後編
kouyuume
0
240
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
490
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
170
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
130
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
310
開発に寄りそう自動テストの実現
goyoki
2
990
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
130
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Speed Design
sergeychernyshev
33
1.4k
For a Future-Friendly Web
brad_frost
180
10k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Building Applications with DynamoDB
mza
96
6.8k
What's in a price? How to price your products and services
michaelherold
246
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Faster Mobile Websites
deanohume
310
31k
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!