AppMetricaCrashes - Privacy Manifest issue
justnicke opened this issue · 10 comments
📚 AppMetrica SDK Version
5.2.0
🛠️ Xcode Version
Version 15.1 (15C65)
📱 Device Information
⚙️ Installation Method
Swift Package Manager
📝 Description
Добрый день!
При работе с AppMetricaCrashes 5.1.0 и 5.2.0 приходит уведомления от Apple
🔍 Reproducing the issue
- Установить AppMetrica через SPM
- Добавить в таргет AppMetricaCore и AppMetricaCrashes
- Установить конфигурацию
import AppMetricaCrashes
final class SomeService {
func setup() {
let crashesConfiguration = AppMetricaCrashesConfiguration()
AppMetricaCrashes.crashes().setConfiguration(crashesConfiguration)
}
}
- Сделать сборку проекта
📋 Relevant AppMetrica Log Output or Crash Logs
No response
📦 Attach Package.resolved (Swift Package Manager Users)
Click to expand Package.resolved
{
"pins" : [
{
"identity" : "apollo-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apollographql/apollo-ios",
"state" : {
"revision" : "eedde2151859011a44bb7cb05388deb2bf532644",
"version" : "1.9.3"
}
},
{
"identity" : "appmetrica-sdk-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/appmetrica/appmetrica-sdk-ios",
"state" : {
"revision" : "766808009096e0e6f0648fbaf1b5460508b6c3ae",
"version" : "5.2.0"
}
},
{
"identity" : "floatingpanel",
"kind" : "remoteSourceControl",
"location" : "https://github.com/scenee/FloatingPanel",
"state" : {
"revision" : "8f2be39bf49b4d5e22bbf7bdde69d5b76d0ecd2a",
"version" : "2.8.2"
}
},
{
"identity" : "inputbaraccessoryview",
"kind" : "remoteSourceControl",
"location" : "https://github.com/nathantannar4/InputBarAccessoryView",
"state" : {
"revision" : "17ced92a5dccb36512b408b6276353631d7cbe57",
"version" : "6.3.0"
}
},
{
"identity" : "ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mindbox-cloud/ios-sdk",
"state" : {
"revision" : "8e63056c69f365e999e7f1684c24fa4acb1a6f39",
"version" : "2.8.3"
}
},
{
"identity" : "kscrash",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kstenerud/KSCrash",
"state" : {
"revision" : "8e29ada12998c47b1ca595bb21d47a27f4e57b22",
"version" : "1.17.0"
}
},
{
"identity" : "marqueelabel",
"kind" : "remoteSourceControl",
"location" : "https://github.com/cbpowell/MarqueeLabel",
"state" : {
"revision" : "877e810534cda9afabb8143ae319b7c3341b121b",
"version" : "4.5.0"
}
},
{
"identity" : "messagekit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/MessageKit/MessageKit",
"state" : {
"revision" : "1993e8e90d4e9a61b8d9bc8ceb733964ce943376",
"version" : "4.2.0"
}
},
{
"identity" : "r.swift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mac-cain13/R.swift",
"state" : {
"revision" : "384eab88d1a0b98ac96f4819e50a4308ecd5359f",
"version" : "7.5.0"
}
},
{
"identity" : "snapkit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/SnapKit/SnapKit",
"state" : {
"revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4",
"version" : "5.7.1"
}
},
{
"identity" : "sqlite.swift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/stephencelis/SQLite.swift.git",
"state" : {
"revision" : "e78ae0220e17525a15ac68c697a155eb7a672a8e",
"version" : "0.15.0"
}
},
{
"identity" : "swift-argument-parser",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-argument-parser.git",
"state" : {
"revision" : "46989693916f56d1186bd59ac15124caef896560",
"version" : "1.3.1"
}
},
{
"identity" : "xcodeedit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/tomlokhorst/XcodeEdit",
"state" : {
"revision" : "b6b67389a0f1a6fdd9c6457a8ab5b02eaab13c5c",
"version" : "2.9.2"
}
}
],
"version" : 2
}
🍫 Attach Podfile.lock (CocoaPods Users)
No response
Спасибо за предоставленный отчёт. Не могли бы вы, пожалуйста, прикрепить файл Package.resolved для более детального анализа?
Добавил
Непосредственно в нашем коде SDK нет Required Reason API, связанном с местом на диске. Подобный API используется только в нашей подзависимости KSCrash, однако он задекларирован в Privacy Manifest, в версии, которую вы используете, судя по Package.resolved
. Не могли бы вы предоставить дополнительную информацию от Apple, которая помогла бы определить, какая именно зависимость вызывает проблему? Это помогло бы нам лучше понять ситуацию и принять необходимые меры.
К сожалению вся информация от Apple, которую предоставил выше, это затрудняет поиск проблемы, но точно могу сказать, что при локализации, после добавления в таргет AppMetricaCrashes приходит данное уведомление.
Попробовал через cocoapods и проблема разрешилась.
Завтра еще раз проверю SPM
Так как через CocoaPods все хорошо, а SPM выскакивает ошибка, то может быть проблема в версии Package манифеста в KSCrash. У них отдельный манифест для Swift 5.1, где не было еще возможности указать ресурсы пакета. В манифесте для 5.3 есть ресурс.Может быть у вас в окружении проекта указан Swift ниже 5.3?
Еще можно перед отправкой в AppStore Connect посмотреть какие манифесты есть в архиве. Если проблема действительно в SPM у KSCrash, то скорее всего не будет этотого файла: Archives/<your_app>.xcarchive/Products/Applications/<your_app>.app/KSCrash_KSCrash/Recording.bundle/PrivacyInfo.xcprivacy
. При интеграции с CocoaPods будет бандл KSCrashPrivacy
, где будет лежать манифест.
Swift 5.9
В privacy report через SPM данные файлы имеются.
Спасибо за предоставленные детали и за ваше терпение. Вот два возможных шага, которые мы можем предпринять для решения вашей проблемы:
-
Включение декларации в Privacy Manifest: Если вы подозреваете, что проблема может быть связана с нашим SDK или подзависимостями, рекомендуем вам включить соответствующую декларацию API в ваш Privacy Manifest. Это можно сделать, добавив массив
NSPrivacyAccessedAPITypes
с причинами использования API, аналогичными тем, которые декларированы в KSCrash. -
Предоставление архивов: Для тщательного анализа вашей ситуации, было бы очень полезно, если бы вы могли предоставить нам архивы, сгенерированные с использованием SPM и CocoaPods. Это даст нам возможность глубже понять различия в методах интеграции и, возможно, определить причину возникновения проблемы. Пожалуйста, загрузите архивы на облачное хранилище и отправьте нам ссылки через нашу службу поддержки, чтобы гарантировать конфиденциальность данных.
Потенциальное решение проблемы найдено и отправлено на проверку в kstenerud/KSCrash#463. Как быстро оно будет смержено и выйдет в следующей версии, зависит от мэинтейнеров проекта.
Похоже, вышел KSCrash 1.17.1
, в котором должна быть решена проблема. Если вы всё ещё используете версию 5.2.0
нашего SDK, то обновитесь до 5.3.0
и убедитесь, что установился KSCrash 1.17.1
.
Если вы уже на версии 5.3.0
, чтобы обновить только KSCrash, можно выполнить команду:
pod update KSCrash