Kegagalan Pengunggahan AppStore Sumber Daya Sesuai Permintaan di aplikasi iOS - Jalur yang Tidak Diizinkan

Saya memiliki aplikasi yang menggunakan ARKit. Hingga versi saat ini, semua aset disertakan dalam app bundle itu sendiri dan tampaknya tidak ada masalah bagi pengguna dalam menggunakan aplikasi tersebut.

Namun, saya ingin mengaktifkan Sumber Daya Sesuai Permintaan pada aplikasi sehingga sumber daya modul (permainan) yang lebih baru dapat diunduh dari AppStore, sehingga menghindari ukuran aplikasi yang besar. Mengikuti dokumentasi iOS, saya dapat menggunakan ODR dan aplikasinya berfungsi dengan baik di perangkat saya. Itu memuat sumber daya menggunakan ODR sebagaimana mestinya.

Namun, saat mengunggah ke AppStore untuk Tinjauan Aplikasi, saya mengalami kesalahan:

masukkan deskripsi gambar di sini

Struktur folder saya untuk folder SCNAssets tertentu (yang diberi tag) ada di bawah:

masukkan deskripsi gambar di sini

Harap dicatat bahwa aplikasi ini berfungsi dengan sempurna menggunakan ODR di perangkat saya. Saya telah melakukan hal berikut dan mencoba beberapa kali, tetapi tidak berhasil.

  1. Menciptakan bangunan yang bersih.
  2. Mengubah Versi/Build.
  3. Memastikan ODR diaktifkan di Build Settings, dll. - semua langkah higienis. Dan itu semua XCode, tidak ada platform yang saya gunakan (seperti Xamarin, dll.)
  4. Menggunakan solusi terkait SO yang ada.

Tidak banyak dokumentasi dari Apple mengenai masalah terkait unggahan AppStore untuk aplikasi yang mendukung ODR. Saya bertanya-tanya apakah di dalam folder sumber daya yang diberi tag, kita dapat memiliki folder lain juga atau tidak, karena struktur folder saya saat ini - tidak yakin apakah ini bisa menjadi alasannya, karena kesalahan terlampir menunjuk ke semua folder dalam struktur folder saya .

Bantuan akan sangat kami hargai. Untuk saat ini, saya menghilangkan ketergantungan saya pada ODR dan membangunnya tanpa ODR, namun hal ini tidak dapat bertahan lama. Catatan: Asetnya adalah semua file scn, sistem partikel scn, dan gambar.

Kode untuk mengakses ODR ada di bawah (singkatnya), namun jika kode tersebut berfungsi dengan perangkat saya, maka kode tersebut akan berfungsi di tempat lain. Saya rasa masalahnya mungkin terkait dengan pengaturan folder.

Manajer ODR:

class ODRManager {

    static let shared = ODRManager()
    var currentRequest: NSBundleResourceRequest?
    var currentProgressFractionCompleted: Double?

    func requestSceneWith(tag: String, onSuccess: @escaping () -> Void, onFailure: @escaping (NSError) -> Void) {

        currentRequest = NSBundleResourceRequest(tags: [tag])

        guard let request = currentRequest else { return }

        request.beginAccessingResources { (error: Error?) in
            if let error = error {
                onFailure(error as NSError)
                return
            }
            onSuccess()
        }
    }
}

Mengakses ODR dalam ViewController

// tagName is the name of the tag on the ODR related scnassets folder.

ODRManager.shared.requestSceneWith(tag: tagName, onSuccess: {
    DispatchQueue.main.async {
        self.game = self.gameFactory.createGame(...)
}, onFailure: { (error) in
    self.threeSurfaceLabel.text = "Problem with downloading content. Make sure internet connection is working, and restart."
})

person Manganese    schedule 15.05.2018    source sumber
comment
Silakan pergi ke edit skema dan buat konfigurasi Build dari debug hingga rilis lalu periksa   -  person aBilal17    schedule 15.05.2018
comment
Menariknya, ini berhasil. Maukah Anda menjelaskan alasannya?   -  person Manganese    schedule 16.05.2018
comment
Sangat! Mohon penjelasannya :)?   -  person Manganese    schedule 16.05.2018
comment
Ini peretasan, tapi izinkan saya mencari alasan di balik ini.   -  person aBilal17    schedule 16.05.2018


Jawaban (2)


Produk -> Skema -> Edit Skema

Silakan pergi ke edit skema dan buat konfigurasi Build dari debug hingga rilis lalu periksa. Harap jangan lupa Bersihkan menggunakan "command + option + shift + k" sebelum membuat arsip.

Ini akan menyelesaikan masalah Anda.

person aBilal17    schedule 16.05.2018

Setelah melihat lebih dekat pesan kesalahan tersebut, Anda dapat melihat bahwa kesalahan tersebut hanya merujuk pada file .DS_Store.

File .DS_Store adalah file tersembunyi yang dibuat oleh pencari untuk menyimpan pengaturan presentasi untuk setiap folder.

Solusinya adalah menghapus semua file .DS_Store di subdirektori proyek Anda sebelum membangun.

  1. Tutup Xcode
  2. Buka terminal dan cd ke direktori proyek Anda
  3. Ketik temukan . -nama '.DS_Store' -ketik f hapus
  4. Buka Xcode, muat proyek Anda, bersihkan, bangun kembali, arsipkan, dan unggah ke AppStore.
person stipus    schedule 12.11.2019