Сбой при загрузке AppStore ресурсов по требованию в приложении iOS - Запрещенные пути - PullRequest
0 голосов
/ 15 мая 2018

У меня есть приложение , использующее ARKit . До текущей сборки все ресурсы были включены в сам комплект приложения, и пользователи, похоже, не сталкивались с проблемой использования приложения.

Однако я хотел включить On-Demand Resource в приложении, чтобы ресурсы новых модулей (игр) можно было загружать из AppStore, таким образом избегая большого размера приложения. Следуя документации iOS, я смог использовать ODR, и приложение работало на моем устройстве. Он загружал ресурсы, используя ODR, как и должно быть.

Однако при загрузке в AppStore for App Review я обнаружил ошибку:

enter image description here

Структура моей папки для конкретной папки SCNAssets (которая помечена) приведена ниже:

enter image description here

Обратите внимание, что приложение отлично работает с использованием ODR на моем устройстве. Я сделал следующее и попробовал несколько раз, но безрезультатно.

  1. Создание чистой сборки.
  2. Изменение версии / сборки.
  3. Убедитесь, что ODR включен в настройках сборки и т. Д. - все гигиенические действия. И это все XCode, нет платформы, которую я использую (например, Xamarin, и др.)
  4. Использование существующих решений, связанных с SO.

Apple не так много документации по вопросам, связанным с загрузкой AppStore для приложений с поддержкой ODR. Мне интересно, есть ли в папке ресурсов с тегами, у нас также могут быть и другие папки, так как моя структура папок прямо сейчас - не уверен, может ли это быть причиной, поскольку приложенная ошибка указывает на все папки в структуре моей папки ,

Помощь будет высоко ценится. На данный момент я убрал свою зависимость от ODR и создал без нее, однако это не может продолжаться долго. Примечание. Все ресурсы - это файлы scn, системы частиц scn и изображения.

Код для доступа к ODR приведен ниже (с краткостью), однако, если этот код работает с моим устройством, он должен работать в другом месте. Я думаю, что проблема может быть связана с расположением папок.

Диспетчер 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()
        }
    }
}

Доступ к ODR в 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."
})

1 Ответ

0 голосов
/ 16 мая 2018

Продукт -> Схема -> Редактировать схему

Пожалуйста, перейдите к редактированию схемы и настройте конфигурацию сборки от отладки до выпуска, а затем проверьте. Пожалуйста, не забудьте очистить, используя "command + option + shift + k" перед созданием архива.

Это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...