Bagaimana Anda menambahkan pembelian dalam aplikasi ke aplikasi iOS? Apa saja detailnya dan apakah ada kode sampel?
Ini dimaksudkan sebagai semacam cara untuk menambahkan pembelian dalam aplikasi ke aplikasi iOS
ios
objective-c
swift
cocoa-touch
in-app-purchase
Jojodmo
sumber
sumber
Jawaban:
Pengguna Swift
Pengguna Swift dapat memeriksa My Swift Answer untuk pertanyaan ini .
Atau, periksa Yedidya Reiss's Answer , yang menerjemahkan kode Objective-C ini ke Swift.
Pengguna Objective-C
Sisa dari jawaban ini ditulis dalam Objective-C
App Store Connect
My Apps
lalu klik aplikasi yang ingin Anda tambahkan pembelianFeatures
tajuk, lalu pilihIn-App Purchases
di sebelah kiri+
ikon di tengahnon-consumable
. Jika Anda akan mengirim barang fisik kepada pengguna, atau memberi mereka sesuatu yang dapat mereka beli lebih dari sekali, Anda akan memilihconsumable
.tld.websitename.appname.referencename
ini akan bekerja dengan baik, jadi misalnya, Anda dapat menggunakannyacom.jojodmo.blix.removeads
cleared for sale
dan pilih tier harga sebagai 1 (99 ¢). Tingkat 2 akan menjadi $ 1,99, dan tingkat 3 akan menjadi $ 2,99. Daftar lengkap tersedia jika Anda mengklikview pricing matrix
Saya sarankan Anda menggunakan tier 1, karena itu biasanya kebanyakan orang akan pernah membayar untuk menghapus iklan.add language
tombol biru , dan masukkan informasinya. Ini SEMUA akan ditampilkan kepada pelanggan, jadi jangan menaruh apa pun yang Anda tidak ingin mereka lihathosting content with Apple
memilih noscreenshot for review
UNTUK SEKARANG , semua yang kita lewati akan kembali.Mungkin perlu beberapa jam untuk ID produk Anda mendaftar
App Store Connect
, jadi bersabarlah.Menyiapkan proyek Anda
Sekarang setelah Anda mengatur informasi pembelian dalam aplikasi di App Store Connect, masuk ke proyek Xcode Anda, dan pergi ke manajer aplikasi (ikon seperti halaman biru di bagian atas tempat metode dan file header) klik pada aplikasi Anda di bawah target (harus menjadi yang pertama) kemudian buka general. Di bagian bawah, Anda akan melihat
linked frameworks and libraries
klik simbol tambah kecil dan tambahkan kerangka kerjaStoreKit.framework
Jika Anda tidak melakukan ini, pembelian dalam aplikasi TIDAK akan berfungsi!Jika Anda menggunakan Objective-C sebagai bahasa untuk aplikasi Anda, Anda harus melewati lima langkah ini . Jika tidak, jika Anda menggunakan Swift, Anda dapat mengikuti My Swift Answer untuk pertanyaan ini, di sini , atau, jika Anda lebih suka menggunakan Objective-C untuk kode Pembelian Dalam Aplikasi tetapi menggunakan Swift di aplikasi Anda, Anda dapat melakukan hal berikut :
Buat baru
.h
(header) file dengan pergi keFile
>New
>File...
( Command ⌘+ N). File ini akan disebut sebagai ".h
File Anda " di sisa tutorialSaat diminta, klik Buat Bridging Header . Ini akan menjadi file header bridging kami. Jika Anda tidak diminta, pergi ke langkah 3. Jika Anda sedang diminta, melewatkan langkah 3 dan langsung ke langkah 4.
Buat
.h
file lain bernamaBridge.h
dalam folder proyek utama, Kemudian pergi ke Manajer Aplikasi (ikon seperti halaman biru), lalu pilih aplikasi Anda diTargets
bagian, dan klikBuild Settings
. Temukan opsi yang mengatakan Swift Compiler - Code Generation , dan kemudian tetapkan opsi Objective-C Bridging Header keBridge.h
Dalam menjembatani file header Anda, tambahkan baris
#import "MyObjectiveCHeaderFile.h"
, di manaMyObjectiveCHeaderFile
nama file header yang Anda buat di langkah pertama. Jadi, misalnya, jika Anda memberi nama file header Anda InAppPurchase.h , Anda akan menambahkan baris#import "InAppPurchase.h"
ke file header jembatan Anda.Buat Objective-C Metode (baru
.m
) file dengan pergi keFile
>New
>File...
( Command ⌘+ N). Beri nama sama dengan file header yang Anda buat di langkah 1. Misalnya, jika Anda memanggil file di langkah 1 InAppPurchase.h , Anda akan memanggil file baru ini InAppPurchase.m . File ini akan disebut sebagai ".m
File Anda " di sisa tutorial.Coding
Sekarang kita akan masuk ke pengkodean yang sebenarnya. Tambahkan kode berikut ke
.h
file Anda :Selanjutnya, Anda perlu mengimpor
StoreKit
kerangka kerja ke.m
file Anda , serta menambahSKProductsRequestDelegate
danSKPaymentTransactionObserver
setelah@interface
deklarasi Anda :dan sekarang tambahkan berikut ini ke
.m
file Anda , bagian ini jadi rumit, jadi saya sarankan Anda membaca komentar dalam kode:Sekarang Anda ingin menambahkan kode Anda untuk apa yang akan terjadi ketika pengguna menyelesaikan transaksi, untuk tutorial ini, kami menggunakan hapus add, Anda harus menambahkan kode Anda sendiri untuk apa yang terjadi ketika tampilan banner dimuat.
Jika Anda tidak memiliki iklan di aplikasi Anda, Anda dapat menggunakan hal lain yang Anda inginkan. Misalnya, kita bisa membuat warna latar belakang menjadi biru. Untuk melakukan ini kami ingin menggunakan:
Sekarang, di suatu tempat dalam
viewDidLoad
metode Anda, Anda akan ingin menambahkan kode berikut:Sekarang bahwa Anda telah menambahkan semua kode, pergi ke Anda
.xib
ataustoryboard
file, dan menambahkan dua tombol, satu pembelian katakan, dan pepatah lainnya mengembalikan. HubungkantapsRemoveAds
IBAction
ke tombol pembelian yang baru saja Anda buat, danrestore
IBAction
ke tombol restore. Therestore
tindakan akan memeriksa apakah pengguna sebelumnya telah membeli pembelian di-app, dan memberi mereka di-app pembelian secara gratis jika mereka tidak sudah memilikinya.Mengirimkan untuk ditinjau
Selanjutnya, masuk ke App Store Connect , dan klik
Users and Access
lalu klikSandbox Testers
tajuk, lalu klik+
simbol di sebelah kiri tempat dikatakanTesters
. Anda dapat memasukkan hal-hal acak untuk nama depan dan belakang, dan email tidak harus nyata - Anda hanya harus dapat mengingatnya. Masukkan kata sandi (yang harus Anda ingat) dan isi informasi selanjutnya. Saya akan merekomendasikan Anda membuatDate of Birth
tanggal yang akan membuat pengguna berusia 18 tahun ke atas.App Store Territory
HARUS berada di negara yang benar. Selanjutnya, keluar dari akun iTunes Anda yang ada (Anda dapat masuk kembali setelah tutorial ini).Sekarang, jalankan aplikasi Anda di perangkat iOS Anda, jika Anda mencoba menjalankannya di simulator, pembelian akan selalu salah, Anda HARUS menjalankannya di perangkat iOS Anda. Setelah aplikasi berjalan, ketuk tombol pembelian. Saat Anda diminta untuk masuk ke akun iTunes Anda, masuklah sebagai pengguna uji yang baru saja kami buat. Selanjutnya, ketika meminta Anda untuk mengkonfirmasi pembelian 99 ¢ atau apa pun yang Anda tetapkan juga tingkat harganya, AMBILKAN SNAPSHOT LAYAR, inilah yang akan Anda gunakan untuk
screenshot for review
di App Store Connect Anda. Sekarang batalkan pembayaran.Sekarang, pergilah ke App Store Connect , kemudian pergi ke
My Apps
>the app you have the In-app purchase on
>In-App Purchases
. Kemudian klik pembelian dalam aplikasi Anda dan klik edit di bawah detail pembelian dalam aplikasi. Setelah Anda selesai melakukannya, impor foto yang baru saja Anda ambil di iPhone ke komputer Anda, dan unggah itu sebagai tangkapan layar untuk ditinjau, lalu, dalam catatan ulasan, masukkan e-mail TEST USER dan kata sandi Anda. Ini akan membantu apel dalam proses peninjauan.Setelah Anda melakukan ini, kembali ke aplikasi di perangkat iOS Anda, masih masuk sebagai akun pengguna uji, dan klik tombol beli. Kali ini, konfirmasi pembayaran. Jangan khawatir, ini TIDAK akan membebankan biaya pada akun Anda APA PUN, akun pengguna uji mendapatkan semua pembelian dalam aplikasi secara gratis Setelah Anda mengkonfirmasi pembayaran, pastikan bahwa apa yang terjadi ketika pengguna membeli produk Anda sebenarnya terjadi Jika tidak, maka itu akan menjadi kesalahan dengan
doRemoveAds
metode Anda . Sekali lagi, saya sarankan menggunakan mengubah latar belakang menjadi biru untuk menguji pembelian dalam aplikasi, ini seharusnya bukan pembelian dalam aplikasi Anda yang sebenarnya. Jika semuanya bekerja dan Anda baik untuk pergi! Pastikan untuk memasukkan pembelian dalam aplikasi dalam biner baru Anda ketika Anda mengunggahnya ke App Store Connect!Berikut ini beberapa kesalahan umum:
Dicatat:
No Products Available
Ini bisa berarti empat hal:
kRemoveAdsProductIdentifier
dalam kode di atasJika itu tidak berhasil pertama kali, jangan frustrasi! Jangan menyerah! Butuh waktu sekitar 5 jam langsung sebelum saya bisa membuatnya bekerja, dan sekitar 10 jam mencari kode yang tepat! Jika Anda menggunakan kode di atas persis, itu akan berfungsi dengan baik. Jangan ragu untuk berkomentar jika Anda memiliki pertanyaan sama sekali .
Saya harap ini membantu semua yang berharap untuk menambahkan pembelian dalam aplikasi ke aplikasi iOS mereka. Bersulang!
sumber
Cukup terjemahkan kode Jojodmo ke Swift:
sumber
Jawaban Cepat
Ini dimaksudkan untuk melengkapi jawaban Objective-C saya untuk pengguna Swift, agar jawaban Objective-C saya tidak terlalu besar.
Mempersiapkan
Pertama, atur pembelian dalam aplikasi di appstoreconnect.apple.com . Ikuti bagian awal jawaban Objective-C saya (langkah 1-13, di bawah App Store Connect tajuk ) untuk instruksi melakukan hal itu.
Diperlukan beberapa jam bagi ID produk Anda untuk mendaftar di App Store Connect, jadi bersabarlah.
Sekarang setelah Anda mengatur informasi pembelian dalam aplikasi di App Store Connect, kami perlu menambahkan kerangka kerja Apple untuk pembelian dalam aplikasi,
StoreKit
dalam aplikasi,, ke aplikasi.Pergilah ke proyek Xcode Anda, dan pergi ke manajer aplikasi (ikon seperti halaman biru di bagian atas bilah kiri di mana file aplikasi Anda berada). Klik aplikasi Anda di bawah target di sebelah kiri (itu harus menjadi pilihan pertama), lalu pergi ke "Kemampuan" di atas. Pada daftar, Anda akan melihat opsi "Pembelian Dalam Aplikasi". Nyalakan kemampuan ini, dan Xcode akan menambah
StoreKit
proyek Anda.Coding
Sekarang, kita akan mulai coding!
Pertama, buat file cepat baru yang akan mengelola semua pembelian dalam aplikasi Anda. Saya akan menyebutnya
IAPManager.swift
.Dalam file ini, kita akan membuat kelas baru, yang disebut
IAPManager
itu adalahSKProductsRequestDelegate
danSKPaymentTransactionObserver
. Di bagian atas, pastikan Anda mengimporFoundation
danStoreKit
Selanjutnya, kita akan menambahkan variabel untuk menentukan pengidentifikasi untuk pembelian dalam aplikasi kami (Anda juga bisa menggunakan
enum
, yang akan lebih mudah dipertahankan jika Anda memiliki beberapa IAP).Mari kita tambahkan inisialisasi untuk kelas kita selanjutnya:
Sekarang, kita akan menambahkan fungsi yang diperlukan untuk
SKProductsRequestDelegate
danSKPaymentTransactionObserver
berfungsi:Kami akan menambahkan
RemoveAdsManager
kelas nantiSekarang mari kita tambahkan beberapa fungsi yang dapat digunakan untuk memulai pembelian atau mengembalikan pembelian:
Selanjutnya, mari kita tambahkan kelas utilitas baru untuk mengelola IAP kami. Semua kode ini bisa berada dalam satu kelas, tetapi memiliki beberapa kode menjadikannya sedikit lebih bersih. Saya akan membuat kelas baru yang disebut
RemoveAdsManager
, dan di dalamnya, meletakkan beberapa fungsiPertama tiga fungsi,
removeAds
,restoreRemoveAds
, danareAdsRemoved
, adalah fungsi yang Anda akan menelepon untuk melakukan tindakan tertentu. Empat yang terakhir adalah yang akan dipanggil olehIAPManager
.Mari kita tambahkan beberapa kode ke dua fungsi pertama,
removeAds
danrestoreRemoveAds
:Dan terakhir, mari kita tambahkan beberapa kode ke lima fungsi terakhir.
Menyatukan semuanya, kita mendapatkan sesuatu seperti ini:
Terakhir, Anda perlu menambahkan beberapa cara bagi pengguna untuk memulai pembelian dan menelepon
RemoveAdsManager.removeAds()
dan memulai pengembalian dan panggilanRemoveAdsManager.restoreRemoveAds()
, seperti tombol di suatu tempat! Perlu diingat bahwa, sesuai pedoman App Store, Anda perlu memberikan tombol untuk mengembalikan pembelian di suatu tempat.Mengirimkan untuk ditinjau
Hal terakhir yang harus dilakukan adalah mengirimkan IAP Anda untuk ditinjau di App Store Connect! Untuk petunjuk terperinci tentang melakukan hal itu, Anda dapat mengikuti bagian terakhir dari jawaban Objective-C saya , di bawah judul Pengiriman untuk ulasan .
sumber
RMStore adalah perpustakaan iOS ringan untuk Pembelian Dalam Aplikasi. Itu membungkus API StoreKit dan memberi Anda blok praktis untuk permintaan asinkron. Membeli produk semudah memanggil satu metode.
Untuk pengguna tingkat lanjut, perpustakaan ini juga menyediakan verifikasi tanda terima, unduhan konten, dan kegigihan transaksi.
sumber
Saya tahu saya cukup terlambat untuk memposting ini, tetapi saya berbagi pengalaman yang sama ketika saya mempelajari tali model IAP.
Pembelian dalam aplikasi adalah salah satu alur kerja paling komprehensif di iOS yang diterapkan oleh kerangka kerja Storekit. The seluruh dokumentasi cukup jelas jika Anda kesabaran untuk membacanya, tapi agak maju dalam sifat teknis.
Untuk meringkas:
1 - Minta produk - gunakan kelas SKProductRequest & SKProductRequestDelegate untuk mengeluarkan permintaan ID Produk dan menerimanya kembali dari toko itunesconnect Anda sendiri.
Produk-produk SKP ini harus digunakan untuk mengisi UI toko Anda yang dapat digunakan pengguna untuk membeli produk tertentu.
2 - Masalah permintaan pembayaran - gunakan SKPayment & SKPaymentQueue untuk menambahkan pembayaran ke antrian transaksi.
3 - Memantau antrian transaksi untuk pembaruan status - gunakan metode updatedTransactions Protocol SKPaymentTransactionObserver untuk memantau status:
4 - Kembalikan aliran tombol - gunakan restore SKPaymentQueue'sTransletedTransactions untuk mencapai ini - langkah 3 akan mengurus sisanya, bersama dengan metode SKPaymentTransactionObserver berikut:
Berikut ini adalah tutorial langkah demi langkah (yang ditulis oleh saya sebagai hasil dari upaya saya sendiri untuk memahaminya) yang menjelaskannya. Pada akhirnya ini juga menyediakan contoh kode yang dapat Anda gunakan langsung.
Ini adalah satu lagi yang saya buat untuk menjelaskan hal-hal tertentu yang hanya bisa dijelaskan oleh teks dengan cara yang lebih baik.
sumber