Fitur Rilis Game Unreal Engine 4 iOS

Salam pembuka.

Dalam artikel ini saya akan mencantumkan kesulitan dan momen yang tidak jelas yang saya temui secara pribadi ketika merilis game di iOS, serta solusi mereka.

Permainan mulai dibuat di Unreal Engine 4.18, sekarang build terakhir di toko menggunakan UE 4.24. Awalnya game ini dirilis di Android, setelah saya mulai merilisnya di iOS.

gambar

Siapa yang mungkin tertarik dengan artikel ini:

  • Pengembang game UE 4 yang memutuskan untuk memasukkan pekerjaan mereka ke App Store.
  • Pengembang aplikasi iOS (beberapa bagian artikel hanya berbicara tentang ekosistem Apple tanpa terikat ke UE 4).


Penolakan:
  • .
  • — , , .
  • - .
  • - , .


Spoiler
51 , iOS, «The status of your app, Sokopango, is now „Ready for Sale“.». 40 .


1. Langkah pertama di App Store Connect


1.1 Verifikasi Program ID Apple


Setelah membayar keanggotaan (pendaftaran / bergabung dengan Program Pengembang Apple) dengan kartu virtual (ini adalah kartu tempat, ketika membayar melalui Internet, saya perlu menunjukkan "KARTU DIGITAL" dan bukan nama saya - ini di bank saya, Anda mungkin memiliki pemegang kartu yang berbeda), perlu untuk mengkonfirmasi identitas, karena Informasi akun saya tidak cocok dengan data pemegang kartu.
Ini adalah bagian dari teks surat dari orang yang memeriksa pendaftaran saya:
...
Untuk melanjutkan dengan pendaftaran Program Pengembang Apple Anda, kami harus memverifikasi identitas pengembang yang akan menggunakan akun tersebut.

Unggah salinan ID foto pengembang. ID harus memenuhi persyaratan verifikasi untuk wilayah Anda:

  • Paspor yang dikeluarkan pemerintah
  • Valid (tidak kedaluwarsa)
  • Termasuk nama dalam karakter Romawi *

* Jika ID tidak termasuk nama roman, Anda juga harus mengunggah terjemahan bahasa Inggris yang disahkan pengacara.
...

Saya beruntung memiliki paspor yang masih berlaku. Saya melakukan pemindaian dan mengirimnya sebagai balasan surat itu. Hari itu saya bergabung dengan Program Pengembang Apple.

Karena itu, jika Anda membayar biaya dari kartu yang informasi pemegangnya berbeda dari nama Anda, bersiaplah untuk mengonfirmasi identitas pengembang.

1.2 Konfirmasi Pembayaran


Jika aplikasi akan menguntungkan (dibayar, atau ada pembelian bawaan), Anda harus menentukan data pembayaran di profil Anda.

Kita pergi:

  • App Store Connect .
  • Perjanjian, pajak, dan perbankan .
  • Kami pergi ke "Aplikasi berbayar."
  • Kami mengisi data yang diperlukan. Ini akan menjadi informasi kontak, formulir pajak, dan indikasi rekening bank mata uang. Dalam formulir pajak dalam "Tipe Beneficial Owner" saya menunjukkan "Pemilik Perorangan / Tunggal", oleh karena itu saya selalu menunjukkan data pribadi saya (nama dan nomor telepon), juga menunjukkan akun mata uang asing yang saya buka di akun pribadi bank dalam satu menit.
  • Kami mengirim untuk verifikasi, kami menunggu konfirmasi dan status "Aktif" yang dihargai.

Anda juga dapat membaca tentang ini di Alur Kerja untuk mengonfigurasi pembelian dalam aplikasi .

1.3 Video untuk melihat pratinjau aplikasi


Di pengaturan halaman aplikasi, selain tangkapan layar, Anda dapat mengunduh lebih banyak video. Tautan ke video YouTube cukup dimasukkan ke Google Play. Di App Store, kutipan berbeda:
Untuk mengunduh video untuk melihat pratinjau aplikasi, Anda harus menggunakan Safari dan OS X versi 10.10 dan yang lebih baru.
Ternyata, gambar dapat diunduh dari browser apa saja di OS apa pun, dan hanya video dari Safari, yang hanya tersedia di MacOS.

Saya sudah memiliki video selesai, tetapi tidak sesuai dengan ukuran sisinya.

Spesifikasi singkat tentang video (teks kesalahan di App Store Connect saat video gagal dimuat):
  • Layar iPhone 6,5 inci - "Dimensi pratinjau aplikasi harus: 1920x886, 886x1920.".
  • iPhone 5,5‑ — «App preview dimensions should be: 1920x1080, 1080x1920.».
  • iPad Pro (3- ) 12,9- — «App preview dimensions should be: 1600x1200, 1200x1600.».
  • iPad Pro (2- ) 12,9‑ — «App preview dimensions should be: 1200x900, 900x1200, 1600x1200, 1200x1600.».
Di sini Anda dapat melihat spesifikasi untuk pratinjau video aplikasi.

Spesifikasi mencantumkan lebih banyak izin untuk perangkat yang berbeda. Untuk halaman saya ada 4 video dengan izin dari daftar di atas.

Saya tidak ingin membuat video baru, saya harus mengedit yang sudah ada. Untuk mengubah resolusi, saya menemukan di internet situs pertama yang saya harus mengubah ukuran video. Resolusi berubah dengan menambahkan bilah hitam ke gambar. Bagi saya itu bisa diterima.

Juga, video saya lebih lama dari 30 detik (ini adalah maksimum untuk pratinjau), jadi saya harus memotongnya sedikit.

Juga menjadikannya editor online pertama yang menemukan.

1.4 Lainnya


  • Terkejut bahwa tidak ada kategori game Arcade.
  • Anda tidak dapat menetapkan harga sewenang-wenang dalam pembelian, tidak seperti Google Play.

2. Perakitan proyek


2.1 Pengaturan proyek


Semua informasi ada dalam dokumentasi . Aku memandang pengaturan secara terpisah (yang " Build " dan " Config " folder , dan " ProjectName.Target.cs ", " ProjectName.Build.cs " file ) di ActionRPG dan UnrealMatch3 proyek Template - Saya mengambil banyak dari sana.

Pastikan untuk memiliki setidaknya 1 sertifikat, profil, dan pengenal (ID Aplikasi / Bundel ID) untuk mengumpulkan dan meletakkan aplikasi di App Store.

Saya sudah / sudah:

  • 2 sertifikat - untuk toko (ketik "Distribusi iOS" - unit dengan sertifikat ini akan diunggah ke App Store Connect) dan untuk pengujian (ketik "Pengembangan iOS" - ketika aplikasi diunggah langsung ke iPhone melalui USB).
  • 1 pengidentifikasi.
  • 2 ( ) — . UDID iTunes.
  • 2 — ( , ).

2.2 MacOS


Berkat kebijakan Apple, Anda perlu MacOS untuk membangun proyek untuk iOS. Saya memiliki Windows, kompilasi silang, seperti untuk membangun di Linux, tidak dapat dilakukan.

Ada upaya sia-sia untuk menginstal / menjalankan gambar MacOS virtual pada AMD Phenom saya.
Saya harus berhenti di mesin virtual rental. Saya mencari dan menemukan layanan ini .

Registrasi dan pembayaran digabungkan, mis. Anda tidak bisa mendaftar, Anda harus membayar segera (saya melihat ini untuk pertama kalinya). Saya membeli tarif macOS Mojave Cloud Basic untuk $ 34,99 per bulan. Segera setelah pendaftaran / pembayaran saya menerima surat dengan instruksi dan akses.

Untuk mengakses server jarak jauh, Anda harus menginstal Klien NoMachine Enterprise.
Saya masuk, memperbarui OS (itu bukan versi terbaru) dan menginstal Xcode.

2.3 Kompilasi jarak jauh


VPS disewa, mengatur proyek, set Xcode - saatnya untuk membangun proyek.

Tetapi pertama-tama Anda perlu mengkonfigurasi kompilasi jarak jauh, baca dokumentasi .

Anda juga harus menonaktifkan sementara klien SSH yang ada, jika tidak akan ada kesalahan yang terkait dengan rsync selama kompilasi jarak jauh (Saya tidak ingat teks kesalahan).

Saya memiliki Windows 10, saya baru saja mengganti nama folder " C: \ Windows \ System32 \ OpenSSH ".
Setelah itu, di terminal, Anda dapat menjalankan perintah " where ssh.exe " untuk memverifikasi bahwa OS tidak memiliki klien SSH yang tersedia. Jawaban saya adalah "INFORMASI: Saya tidak dapat menemukan file sesuai dengan templat yang diberikan.".

Membantu posting .

Di VPS saya, SSH tidak perlu dikonfigurasi - semuanya bekerja di luar kotak.

Saya tidak ingat mengapa saya menyimpannya untuk diri saya sendiri , sebuah artikel tentang menyiapkan pembangunan proyek jarak jauh - tiba-tiba akan berguna.

2.4 Sedikit tentang perakitan proyek


Pertemuan saya membutuhkan rata-rata 20 hingga 50 menit. 20 menit ketika konten tidak berubah, tetapi dapat memperbaiki sesuatu di konfigurasi.

Tetapi jika ada pembaruan ke mesin, atau ada sesuatu yang berubah serius dalam konten, majelis dapat meningkat. Itu meningkat rata-rata hingga 50 menit.

Ketika kompilasi jarak jauh pada VPS, kode sumber mesin, proyek, file sementara, dll. Disalin. Semua ini ada di " [Home] / UE4 / ".

Bergantung pada pengaturan proyek, file IPA yang dihasilkan mungkin memiliki ukuran yang berbeda.
Ukuran file yang diterima hanya dipengaruhi oleh opsi "Build Configuration" (Pengaturan Proyek - Proyek - Pengemasan) - Pengembangan atau Pengiriman.

Bendera "Untuk Distribusi", serta sertifikat dan profil yang dipilih, tidak memengaruhi ukuran.

Satu-satunya hal dengan set bendera "Untuk Distribusi" adalah sertifikat dan profil Distribusi harus dipilih, jika tidak proyek tidak akan dirakit.

Juga, ketika bendera "Untuk Distribusi" diatur, awalan "Distro_" ditambahkan ke file, dan selama perakitan Pengiriman, akhiran "-IOS-Pengiriman" ditambahkan.

Misalnya, dimensi majelis saya:

  • Pembangunan-build - 186 Mb.
  • Perakitan Pengiriman - 491 Mb.

Kedua file dapat diunggah ke ponsel melalui USB untuk pengujian.

Adapun file besar yang diperoleh selama perakitan Pengiriman, seperti yang saya mengerti, itu berisi sumber daya untuk berbagai perangkat.

Berikut ini informasi yang ditampilkan pada file ini di App Store Connect:

gambar

2.5 Kesalahan dan solusi pemasangan


2.5.1 Masalah dengan profil


Kesalahan:
Ketentuan tidak ditemukan. Diperlukan ketentuan untuk menggunakan aplikasi Anda ke perangkat.
Kunci masuk tidak ditemukan. Aplikasi tidak dapat ditandatangani secara digital, karena kunci masuk tidak dikonfigurasikan.
...
Solusi: hapus profil dari direktori " C: \ Users \ [UserName] \ AppData \ Local \ Apple Computer \ MobileDevice \ Provisioning Profiles " dan impor kembali ke proyek.

Kesalahan mungkin muncul karena saya mengimpor profil dan sertifikat di pengaturan editor dan melalui IPhonePackager.

Akibatnya, ada beberapa, meskipun seharusnya ada 2 pcs.

2.5.2 Masalah dengan Xcode


Kesalahan:
SDK MacOSX.sdk tidak valid, tidak ditemukan di /Library/Developer/CommandLineTools/Platforms/MacOSX.platform/Developer/SDKs
SDK iPhoneOS.sdk tidak valid, tidak ditemukan di / Library / Developer / CommandLineTools / Platforms / iPhoneOSplatform

Solusi: di terminal, jalankan perintah " sudo xcode-select -r ".

2.5.3. Kesalahan terkait rsync lain-lain


Kesalahan:
  • beberapa file / attrs tidak ditransfer (lihat kesalahan sebelumnya) (kode 23) di /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/main.c
  • rsync error: kesalahan dalam kode IPC (kode 14)
  • lain
Solusi: restart perakitan. Saya kadang-kadang harus me-restart 2-3 kali untuk menjalankan proyek. Selain itu, perakitan dapat terganggu baik di awal maupun di dekat akhir.

2.5.4. Kegagalan pembangunan pembangunan


Kesalahan:
Provisioning profile «Development» doesn't match the entitlements file's value for the get-task-allow entitlement
Code signing is required for product type 'Application' in SDK 'iOS 12.2'

Solusi: posting ini membantu .
Dalam daftar pengidentifikasi saya pergi ke yang benar, mengatur bendera di iCloud, menyimpannya.
Ada pesan bahwa profil akan menjadi tidak valid - dan itu terjadi.
Upaya membangun (untuk verifikasi) adalah kesalahan. Seharusnya begitu.
Sekali lagi saya pergi ke pengenal saya, sekarang saya menghapus bendera di iCloud, menyimpannya.
Kebaktian itu berhasil.

Kemudian saya harus menghapus profil yang tidak valid dari proyek dan membuat yang baru. Atau Anda dapat mencoba masuk ke profil di situs, menyimpannya secara lokal, dan memuatnya ke dalam proyek.

2.5.5 Masalah Sertifikat


Kesalahan:
Kunci tidak dapat digunakan dalam kondisi yang ditentukan

Saya menghapus sertifikat dari pengaturan proyek, mencoba menambahkannya lagi, ketika menambahkannya diperlukan kata sandi yang dimasukkan. Sekali lagi perakitan dengan kesalahan, saya tidak ingat yang mana.

Solusi: menghapus sertifikat (dari toko sertifikat, lihat bagian 2.6.a ) dan profil (dari katalog, lihat bagian 2.5.1 ), pembuatan ulang (jika perlu), impor ke proyek.

Apa yang saya lakukan - alih-alih mengimpor sertifikat dan profil yang ada, saya membuat ulang semuanya dan kemudian menambahkannya ke proyek. Saat menambahkan sertifikat, kata sandi tidak lagi diperlukan, tetapi harus menentukan file " * KeyPair.key ".
Setelah itu, proyek berhasil dirakit.

2.6 Sedikit tentang sertifikat


  1. . IE, , . " MMC".
  2. 2 , 2-3 , «Maximum number of certificates generated». , , .

3


3.1


Untuk menguji pada ponsel saat menginstal aplikasi melalui USB, Anda harus menggunakan sertifikat Pengembangan dan profil Pengembangan dengan UDID perangkat yang ditentukan.
Dengan demikian, proyek harus dirangkai dengan sertifikat dan profil ini. Seperti yang saya tulis di atas, tidak masalah opsi mana yang dipilih dalam "Membangun Konfigurasi" - Pengembangan atau Pengiriman, tetapi bendera "Untuk Distribusi" harus tidak dicentang.

3.2 IPhonePackager


Aplikasi ini diinstal melalui program IPhonePackager (path " [EnginePath] \ Engine \ Binaries \ DotNET \ IOS \ IPhonePackager.exe ").
Saat startup, kotak dialog untuk memilih proyek akan terbuka, itu harus ditutup. Pada program yang terbuka, buka tab Advanced Tools - klik tombol Install IPA to hardware ... - pilih file ipa - tunggu instalasi berhasil.
Instalasi saya di ponsel membutuhkan 20 hingga 80 detik (tergantung pada ukuran file dan fase bulan).

Saya secara berkala tidak dapat menginstal aplikasi melalui IPhonePackager (sebenarnya sebelum transisi ke UE 4.24).

Kesalahan (sebelum UE 4.24): "Instal \ Pembaruan dari" FileName.ipa "gagal dengan Kesalahan Paket Ekstraksi Gagal di ..."

Keunikan kesalahan adalah bahwa pengiriman file hang (dikirim dalam beberapa bagian), atau sangat cepat disalin ke telepon (misalnya, setengah gigabyte per detik).

Solusi (tidak selalu berfungsi): sambungkan kembali kabel ke telepon, atau tempelkan kabel lain, atau hidupkan ulang telepon. Tapi kadang-kadang tidak ada yang membantu (walaupun iTunes melihat telepon), jadi saya harus menunda pengujian.

3.3 TestFlight


Anda juga dapat menguji aplikasi melalui TestFlight. Pengujian ditutup, dengan undangan.

Di App Store Connect di bawah TestFlight:

  • di subbagian "App Store Connect Users", tambahkan diri Anda.
  • di subbagian "Penguji dan Grup", tambahkan sekelompok penguji, lalu tambahkan email pengguna yang akan menguji aplikasi. Mereka akan menerima surat undangan dan kode yang akan memungkinkan mereka terhubung ke program pengujian - untuk menginstal aplikasi yang sedang diuji.

Grup penguji yang dibuat memiliki 2 bagian: Penguji dan Sidang :
  • di " penguji " adalah alamat surat dari pengguna yang akan terhubung ke pengujian, serta tautan ke aplikasi yang dengannya para pengguna ini dapat menginstal aplikasi.
  • di " majelis " adalah majelis yang tersedia untuk pengujian - yang akan ditentukan secara manual.

Anda juga perlu menginstal aplikasi TestFlight di ponsel Anda .

Pengembang, administrator, atau pemegang akun tidak perlu memasukkan kode. Versi aplikasi terbaru yang diunduh akan tersedia segera setelah mengunduh ke App Store Connect.

Tetapi semua orang harus diundang (kode aktivasi akan dikirim), dan versi yang akan ditunjukkan dalam kelompok penguji akan tersedia untuk mereka.

4 Unduh di App Store Connect


Jika UE versi 4.24 diinstal (Xcode 11 diperlukan) dan lebih tinggi, Transporter akan diminta untuk mengunduh aplikasi ke App Store Connect .

Jika UE versi 4.23 diinstal (diperlukan Xcode 10) dan di bawah ini, Application Loader digunakan:
gambar

Di Transporter, kredensial ID Apple digunakan untuk masuk, dan di Application Loader hanya login dari yang diperlukan, dan kata sandi harus dibuat, Anda dapat membacanya di halaman resmi Menggunakan kata sandi khusus aplikasi .

Karena saya memiliki Windows, saya perlu mentransfer file ipa ke VPS. Saya menggunakan layanan Kirim Firefox . Ini nyaman bagi saya karena Anda tidak perlu masuk - membuka situs web, mengunggah file, menerima tautan, mengunduh file di mesin virtual.

5 Pembelian dalam game


5.1 Pengaturan di App Store Connect


Sebelum mengirim aplikasi untuk verifikasi, saya segera membuat pembelian dalam game. Ternyata, mereka diperiksa / disetujui bersama dengan aplikasi.
Untuk pembelian yang disetujui, disarankan untuk melampirkan tangkapan layar dari jendela
belanja (untuk setiap pembelian), di mana tombol untuk melakukan pembelian akan terlihat. Saya memiliki 1 tangkapan layar untuk semua pembelian. Tangkapan layar itu sendiri diambil dari editor (bukan dari game), dan diperbaiki.

Karena tangkapan layar harus berukuran tertentu (640x920 piksel), saya harus menekan bagian gambar satu sama lain. Dengan demikian, tampilan jendela belanja di tangkapan layar dan di permainan berbeda.

gambar

Tombol untuk pembelian harus terlihat, bahkan jika tidak ada yang terjadi ketika Anda mengkliknya.

Pada awalnya saya menyembunyikan tombol pembelian, menunjukkannya hanya setelah menerima informasi tentang mereka (harga, nama, mata uang, dll.) - tidak perlu melakukan ini. Karena itu, aplikasi dan pembelian saya tidak lolos verifikasi.

5.2 Opsi "bUseStoreV2" di file konfigurasi dan metode "RestoreInAppPurchase"


Secara default, opsi " bUseStoreV2 = true " diaktifkan untuk proyek , lihat " [EngineFolder] /Config/IOS/IOSEngine.ini ". Pembelian dalam game tidak berhasil dengannya. Dan masalah ini bukan untuk saya sendiri, berdasarkan jumlah posting di forum dan AnswerHub.

Solusi: Saya mendaftarkan baris " bUseStoreV2 = false " di file " [UnrealProject] /Config/IOS/IOSEngine.ini ". Jika tidak ada file, kami membuatnya - kami melihat contoh proyek, atau kami mencari di Internet.

Tentu saja, dengan setiap pembelian Anda harus memasukkan nama pengguna / kata sandi ID Apple Anda, tetapi bagi saya itu lebih baik daripada tidak sama sekali, dan tidak ada waktu untuk mengerti.

Pembelian pemulihan data belum bekerja untuk saya (metode " RestoreInAppPurchase"), dan yang paling penting, harga untuk pembelian tidak ditampilkan (" metode ReadInAppPurchaseInformation ), meskipun semuanya bekerja dengan baik di Android. Setelah beberapa waktu, saya menghapus penggunaan " RestoreInAppPurchase " (saya punya iklan, yang bisa dimatikan, tetapi kemudian saya menghapus iklan, dan karenanya pembelian ini juga, dan tidak perlu mengembalikan data pembelian yang dibeli), dan, secara ajaib, setelah itu memuat harga dalam game.

6 Tinjauan / Verifikasi


Karena ini adalah pertama kalinya bersamaku.
15.06 — 1- , 14 . . , ( ). , , .

18.06 — 2- , 2- . , , . , , , .

21.06 — 3- . 9 , , .

30.06 — 4- , 9 . , 2.3.1 ( - ). , — . ( . 5.1), . . — , ( ). , . — , . , -, (. . 5.1). ( , , , ). , .

, , — , , . . , , , .

17.07 — 5- , 7 . , 2.3.1. . , , . . , , .

26.07 — 6- , 18 , 18 .

Kesimpulan (secara subyektif):

  • di Google Play, mudah bagi saya untuk memeriksa persetujuan aplikasi di toko, di sini semua orang akan melihat di bawah kaca pembesar. Mungkin ada bot, orang-orang di sini. Apa yang lebih baik? Saya tidak tahu.
  • jawaban berdasarkan hasil pemeriksaan untuk sebagian besar tidak membawa informasi apa pun tentang apa yang perlu diperbaiki.
  • saat-saat tidak jelas - pembelian ditolak, dan saya baru tahu ketika saya memutuskan untuk pergi ke halaman dengan pengaturan mereka, tidak ada pesan.
  • Untuk mempercepat peluncuran verifikasi, coret-coret di semua contoh Apple - tulis pesan di pusat solusi, ajukan banding (dari pusat solusi), ajukan pertanyaan ke tim verifikasi.

7 Ringkasan Artikel


Daftar periksa saya, yang saya kompilasi untuk diri saya sendiri (perkiraan analog dari halaman resmi ), untuk merilis aplikasi di iOS:

  1. mendaftar dan membayar untuk partisipasi dalam program pengembang .
  2. jika Anda memiliki Windows, Anda dapat menggunakan VPS dengan macOS.
  3. saat kompilasi jarak jauh pada macOS, Anda hanya perlu menginstal Xcode, Unreal Launcher / Editor / dll. tidak perlu menginstal.
  4. .
  5. — 2 . — development distribution/shipping — .
  6. .
  7. .
  8. SSH MacOS . , , PyTTY.
  9. perakitan proyek - artikel . Perhatian: saat berkumpul dengan bendera "Untuk Distribusi", Anda harus memilih profil / sertifikat distribusi, jika tidak pilih profil / sertifikat pengembangan. Dipilih dalam pengaturan proyek, atau dalam file " Config / DefaultEngine.ini " "" [/Script/IOSRuntimeSettings.IOSRuntimeSettings] ", MobileProvision / SigningCertificate - lines.
  10. pengujian perangkat - artikel .

8 Kesimpulan


Semua ini terjadi pada saya di musim panas 2019. Saya bisa melupakan sesuatu dan tidak menggambarkannya seperti itu, beberapa saat mungkin menjadi tidak relevan.

Saya akan senang jika informasi ini membantu seseorang.

All Articles