наше приложение iOS недавно отклонено Apple, потому что оно не смогло установить действительное соединение с нашим сервером api. Мы используем специально отформатированный пользовательский агент для регистрации токена устройства и так далее. Если пользовательский агент не входит в нашу оболочку, api блокирует запрос.Настройка User-Agent в AFNetworking
Все это очень хорошо тестировало приложение на тренажере, а также на реальном устройстве. Пользовательский агент был настроен правильно и работали на api.
Как Apple проверила приложение, они отклонили его, потому что приложение не удалось подключиться к api. Когда мы проверили серверные лог-файлы, мы заметили, что каждый запрос, отправленный тестерами Apple, имел совершенно другой пользовательский агент, чем тот, который мы установили в коде.
The (правильный) агент пользователя, который был установлен, как мы тестировали приложение:
AppName-App/010002 iOS/8.1.2 on Apple iPhone/DeviceToken
В (неправильный) агент пользователя, так как он появился в наших журналах:
AppName/1.0.0.2 (iPad; iOS 8.1.3; Scale/2.00)
приложение использует AFNetworking и устанавливает свой пользовательский агент следующим образом:
ConnectionManager.requestSerializer.setValue(IOSREQUESTHEADER, forHTTPHeaderField: "user-agent")
У вас есть идеи, почему это не работает, поскольку Apple тестирует приложение, в то время как оно полностью в порядке, когда мы делаем?
С наилучшими пожеланиями
Функция setValue вызывается непосредственно после инициализации Framework. Это должно быть в сборке релизов, потому что иначе вообще не было бы никакого запроса. Так что нет возможности, что функция 'setValue' не компилируется. Думаю, –
Трудно сказать, тогда, без дополнительного контекста. –
Какие части кода помогут продолжить исследование проблемы? –