Не удалось сгенерировать подписанный Apk — требуется слаг организации (предоставьте с --org)

После настройки отслеживания ошибок Sentry.io я получаю эту ошибку при попытке создать подписанный Apk:

Java Compiler
error: An organization slug is required (provide with --org)

Щелкните это изображение и откройте его, чтобы просмотреть дополнительные сведения: Ошибка

Я ничего не могу понять из этого:

Process 'command
'/var/folders/j4/_fzm1rks3tsc2h3j4l2qbq4w0000gn/T/.sentry-cli1369818638611304938.exe'
' finished with non-zero exit value 1

Это адрес файла, который был вызван по ошибке: Ошибочный адрес

Как я могу решить эту проблему и создать подписанный Apk?


person Alireza Noorali    schedule 19.11.2018    source источник


Ответы (6)


Документы немного не ясны, хотя они упоминаются, но их легко пропустить. Здесь требуются два разных sentry.properties.

Обратите внимание, что файл sentry.properties в корне вашего проекта, который настраивает sentry-cli, отличается от того, который вы включаете в ресурсы своего приложения для настройки Sentry SDK во время выполнения (как показано в документации по настройке).

Вам нужно иметь еще один файл sentry.properties в корне проекта с

defaults.project=your-project
defaults.org=your-org
auth.token=YOUR_AUTH_TOKEN

и runtime sentry.properties со значениями DSN и т. д. можно поместить в каталог app/src/main/resources (при необходимости создайте каталог ресурсов)

Конфигурационные документы

person Stack learner    schedule 09.04.2019
comment
как создать этот файл? - person roghayeh hosseini; 03.06.2021

Когда вы включаете минификацию Proguard, символы загружаются в Sentry. Эта загрузка выполняется через sentry-cli, который выдает ошибку. Ошибка говорит, что CLI не знает, с каким проектом в Sentry связать ваши символы. Вам необходимо пройти через интеграцию gradle в документации< /а>. Конкретно:

defaults.project=airflow
defaults.org=sentry
auth.token=YOUR_AUTH_TOKEN

В качестве альтернативы вы можете использовать sentry-cli напрямую для загрузки символов, хотя рекомендуется интеграция gradle.

person Bruno Garcia    schedule 19.11.2018
comment
Как раз я собирался задать новый вопрос о ручной интеграции Gradle. Я использовал альтернативный способ, используя sentry { autoProguardConfig true autoUpload true } в своем приложении/builed.gradle, но проблема все еще жива. Вы можете помочь мне протестировать ручную интеграцию? - person Alireza Noorali; 19.11.2018
comment
Если шаги, изложенные в документе, не помогли, я предлагаю открыть вопрос на github. Окончательное решение может быть добавлено в качестве ответа здесь - person Bruno Garcia; 19.11.2018
comment
Я сделал это одновременно. Я жду ответа. - person Alireza Noorali; 19.11.2018

Вам необходимо загрузить файл сопоставления Proguard на часовой сервер.

создайте файл в корневой папке проекта и задайте имя sentry.properties.

defaults.url=https://sentry.io
defaults.org=TEST
defaults.project=TEST_DEV
auth.token=TOKEN

замените TEST, TEST_DEV и TOKEN.

вы можете получить ТОКЕН от https://sentry.io/api

если вы используете собственный часовой сервер, замените https://sentry.io на адрес вашего сервера.

и измените файл build.gradle

buildscript {
    
    dependencies {

        classpath 'com.android.tools.build:gradle:3.5.2'
        
        classpath 'io.sentry:sentry-android-gradle-plugin:1.7.27'

    }
}

и

apply plugin: 'com.android.application'
apply plugin: 'io.sentry.android.gradle'

...

sentry {
  autoProguardConfig true
  autoUpload true
}
    
android {
  ...
}
dependencies {

     ...

     implementation 'io.sentry:sentry-android:1.7.27'
     implementation 'org.slf4j:slf4j-nop:1.7.25'

     ...
}
person Rasoul Miri    schedule 27.11.2019

Для ReactNative/iOS, если у вас есть такие ошибки, убедитесь, что вы поместили файл sentry.properties в папку iOSвведите здесь описание изображения

person Slava Vasilenko    schedule 27.07.2021

вместо того, чтобы делать

minifyEnabled false

Просто добавьте эти правила в файл правил proguard и оставьте minifyEnabled истинным

#sentry
-keepattributes LineNumberTable,SourceFile
-dontwarn org.slf4j.**
-dontwarn javax.**
-keep class io.sentry.event.Event { *; }

Это решило мою проблему без отключения минимизации

person Hoby    schedule 03.11.2019
comment
Спасибо за ваше сообщение. Честно говоря, прошло много времени с тех пор, как я опубликовал вопрос, и я не могу проверить ваш ответ прямо сейчас. Я призываю всех других людей, которые читают ваш пост, объявить результаты своих тестов. - person Alireza Noorali; 03.11.2019
comment
не работай на меня - person roghayeh hosseini; 03.06.2021

ЭТО НЕ НАСТОЯЩИЙ ОТВЕТ Но он может решить нашу проблему в краткосрочной перспективе, установив значение false равным minifyEnabled.

приложение/build.gradle:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

но это добавило 1,3 МБ к размеру моего файла Apk.

Пожалуйста, дайте мне знать, если у кого-то есть другое лучшее решение.

person Alireza Noorali    schedule 19.11.2018
comment
Этот ответ просто профилактика симптомов, а не лечение, это не должно быть принятым ответом. Отключив минимизацию, вы просто создаете свой вариант разработки и добавляете весь ненужный код, на это есть причина. Лучше искать решение, которое исправляет ошибку, а не маскирует ее. Прочитайте мой ответ: заголовок stackoverflow.com/questions/53369887/ - person Stack learner; 09.04.2019
comment
@Stacklearner Я согласен с вами, но я задал этот вопрос 4 месяца назад, и я решил его другим способом, который сейчас не помню его деталей. - person Alireza Noorali; 09.04.2019
comment
@roghayehhosseini Ответ был обновлен, чтобы более четко описать тип решения. - person Alireza Noorali; 07.06.2021