Electron: Отклонение частного API в Mac App Store: Electron 5.0.10

Созданный на 29 авг. 2019  ·  144Комментарии  ·  Источник: electron/electron

Детали проблемы

  • Электронная версия: 5.0.10

Электронное письмо с отказом

ITMS-90338: использование непубличного API - приложение содержит или наследует непубличные классы в Contents / Frameworks / Electron Framework.framework / Versions / A / Electron Framework: CAContext, CALayerHost, NSAccessibilityRemoteUIElement, NSNextStepFrame, NSThemeFrame, NSURLFileingsT. Если имена методов в исходном коде соответствуют частным API Apple, перечисленным выше, изменение имен методов поможет предотвратить пометку этого приложения в будущих отправках. Кроме того, обратите внимание, что один или несколько из указанных выше API могут находиться в статической библиотеке, которая была включена в ваше приложение. Если так, их необходимо удалить. Для получения дополнительной информации посетите Информацию о технической поддержке по адресу http://developer.apple.com/support/technical/.

5-0-x 6-1-x 7-0-x 7-1-x app-store bug

Самый полезный комментарий

Список обнаруженных частных API:

  • _fileport_makefd
  • _fileport_makeport
  • CAContext
  • CALayerHost
  • NSAccessibilityRemoteUIElement
  • NSNextStepFrame
  • NSThemeFrame
  • NSURLFileTypeMappings

Прокомментируйте эту проблему только в том случае, если в вашем электронном письме с отказом есть API, которых нет в списке выше. Если вы просто прокомментируете +1 ваш комментарий будет удален. Если вы также сталкиваетесь с этим отклонением, отреагируйте на эту проблему с помощью 👍, чтобы указать на это.

Все 144 Комментарий

Я понижаю версию Electron до 5.0.9, но все равно получаю письмо с отказом.

Я получил этот отказ сегодня утром для Electron 5.0.4, а также для 5.0.10. Я думаю, что что-то изменилось со стороны Apple.

Для меня большая выставочная пробка. Мне нужно срочное решение. пожалуйста помоги.

Список обнаруженных частных API:

  • _fileport_makefd
  • _fileport_makeport
  • CAContext
  • CALayerHost
  • NSAccessibilityRemoteUIElement
  • NSNextStepFrame
  • NSThemeFrame
  • NSURLFileTypeMappings

Прокомментируйте эту проблему только в том случае, если в вашем электронном письме с отказом есть API, которых нет в списке выше. Если вы просто прокомментируете +1 ваш комментарий будет удален. Если вы также сталкиваетесь с этим отклонением, отреагируйте на эту проблему с помощью 👍, чтобы указать на это.

Отношения с разработчиками ответили и заявили, что, по их мнению, проблема возникла с их стороны, и они займутся этим. Я проверил сегодня вечером, и мои ранее отклоненные сборки теперь доступны в App Store Connect.

Я только что проверил, и моя ранее отклоненная сборка (Electron 4.2.9) также доступна в магазине.

Спасибо @gaodeng , @mytran и @ ogi1982 за эту новую информацию. Похоже, что у Apple было несколько обращений, и они либо исправили свою систему, либо временно занесли фреймворк в белый список. Все еще жду ответа о том, что именно произошло.

Я оставлю это открытым по крайней мере до следующей недели, где, надеюсь, у нас будет больше информации

Теперь я также могу загрузить свою сборку с Electron 5.0.10 в Магазин. Я, наверное, оставлю @MarshallOfSound, чтобы закрыть этот тикет :)

Мое приложение, использующее Electron 4.2.12, было отклонено из-за следующих API:

CAContext
CALayerHost
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Электрон 5.0.11

Ваше приложение использует или ссылается на следующие закрытые API:

CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

электрон: 6.0.10

Рекомендация 2.5.1 - Производительность - Требования к программному обеспечению
Ваше приложение использует или ссылается на следующие закрытые API:

CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

электрон 3.0.2

Ваше приложение-приложение ссылается на следующие закрытые платформы:

CAContext
CALayerHost
NSURLFileTypeMappings

@MarshallOfSound , мы можем чем-нибудь помочь?
У меня нет навыков, чтобы исправить это самостоятельно

@zcbenz похоже, что вы уже делали патчи раньше, можете ли вы сделать для них новый?

извините за стресс, но у меня есть важное обновление для моего приложения, которое нужно развернуть

Попробуйте обратиться за помощью и заявите, что вы используете Electron, и эти API являются внутренними для Electron:
https://developer.apple.com/contact/app-store/?topic=appeal

Обновился до последней версии Electron v7.0.0 и снова получил отказ.

@mytran
не думаю, что обращение поможет больше, чем один раз
лучше попробуй исправить это

Я вижу его файл патча в базе кода
патчи \ chromiummas_no_private_api.patch

если мы как-нибудь сможем добавить туда API
Пока не понял как это сделать

и для тех, кто умеет это делать.
Если у них нет времени исправить это, может быть, мы сможем их спонсировать?
время - деньги :)

Если все, кому нужно это исправить, пожертвуют $
Я думаю, это будет складываться и, возможно, ускорит это исправление

отклонил сегодня электрон 6.0.12 а также с 7.0.0

Ваше приложение-приложение ссылается на следующие закрытые платформы:

CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

он работает с Электроном 5?

Я проинформировал Apple о своем приложении с помощью электроники и т. Д. И получил следующее:

"Здравствуйте,

Спасибо за предоставленную информацию.

Что касается 2.5.1, ваше приложение использует следующие закрытые API или ссылается на них. Если у вас нет доступа к двоичному файлу или вы не знаете, как удалить соответствующие API, обратитесь к поставщику услуг за технической поддержкой ".

Версия 3.0.0-beta.5 mas отклонена также для частного API:

CAContext
CALayerHost
NSURLFileTypeMappings

Буквально неделю назад мы только что успешно прошли аудит Apple с той же версией mas. Мне интересно, был ли старый файл electronics-v3.0.0-beta.5-mas-x64.zip перестроен на стороне сервера загрузки или zip-файл никогда не изменялся, пока Apple меняет свою частную стратегию api или и то, и другое? любые намеки вам, ребята, потому что это действительно расстраивает и раздражает.

Apple меняет свою частную стратегию API
Я последний месяц делал еженедельные обновления без проблем

нам нужно это исправить
к сожалению, у меня нет навыков, чтобы исправить это сам
Я немного покопался и похоже, что у этих файлов есть частные вызовы API

https://chromium.googlesource.com/chromium/src/+/HEAD/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
https://chromium.googlesource.com/chromium/src/+/master/net/base/platform_mime_util_mac.mm
https://chromium.googlesource.com/chromium/src.git/+/72.0.3626.80/content/browser/ns_view_bridge_factory_impl.mm
https://chromium.googlesource.com/chromium/src.git/+/62.0.3178.1/content/browser/compositor/gpu_output_surface_mac.mm
https://chromium.googlesource.com/experimental/chromium/src/+/lkgr/ui/base/cocoa/remote_layer_api.h
https://chromium.googlesource.com/experimental/chromium/src/+/lkgr/ui/base/cocoa/remote_layer_api.h

а вот как сделать файл патча :)
https://www.youtube.com/watch?v=QtXj9tt-RUE

теперь нам нужно только настроить среду разработки и
попробуйте удалить / закомментировать API

звучит просто ..........

Также я получаю ту же проблему с 6.0.11 при попытке создать hyperspacedev / hyperspace :

Ваше приложение включает версию SDK от Electron, которая нарушает Правила проверки в App Store. Версия Electron SDK, которую вы используете в своем приложении, пытается скрыть использование частных API. Это нарушение раздела 2.5.1 Руководства по проверке приложений в App Store.

Обнаружено использование частного класса:
CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Я не знаю, связано ли это, но я думаю, что это также вызывает сбой в приложении с ошибкой «Операция запрещена».

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   exc handler [3221]

Application Specific Information:
dyld: launch, running initializers
/usr/lib/libSystem.B.dylib
Could not set sandbox profile data: Operation not permitted (1)

@nornagon, ты можешь нам с этим помочь?
я вижу, ты делал подобное раньше

@JCBsystem и все очень осторожен при изменении чего-либо, просто чтобы пройти через Apple. В их последнем сообщении говорилось:

_ «Продолжение использования или сокрытия непубличных API в будущих представлениях этого приложения может привести к прекращению действия вашей учетной записи Apple Developer, а также к удалению всех связанных приложений из App Store». _

Я не хочу, чтобы какие-либо другие мои приложения были скомпрометированы, поэтому я надеюсь на официальное исправление в будущем (если это вообще возможно).

Может быть, один из модераторов / сопровождающих может усилить это (и изменить метку, поскольку это также влияет на Electron 6 и Electron 7, также пробовал с 7.0.1).

У меня только что началась такая же проблема. Изначально наше приложение было принято около месяца назад, но попытка отправить обновление не удалась.

Неуверенный в точной версии Electron, но это то, от чего зависит последняя версия cordova-electron .

(Также спасибо @gurugeek за то, что обратил внимание на это на HN.)

Похоже, Apple внесла в свой черный список больше частных API. И чтобы уточнить, все эти API используются Chromium.

@ buu700 милости прошу ! Я думаю, что это большая проблема для всех, кто прямо или косвенно использует электроны. Так что, надеюсь, скоро будет (официальное) решение.

Да, было бы смешно, если бы Electron устарел на macOS так случайно, без предупреждения. Надеюсь, что есть реальный способ решить эту проблему в Electron и / или Chrome, или Apple готова проявить гибкость с этим.

API fileport_makefd и fileport_makeport используются mojo (библиотека Chromium IPC) и кажутся невозможными для удаления, но они, похоже, не появляются в последних отчетах, поэтому, вероятно, их пока можно оставить.

API CAContext и CALayerHost использовались Chromium как минимум 5 лет назад, их используют всего несколько мест, но они находятся в основном графическом коде, возможно, удалить их, но мы должны сначала выяснить, что они на самом деле делают.

Остальные NS API должно быть легко удалить:
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Slack обновился недавно, как прошли проверку, кто-нибудь знает?
Screen Shot 2019-11-04 at 9 24 36 AM

Отправленное мной обновление @gurugeek отклонил его два дня назад, так что я полагаю, что Slack едва

Mozilla недавно опубликовала хорошую статью о том, почему они начали использовать недокументированный API CALayer в Firefox 69. TL; DR заключается в том, что эти частные API позволили им в 3 раза улучшить использование батареи в Firefox. В статье также упоминалось, что Chrome использует эти Core Animation API.

Эта проблема не влияет на меня напрямую, и я этого не понимаю. Но я подумал, что поделюсь вышеупомянутой статьей, если она поможет вам решить основную причину проблемы.

Будет ли кто-нибудь заинтересован в проверке двоичного кода Electron для меня? Моя подписка Apple Developer истекла, и я не хочу покупать ее снова 😃.

Бинарный файл основан на сборке выпуска 7.0.1 с отладочными символами:
https://drive.google.com/open?id=1RwWd9U-yfpWpn6OhDO1duTXfnRXKIPxL

Изменения можно найти в ветке mas-patch-remote-layer-7-0-x . В настоящее время я отключил все зарегистрированные вызовы, кроме fileport_makefd и fileport_makeport , поэтому возможно, что двоичный файл снова будет отклонен.

@zcbenz
Отличная работа!
попробую загрузить через день или два
сначала нужно закончить некоторые изменения в себе :)

еще раз спасибо!

сделал сканирование с помощью otool -ov, как Apple sugets
раньше было
CAContext 1 обращение
CALayerHost 1 хит
NSAccessibilityRemoteUIElement 3 hit
NSNextStepFrame 2 Hit
NSThemeFrame 2 Hit
NSURLFileTypeMappings 1 обращение

затем новая сборка mas-patch-remote-layer-7-0-x имеет 0 хитов :)
выглядит хорошо

до
fileport_makeport 0 просмотров
fileport_makefd 0 просмотров
после
fileport_makeport 0 попаданий
fileport_makefd 0 попаданий

Используя строки, другой инструмент, предложенный Apple, я получил один удар
для CAContext
«У кадра нет ни действительного CAContext, ни действительной IOSurface».
это похоже на сообщение об исключении или подобное
не знаю, насколько разборчивы Apple

до
fileport_makeport 3 хита
fileport_makefd 2 хита
после
fileport_makeport 1 хит
fileport_makefd 0 попаданий

Мое приложение было отклонено из-за частных вызовов API (Electron v. 4.0.4). Apple предложила следующие решения:

«Чтобы решить эту проблему, либо полностью удалите Electron SDK из своего приложения, либо измените свое приложение, чтобы использовать версию 3.0.0-beta.7, 2.0.8, 1.8.8 или 1.7.16 Electron SDK. Один раз вы внесли одно из этих изменений, повторно отправьте двоичный файл на проверку ".

Понижен до 3.0.0-beta.7. Давай посмотрим что происходит...

«Чтобы решить эту проблему, либо полностью удалите Electron SDK из своего приложения (я был шокирован, прочитав это), либо измените свое приложение, чтобы использовать версию 3.0.0-beta.7, 2.0.8, 1.8.8 или 1.7. 16 пакета Electron SDK. Внеся одно из этих изменений, повторно отправьте двоичный файл на проверку ».

Это подозрительно похоже на целевой белый список версий Electron. Позвольте мне покопаться и посмотреть, что я смогу найти.

@ivandroid был сегодняшним сообщением? Можете ли вы также опубликовать список вызовов API, отмеченных Apple? Возможно, Apple решила быть более откровенной и дала вам хоть какие-то указания. Вчера было послание куда более жесткое. @MarshallOfSound спасибо, что

@ivandroid был сегодняшним сообщением? Можете ли вы также опубликовать список вызовов API, отмеченных Apple? Возможно, Apple решила быть более откровенной и дала вам хоть какие-то указания. Вчера было послание куда более жесткое. @MarshallOfSound спасибо, что

Да, сегодня я получил сообщение об отказе.

CAContext
CALayerHost
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Такой же ответ на обращение

_Ваше приложение включает версию SDK от Electron, которая нарушает правила проверки в App Store. Версия Electron SDK, которую вы используете в своем приложении, пытается скрыть использование частных API. Это нарушение раздела 2.5.1 Руководства по проверке приложений в App Store.

Дополнительные замечания:

Чтобы решить эту проблему, либо полностью удалите Electron SDK из своего приложения, либо измените свое приложение, чтобы использовать версию 3.0.0-beta.7, 2.0.8, 1.8.8 или 1.7.16 Electron SDK. После внесения одного из этих изменений повторно отправьте двоичный файл на проверку.

Мы надеемся, что вы рассмотрите возможность внесения необходимых изменений в соответствии с Руководством по проверке App Store и повторно отправите исправленный двоичный файл.

Привет, ребята, сейчас тоже сталкиваюсь с этой проблемой (первая отправка macOS в App Store, поэтому я понятия не имел, что с этим делать, и просто слушайте здесь ;-)).
Сообщение в AppStore:

Правило 2.5.1: Приложения могут использовать только общедоступные API.
CAContext
CALayerHost
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Пользуюсь электроном v4.2.10.

Я пробовал использовать двоичный файл Electron, который @zcbenz разместил в https://github.com/electron/electron/issues/20027#issuecomment -549295886, но все равно получил такое же письмо с отказом, как показано ниже. Похоже, Apple отказывается от версии Electron.

Your app includes a version of an SDK from Electron that violates the App Store Review Guidelines. The version of the Electron SDK you are using in your app attempts to hide the use of private APIs. This is a violation Section 2.5.1 of the App Store Review Guidelines.

Found private class usage:
CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Сборка 3.0.0-Beta.7 была отклонена. :(

Обнаружено использование частного класса:
CAContext
CALayerHost
NSURLFileTypeMappings

Также сталкивается с этой проблемой в настоящее время, электрон v4.2.6

Рекомендация 2.5.1 - Производительность - Требования к программному обеспечению

Ваше приложение использует или ссылается на следующие закрытые API:

CAContext
CALayerHost
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Любое официальное решение?

@thomasdao Это интересно, похоже, они даже не помечают частные API. Они только что отметили версии электронного фреймворка. 🤔

@thomasdao сканировали ли вы свою сборку перед отправкой с помощью 'otool -ov' и строк?

@JCBsystem как вы просматриваете сборку? Я использовал Electron Builder и не слишком уверен, какой файл сканировать, я пробовал с файлами .app и .pkg и команда показала ошибку.

Что я сделал, так это то, что я загрузил электронный двоичный файл по ссылке, которую дал node_modules затем построил. Я могу пропустить некоторые шаги. Если у вас есть другие предложения, дайте мне знать, чтобы я мог повторить попытку, спасибо!

@thomasdao
откройте консоль из 'xxx.app/Contents/Frameworks/Electron \ Framework.framework / Versions / A'
затем беги
otool -ov Электрон \ Framework> ../../../../../../dump.txt
и
строки Electron \ Framework> ../../../../../../dump1.txt

откройте файлы дампа и выполните поиск ключей api

или пришлите мне приложение, и я протестирую его для вас :)

@JCBsystem спасибо за инструкцию. Файлы дампа находятся по адресу https://drive.google.com/file/d/1POwnOX_jMcahUi4beBdo7viKjaeey8PY/view?usp=sharing , я думаю, что он все еще содержит частный API. Вероятно, простая замена двоичного файла Electron в node_modules самом деле не удаляет частный API в окончательной сборке. Если у вас есть предложения, я могу повторить попытку отправки в Apple.

@thomasdao
да, ключи API все еще там
похоже, что вы не можете получить тестовую сборку в своей сборке

не знаю, как правильно добавить тестовую сборку в сборку yoru MAS
может быть, @MarshallOfSound или @zcbenz могут сказать вам

все еще думаю, что новая сборка от zcbenz будет работать

@ electronic / get (через электронный пакет или другие аналогичные инструменты) загружает электронные сборки из официального репозитория и кэширует их в ~ / Library / Caches / electronics, независимо от того, что находится в локальном каталоге node_modules / electronic. Я заменил кешированный Electron.app на тот из @zcbenz, и его забрали для упаковки. (_note: у архива исправлений есть некоторые проблемы, в том, что некоторые папки, которые должны быть псевдонимами, включены полностью, и присутствуют некоторые фреймворки, которые обычно не включаются в основные сборки электронов_).

Запуск otool для полученного пакета не помечает никакие API-интерфейсы в черном списке, а само приложение проходит базовый дымовой тест. Сегодня я отправил его на тестирование Apple, хотя официальный патч Electron от @zcbenz, похоже, очень близок к официальному выпуску. По крайней мере, мы могли бы увидеть, действительно ли они проверяют двоичные файлы для связанных API-интерфейсов или ищут версии для Electron.

Большое спасибо @zcbenz за этот патч! 👍

@netop спасибо за это. Просто для простых смертных JS-разработчиков, какие шаги необходимо предпринять перед пересборкой и проверкой пакета перед отправкой?
Шаг 1) загрузите исправленную версию с @zcbenz по адресу https://drive.google.com/open?id=1RwWd9U-yfpWpn6OhDO1duTXfnRXKIPxL и шаги 2, 3, 4 ..? :

Думаю, есть пиар для ветки 5х, может, лучше подождать и установить через NPM?

@gurugeek наверняка лучший способ - дождаться официального патча Electron.

Просто так случилось, что наше приложение столкнулось с критической проблемой, которая послужила серьезным стимулом для того, чтобы попробовать это. Кроме того, в этой ветке есть запрос от @zcbenz для кого-нибудь с учетной записью Apple Dev, чтобы проверить, действительно ли работает патч.

Я вернусь сюда с подробностями, как только команда обзора Apple ответит.

@netop тоже желает попробовать до официального патча. Просто не мог понять (пока), поэтому, если вы знаете, что мне нужно заменить / проверить, дайте мне знать.

Ну ... он все еще не работал полностью. Он прошел мимо предыдущего черного списка, но теперь они помечают:

__CFCopyServerVersionDictionary
__CFCopySystemVersionDictionary
__kCFSystemVersionBuildVersionKey
__kCFSystemVersionProductNameKey
__kCFSystemVersionProductVersionExtraKey
__kCFSystemVersionProductVersionKey

Нет ссылок на методы fileport_* .

Я не уверен, присутствуют ли эти элементы только в сборке @zcbenz или они также были официальной сборкой Electron, я смогу проверить позже. Возможно, @zcbenz также нацелился на dmg в сборке, что также объясняет дополнительные фреймворки, включенные в пакет (см. Эту потенциально связанную проблему и ссылки там).

Я просто хочу, чтобы Apple просто предоставила полный черный / белый список API или инструмент для проверки сборок, вместо того, чтобы играть методом проб и ошибок ...

@netop Спасибо за тестирование сборки, оказалось, что я забыл очистить старые файлы перед выполнением новой сборки, а некоторые файлы из сборки, отличной от MAS, были смешаны с загруженной мной сборкой.

Я повторно загрузил чистую сборку, извините за проблему.
https://drive.google.com/file/d/1foCvpd2YuD7oEBFvwQwmubtdnS6_VIlN/view?usp=sharing

@zcbenz Я еще раз предоставить разрешение на загрузку обновленной сборки. Спасибо огромное!

Кроме того, похоже, что символы взяты из crashpad_handler - так что, возможно, я могу удалить этот файл сам. В остальном с фреймворками все в порядке ... 🤞

@netop Теперь ссылка для скачивания должна работать. Помимо crashpad_handler , вам также необходимо удалить Squirrel.framework из пакета.

@zcbenz Большое спасибо за поддержку, я удалил Squirrel.framework в прошлый раз, я просто пропустил crashpad_handler . Поскольку ваша новая сборка на этот раз основана на версии 7.1.0 , для удобства и безопасности я останусь с предыдущей, с единственным изменением, которое будет удалено из модуля-виновника. После этого я могу протестировать обновление 7.1.0, если приложение будет одобрено.

Я отправляю как можно скорее и вернусь с результатом, как только он у меня будет.

ОК - приложение было принято и теперь _Готово для продажи_. Большое СПАСИБО @zcbenz за кастомную сборку 🙏.

какие-то оценки времени выхода официального патча?

Спасибо @zcbenz!

какие-то оценки времени выхода официального патча?

Вы можете следить за прогрессом на https://github.com/electron/electron/pull/20965 .

В настоящее время, поскольку отключение API удаленного уровня может значительно снизить производительность, мы ждем ответов от Apple, чтобы узнать, можно ли разблокировать CAContext и CALayerHost для нас или есть ли лучший способ исправлений, чтобы избежать снижения производительности.

Как использовать исправленную сборку @zcbenz mas (пока не будет доступно более чистое решение)

Основываясь на предыдущем запросе, это описание того, что нужно сделать, чтобы использовать патч @zcbenz с вашим инструментом упаковки приложений.

Начальное примечание : наше приложение создано для нескольких платформ, одна из которых - Electron. Из-за этого нам нужно немного больше контроля над процессом упаковки, поэтому мы используем electron-packager а не electron-builder . Следующие шаги применимы к подходу electron-packager со сборкой 7.0.1 . Однако, если вы используете построитель, должно быть достаточно просто использовать общий параметр конфигурации electronDist для достижения того же результата. Кроме того, использование сборки 7.1.0 аналогично, вам просто нужно соответствующим образом адаптировать инструкции.

Это последовательность шагов, которые я прошел:

  1. Загрузил и очистил пакет Electron.app с @zcbenz.

    Первоначальный пакет на основе 7.0.1 содержал некоторые дополнительные фреймворки и библиотеки, которые не были нужны для mas (например, Squirrel и crash_pad), обновленный пакет на основе 7.1.0 их больше не включает. Однако у обоих есть проблема с zip-архивом, который не обрабатывает символьные ссылки (псевдонимы) правильно, а некоторые двоичные файлы включаются более одного раза, что делает его больше, чем должно. Вы можете скачать чистую версию отсюда (на основе сборки 7.0.1 ) и использовать ее как есть, или вы можете просто использовать ее как шаблон.

  2. Настройте electronic-packager для использования конкретной сборки Electron и запускайте один раз

    Это зависит от того, как вы используете инструмент. В моем случае я использую API, а не интерфейс командной строки, поэтому я установил параметр electronVersion чтобы указать в коде 7.0.1 . Запустите упаковщик - он будет использовать @electron/get для загрузки и кеширования официальной сборки 7.0.1 Electron (_note: вы также можете использовать конфигурацию mirrorOptions , если вы хотите получить больше возможностей и разместить пользовательская сборка где-то - но для этого временного исправления я не пошел по этому пути) _. После того, как вы это настроите, позвольте упаковщику создать пакет с официальной сборкой - не загружайте его в магазин или что-то еще. Просто убедитесь, что он использует указанную версию Electron.

  3. Найдите и замените кешированную сборку Electron, затем снова запустите

    @electron/get сохраняет кешированные загрузки в каталоге ~/Library/Caches/electron . Обычно там должно быть загружено несколько версий Electron, поищите ту, которая используется для пакета 7.0.1 macOS App Store. Имя подкаталога, которое вы ищете, должно быть httpsgithub.comelectronelectronreleasesdownloadv7.0.1electron-v7.0.1-mas-x64.zip и должно содержать zip-архив электронной сборки. Замените этот zip-архив на очищенную сборку @zcbenz , полученную на шаге 1 . Снова запустите упаковщик - он должен пропустить официальную загрузку и использовать кешированную версию, которую вы только что заменили.

  4. Проверить результат использования частного API

    Используйте otool в соответствии с инструкциями @thomasdao. Откройте консоль из xxx.app/Contents/Frameworks/Electron\ Framework.framework/Versions/A затем запустите

    otool -ov Electron\ Framework > ../../../../../../dump.txt
    

    затем найдите в выводе нужные символы, они не должны появляться

    CAContext
    CALayerHost
    NSAccessibilityRemoteUIElement
    NSNextStepFrame
    NSThemeFrame
    NSURLFileTypeMappings
    

    В качестве альтернативы, если вам удобнее работать с инструментом с графическим интерфейсом, вы можете использовать вывода списка и поиска символов, импортированных вашей платформой Electron, включенной в xxx.app.

    _Примечание: В моей первой попытке я пропустил crash_pad модуль в xxx.app\Contents\Frameworks\Electron Framework.framework\Versions\A\Resources" подкаталоге, и получил помечено для частного использования API от него. Таким образом , вы можете проверить дважды для этого один и убедитесь , что он был удален на шаге 1 ._

Вот и все - теперь вы можете отправить свое приложение в магазин.

какие-то оценки времени выхода официального патча?

Вы можете следить за №20965 за прогрессом.

В настоящее время, поскольку отключение API удаленного уровня может значительно снизить производительность, мы ждем ответов от Apple, чтобы узнать, можно ли разблокировать CAContext и CALayerHost для нас или есть ли лучший способ исправлений, чтобы избежать снижения производительности.

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

Можно ли выпустить версию с alpha или beta до того, как Apple ответит?

+1 на временной альфа-версии или так, чтобы мы могли легко установить с помощью npm и отправить :) 💯

Спасибо за отличные направления @zcbenz !

Сегодня утром выполнил инструкции, отправил сборку и был одобрен сегодня вечером! 👏👏 еще раз спасибо.

Спасибо @zcbenz и @netop ! Сегодня я отправил сборку, и она была одобрена!

Использование электронной версии помогло удалить Private-API, но теперь приложение намного тяжелее. При сборке с официальной (7.0.1) версией размер приложения составляет около 60 МБ, но с электронной очисткой размер подскочил до 300 МБ.
Что я могу сделать на своей стороне, чтобы уменьшить размер?

@ manish-patwal Проверьте сообщение выше:

Как использовать исправленную сборку @zcbenz mas (пока не будет доступно более чистое решение)

В исходном архиве от @zcbenz некоторые элементы включены дважды, вместо использования псевдонимов. Вы можете исправить их вручную или воспользоваться ссылкой для скачивания, указанной на шаге №1.

Получил одобрение сегодня! Благодаря!

Доступен ли вариант этого исправления для Electron 6? У нас возникли проблемы с загрузкой Flash-содержимого в чистой версии, см. Https://github.com/electron/electron/issues/20744 @netop @zcbenz

Мое приложение только что одобрено компанией Apple. Используется электрон 6.0.7.
Так есть ли эта проблема только в версии 5.x, или Apple снова вносит коррективы в стратегию обнаружения частного API?

Я использую Electron 6, проблема не устранена

Вышеупомянутый обходной путь не работает для меня, у меня возникают проблемы, когда я заменяю этот файл .zip, кажется, что контрольная сумма не совпадает ?!

Помощь очень ценится - нам нужно получить наше приложение в магазине: - /

Привет @MarshallOfSound!

Патченная сборка

С уважением
Ранджан

@ anh1979 У меня с вами такие же проблемы, а затем я тестирую новый простой проект, все в порядке, поэтому я предполагаю, что есть проблема с версией electronic-packager, я снова запускаю команду после обновления electronic-packager до последней версии в порядке.
@netop Большое спасибо за вашу долю.

@zcbenz @netop

Есть новости по этому поводу?

Я использую Electron 6.x и электронный конструктор. Нам понадобится «пуленепробиваемое» решение, потому что, если Apple отклонит приложение, репутация связанной корпоративной учетной записи снизится, что не очень хорошо.

Каков текущий статус этого?

Я использую электронное построение 21.2.0 и электрон 6.1.5, получаю это сообщение об отказе
Ваше приложение использует или ссылается на следующие закрытые API:

Использование частного класса:
CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

«Продолжение использования или сокрытия непубличных API в будущих представлениях этого приложения может привести к прекращению действия вашей учетной записи Apple Developer, а также к удалению всех связанных приложений из App Store».

Я прочитал все комментарии и сообщения, но не знаю, как использовать PATCH @zcbenz в моем проекте. Я полностью сбит с толку и беспокоюсь, как это решить.

если вы ребята помогите мне буду очень признателен

@ravijethvaaphp прочтите https://github.com/electron/electron/issues/20027#issuecomment -551913031

Я тоже получил это сейчас впервые (наше приложение действительно прошло проверку в сентябре).

Рекомендация 2.5.1 - Производительность - Требования к программному обеспечению

Ваше приложение включает версию SDK от Electron, которая нарушает Правила проверки в App Store. Версия Electron SDK, которую вы используете в своем приложении, пытается скрыть использование частных API. Это нарушение раздела 2.5.1 Руководства по проверке приложений в App Store.

Обнаружено использование частного класса:
CAContext
CALayerHost
NSAccessibilityRemoteUIElement
NSNextStepFrame
NSThemeFrame
NSURLFileTypeMappings

Правило 2.5.1: Приложения могут использовать только общедоступные API.

Следующие шаги

Чтобы решить эту проблему, либо полностью удалите Electron SDK из своего приложения, либо отредактируйте свое приложение, чтобы использовать исправленную версию Electron SDK.

В ожидании утверждения патча: https://github.com/electron/electron/pull/20965 :)

с установкой патча я не могу успешно завершить _rebuild_. Мои зависимости - это SQLite3 и ffmpeg.
Ниже приведен вывод журнала -

CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/duration.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/timestamp.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_secure.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_client_stats.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/census/grpc_context.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/max_age/max_age_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/message_size/message_size_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/http/client_authority_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/workarounds/workaround_utils.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/plugin_registry/grpc_plugin_registry.o
  LIBTOOL-STATIC Release/libgrpc.a
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/alloc.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/arena.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/atm.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_iphone.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_linux.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/env_linux.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/env_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/env_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/host_port.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_android.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_linux.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/mpscq.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/murmur_hash.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string_util_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/sync.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/sync_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/sync_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time_precise.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tls_pthread.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tmpfile_msys.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tmpfile_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tmpfile_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/wrap_memcpy.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gprpp/fork.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gprpp/thd_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gprpp/thd_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/profiling/basic_timers.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/profiling/stap_timers.o
  LIBTOOL-STATIC Release/libgpr.a
  CC(target) Release/obj.target/boringssl/deps/grpc/src/boringssl/err_data.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_bitstr.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_bool.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_d2i_fp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_dup.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_enum.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_gentm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_i2d_fp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_int.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_mbstr.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_object.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_octet.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_print.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_strnid.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_time.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_type.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_utctm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_utf8.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/asn1_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/asn1_par.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/asn_pack.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/f_enum.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/f_int.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/f_string.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_dec.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_enc.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_fre.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_new.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_typ.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_utl.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/time_support.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/base64/base64.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/bio.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/bio_mem.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/connect.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/fd.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/file.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/hexdump.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/pair.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/printf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/socket.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/socket_helper.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bn_extra/bn_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bn_extra/convert.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/buf/buf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/asn1_compat.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/ber.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/cbb.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/cbs.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/chacha/chacha.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/cipher_extra.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/derive_key.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_aesccm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_null.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_rc2.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_rc4.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_ssl3.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_tls.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/tls_cbc.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cmac/cmac.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/conf/conf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-aarch64-fuchsia.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-aarch64-linux.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-arm-linux.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-arm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-intel.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-ppc64le.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/crypto.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/curve25519/spake25519.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/check.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/dh.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/dh_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/params.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/digest_extra/digest_extra.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dsa/dsa.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dsa/dsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ec_extra/ec_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ecdh/ecdh.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/engine/engine.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/err/err.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/digestsign.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/evp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/evp_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/evp_ctx.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_dsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ec.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ec_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ed25519.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ed25519_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_rsa.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_rsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/pbkdf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/print.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/scrypt.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/sign.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ex_data.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/fipsmodule/bcm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/fipsmodule/is_fips.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/hkdf/hkdf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/lhash/lhash.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/mem.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/obj/obj.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/obj/obj_xref.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_all.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_info.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_oth.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_pk8.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_pkey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_xaux.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs7/pkcs7.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs7/pkcs7_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs8/p5_pbev2.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs8/pkcs8.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs8/pkcs8_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/poly1305/poly1305.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/poly1305/poly1305_arm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/poly1305/poly1305_vec.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pool/pool.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/deterministic.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/forkunsafe.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/fuchsia.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/rand_extra.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/windows.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rc4/rc4.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/refcount_c11.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/refcount_lock.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rsa_extra/rsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/stack/stack.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread_none.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread_pthread.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread_win.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_digest.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_sign.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_strex.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_verify.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/algorithm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/asn1_gen.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/by_dir.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/by_file.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/i2d_pr.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/rsa_pss.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_crl.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_req.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_x509a.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_att.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_cmp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_d2.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_def.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_ext.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_lu.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_obj.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_r2x.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_req.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_set.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_trs.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_txt.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_v3.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_vfy.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_vpm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509cset.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509name.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509rset.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509spki.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_algor.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_all.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_attrib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_crl.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_exten.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_info.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_name.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_pkey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_pubkey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_req.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_sig.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_spki.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_val.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_x509a.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_cache.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_data.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_map.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_node.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_tree.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_akey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_akeya.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_alt.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_bcons.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_bitst.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_conf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_cpols.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_crld.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_enum.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_extku.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_genn.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_ia5.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_info.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_int.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_ncons.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pci.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pcia.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pcons.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pku.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pmaps.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_prn.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_purp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_skey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_sxnet.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_utl.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/bio_ssl.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/custom_extensions.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_both.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_pkt.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_srtp.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/dtls_method.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/dtls_record.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handoff.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handshake.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handshake_client.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handshake_server.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/s3_both.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/s3_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/s3_pkt.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_aead_ctx.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_asn1.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_buffer.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_cert.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_cipher.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_file.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_key_share.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_privkey.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_session.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_stat.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_transcript.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_versions.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_x509.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/t1_enc.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/t1_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_both.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_client.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_enc.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_server.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls_method.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls_record.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/third_party/fiat/curve25519.o
  LIBTOOL-STATIC Release/libboringssl.a
  CXX(target) Release/obj.target/grpc_node/ext/byte_buffer.o
  CXX(target) Release/obj.target/grpc_node/ext/call.o
../ext/call.cc:99:53: error: no matching member function for call to 'Get'
    Local<String> current_key(Nan::To<String>(keys->Get(i)).ToLocalChecked());
                                              ~~~~~~^~~
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3502:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3505:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
../ext/call.cc:663:27: error: no matching member function for call to 'Get'
    if (!op->ParseOp(obj->Get(type), &ops[i])) {
                     ~~~~~^~~
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3502:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3505:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
2 errors generated.
make: *** [Release/obj.target/grpc_node/ext/call.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.0.0
gyp ERR! command "/usr/local/bin/node" "/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/.bin/node-gyp" "rebuild" "--target=7.1.1" "--arch=x64" "--dist-url=https://electronjs.org/headers" "--build-from-source" "--module_name=grpc_node" "--module_path=/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/grpc/src/node/extension_binary/electron-v7.1-darwin-x64-unknown" "--host=https://node-precompiled-binaries.grpc.io/" "--remote_path={name}/v1.20.3" "--package_name=electron-v7.1-darwin-x64-unknown.tar.gz"
gyp ERR! cwd /Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/grpc
gyp ERR! node -v v12.12.0
gyp ERR! node-gyp -v v6.0.1
gyp ERR! not ok

Failed with exit code: 1

Error:   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/avl/avl.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/backoff/backoff.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_args.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_stack.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_stack_builder.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_trace.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channelz.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channelz_registry.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/connected_channel.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker_registry.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/status_util.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/compression.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/compression_internal.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/message_compress.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/stream_compression.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/stream_compression_gzip.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/stream_compression_identity.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/debug/stats.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/debug/stats_data.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/format_request.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/httpcli.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/parser.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/buffer_list.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/call_combiner.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/combiner.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint_pair_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint_pair_uv.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint_pair_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/error.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_epoll1_linux.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_epollex_linux.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_poll_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/exec_ctx.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/executor.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/fork_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/fork_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/gethostname_fallback.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/gethostname_host_name_max.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/gethostname_sysconf.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/grpc_if_nametoindex_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/internal_errqueue.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iocp_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_internal.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_uv.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/is_epollexclusive_available.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/load_file.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/lockfree_event.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/polling_entity.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_set.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_set_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_set_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_uv.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resource_quota.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/sockaddr_utils.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_factory_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_mutator.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_common_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_linux.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_uv.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_utils_posix_common.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_uv.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/time_averaged_stats.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_custom.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_generic.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_heap.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_manager.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_uv.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/udp_server.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/unix_sockets_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/unix_sockets_posix_noop.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_eventfd.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_nospecial.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_pipe.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json_reader.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json_string.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json_writer.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/b64.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/percent_encoding.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_buffer.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_intern.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_string_helpers.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/api_trace.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/byte_buffer.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/byte_buffer_reader.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/call.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/call_details.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/call_log_batch.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel_init.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel_ping.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel_stack_type.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/completion_queue.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/completion_queue_factory.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/event_string.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/lame_client.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/metadata_array.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/server.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/validate_metadata.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/version.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/bdp_estimator.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/byte_stream.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/connectivity_state.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/error_utils.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/metadata.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/metadata_batch.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/pid_controller.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/static_metadata.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/status_conversion.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/status_metadata.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/timeout_encoding.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/transport.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/transport_op_string.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/uri/uri_parser.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/debug/trace.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/bin_decoder.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/bin_encoder.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/chttp2_plugin.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/chttp2_transport.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/context_list.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/flow_control.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/frame_data.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/frame_goaway.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/frame_ping.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/frame_rst_stream.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/frame_settings.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/frame_window_update.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/hpack_encoder.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/hpack_parser.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/hpack_table.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/http2_settings.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/huffsyms.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/incoming_metadata.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/parsing.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/stream_lists.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/stream_map.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/varint.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/writing.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/alpn/alpn.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/http/client/http_client_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/http/http_filters_plugin.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/http/message_compress/message_compress_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/http/server/http_server_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/httpcli_security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/context/security_context.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/alts_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/composite/composite_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/credentials_metadata.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/fake/fake_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/google_default/credentials_generic.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/google_default/google_default_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/iam/iam_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/jwt/json_token.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/jwt/jwt_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/jwt/jwt_verifier.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/local/local_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/oauth2/oauth2_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/plugin/plugin_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/ssl/ssl_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/tls/spiffe_credentials.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/alts/alts_security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/fake/fake_security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/load_system_roots_fallback.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/load_system_roots_linux.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/local/local_security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/ssl/ssl_security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/ssl_utils.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/security_connector/tls/spiffe_security_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/transport/client_auth_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/transport/secure_endpoint.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/transport/security_handshaker.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/transport/server_auth_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/transport/target_authority_table.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/transport/tsi_error.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/util/json_util.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init_secure.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/crypt/aes_gcm.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/crypt/gsec.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/alts_counter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/alts_crypter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/alts_frame_protector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/frame_protector/frame_handler.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/alts_handshaker_client.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/alts_shared_resource.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/alts_tsi_handshaker.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/check_gcp_environment.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/check_gcp_environment_linux.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/check_gcp_environment_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/alts_handshaker_service_api.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/alts_tsi_utils.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/transport_security_common_api.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/altscontext.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/handshaker.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/alts/handshaker/transport_security_common.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/third_party/nanopb/pb_common.o
  CC(target) Release/obj.target/grpc/deps/grpc/third_party/nanopb/pb_decode.o
  CC(target) Release/obj.target/grpc/deps/grpc/third_party/nanopb/pb_encode.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/transport_security.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/client/insecure/channel_create.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/client/authority.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/client/chttp2_connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/backup_poller.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/channel_connectivity.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/client_channel.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/client_channel_channelz.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/client_channel_factory.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/client_channel_plugin.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/connector.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/global_subchannel_pool.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/health/health_check_client.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/http_connect_handshaker.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/http_proxy.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy_registry.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/local_subchannel_pool.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/parse_address.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/proxy_mapper.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/proxy_mapper_registry.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver_registry.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver_result_parsing.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolving_lb_policy.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/retry_throttle.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/server_address.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/service_config.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/subchannel.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/subchannel_pool_interface.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/deadline/deadline_filter.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/health/health.pb.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/fake_transport_security.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/local_transport_security.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/ssl/session_cache/ssl_session_boringssl.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/ssl/session_cache/ssl_session_cache.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/ssl/session_cache/ssl_session_openssl.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/ssl_transport_security.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/tsi/transport_security_grpc.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/server/chttp2_server.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/client/secure/secure_channel_create.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/server/insecure/server_chttp2.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/inproc/inproc_plugin.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/inproc/inproc_transport.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/duration.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/google/protobuf/timestamp.pb.o
  CC(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_secure.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_client_stats.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/census/grpc_context.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/max_age/max_age_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/message_size/message_size_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/http/client_authority_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/workarounds/workaround_utils.o
  CXX(target) Release/obj.target/grpc/deps/grpc/src/core/plugin_registry/grpc_plugin_registry.o
  LIBTOOL-STATIC Release/libgrpc.a
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/alloc.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/arena.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/atm.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_iphone.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_linux.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/cpu_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/env_linux.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/env_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/env_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/host_port.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_android.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_linux.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/log_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/mpscq.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/murmur_hash.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string_util_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/string_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/sync.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/sync_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/sync_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time_precise.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/time_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tls_pthread.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tmpfile_msys.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tmpfile_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/tmpfile_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gpr/wrap_memcpy.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gprpp/fork.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gprpp/thd_posix.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/gprpp/thd_windows.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/profiling/basic_timers.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/profiling/stap_timers.o
  LIBTOOL-STATIC Release/libgpr.a
  CC(target) Release/obj.target/boringssl/deps/grpc/src/boringssl/err_data.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_bitstr.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_bool.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_d2i_fp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_dup.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_enum.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_gentm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_i2d_fp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_int.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_mbstr.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_object.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_octet.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_print.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_strnid.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_time.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_type.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_utctm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/a_utf8.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/asn1_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/asn1_par.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/asn_pack.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/f_enum.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/f_int.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/f_string.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_dec.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_enc.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_fre.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_new.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_typ.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/tasn_utl.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/asn1/time_support.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/base64/base64.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/bio.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/bio_mem.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/connect.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/fd.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/file.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/hexdump.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/pair.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/printf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/socket.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/socket_helper.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bn_extra/bn_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bn_extra/convert.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/buf/buf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/asn1_compat.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/ber.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/cbb.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bytestring/cbs.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/chacha/chacha.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/cipher_extra.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/derive_key.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_aesccm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_null.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_rc2.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_rc4.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_ssl3.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/e_tls.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cipher_extra/tls_cbc.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cmac/cmac.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/conf/conf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-aarch64-fuchsia.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-aarch64-linux.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-arm-linux.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-arm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-intel.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/cpu-ppc64le.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/crypto.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/curve25519/spake25519.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/check.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/dh.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/dh_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dh/params.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/digest_extra/digest_extra.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dsa/dsa.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/dsa/dsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ec_extra/ec_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ecdh/ecdh.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/engine/engine.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/err/err.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/digestsign.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/evp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/evp_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/evp_ctx.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_dsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ec.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ec_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ed25519.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_ed25519_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_rsa.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/p_rsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/pbkdf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/print.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/scrypt.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/evp/sign.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/ex_data.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/fipsmodule/bcm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/fipsmodule/is_fips.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/hkdf/hkdf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/lhash/lhash.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/mem.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/obj/obj.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/obj/obj_xref.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_all.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_info.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_oth.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_pk8.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_pkey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pem/pem_xaux.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs7/pkcs7.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs7/pkcs7_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs8/p5_pbev2.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs8/pkcs8.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pkcs8/pkcs8_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/poly1305/poly1305.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/poly1305/poly1305_arm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/poly1305/poly1305_vec.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/pool/pool.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/deterministic.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/forkunsafe.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/fuchsia.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/rand_extra.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rand_extra/windows.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rc4/rc4.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/refcount_c11.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/refcount_lock.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/rsa_extra/rsa_asn1.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/stack/stack.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread_none.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread_pthread.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/thread_win.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_digest.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_sign.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_strex.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/a_verify.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/algorithm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/asn1_gen.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/by_dir.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/by_file.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/i2d_pr.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/rsa_pss.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_crl.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_req.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/t_x509a.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_att.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_cmp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_d2.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_def.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_ext.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_lu.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_obj.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_r2x.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_req.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_set.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_trs.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_txt.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_v3.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_vfy.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509_vpm.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509cset.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509name.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509rset.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x509spki.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_algor.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_all.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_attrib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_crl.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_exten.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_info.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_name.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_pkey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_pubkey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_req.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_sig.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_spki.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_val.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_x509.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509/x_x509a.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_cache.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_data.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_map.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_node.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/pcy_tree.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_akey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_akeya.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_alt.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_bcons.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_bitst.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_conf.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_cpols.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_crld.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_enum.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_extku.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_genn.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_ia5.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_info.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_int.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_lib.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_ncons.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pci.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pcia.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pcons.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pku.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_pmaps.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_prn.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_purp.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_skey.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_sxnet.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/x509v3/v3_utl.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/bio_ssl.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/custom_extensions.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_both.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_pkt.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/d1_srtp.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/dtls_method.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/dtls_record.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handoff.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handshake.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handshake_client.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/handshake_server.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/s3_both.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/s3_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/s3_pkt.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_aead_ctx.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_asn1.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_buffer.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_cert.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_cipher.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_file.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_key_share.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_privkey.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_session.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_stat.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_transcript.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_versions.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/ssl_x509.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/t1_enc.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/t1_lib.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_both.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_client.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_enc.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls13_server.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls_method.o
  CXX(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/ssl/tls_record.o
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/third_party/fiat/curve25519.o
  LIBTOOL-STATIC Release/libboringssl.a
  CXX(target) Release/obj.target/grpc_node/ext/byte_buffer.o
  CXX(target) Release/obj.target/grpc_node/ext/call.o
../ext/call.cc:99:53: error: no matching member function for call to 'Get'
    Local<String> current_key(Nan::To<String>(keys->Get(i)).ToLocalChecked());
                                              ~~~~~~^~~
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3502:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3505:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
../ext/call.cc:663:27: error: no matching member function for call to 'Get'
    if (!op->ParseOp(obj->Get(type), &ops[i])) {
                     ~~~~~^~~
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3502:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
/Users/ritikrishu/.electron-gyp/7.1.1/include/node/v8.h:3505:43: note: candidate function not viable: requires 2 arguments, but 1 was provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                          ^
2 errors generated.
make: *** [Release/obj.target/grpc_node/ext/call.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.0.0
gyp ERR! command "/usr/local/bin/node" "/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/.bin/node-gyp" "rebuild" "--target=7.1.1" "--arch=x64" "--dist-url=https://electronjs.org/headers" "--build-from-source" "--module_name=grpc_node" "--module_path=/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/grpc/src/node/extension_binary/electron-v7.1-darwin-x64-unknown" "--host=https://node-precompiled-binaries.grpc.io/" "--remote_path={name}/v1.20.3" "--package_name=electron-v7.1-darwin-x64-unknown.tar.gz"
gyp ERR! cwd /Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/grpc
gyp ERR! node -v v12.12.0
gyp ERR! node-gyp -v v6.0.1
gyp ERR! not ok

Failed with exit code: 1
    at SafeSubscriber._error (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/spawn-rx/lib/src/index.js:267:84)
    at SafeSubscriber.__tryOrUnsub (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:205:16)
    at SafeSubscriber.error (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:156:26)
    at Subscriber._error (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:92:26)
    at Subscriber.error (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:72:18)
    at MapSubscriber.Subscriber._error (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:92:26)
    at MapSubscriber.Subscriber.error (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:72:18)
    at SafeSubscriber._next (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/spawn-rx/lib/src/index.js:242:65)
    at SafeSubscriber.__tryOrUnsub (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:205:16)
    at SafeSubscriber.next (/Users/ritikrishu/Documents/Projects/sixgill/hyperlabel-app/node_modules/rxjs/internal/Subscriber.js:143:22)
npm ERR! code ELIFECYCLE
npm ERR! errno 255
npm ERR! [email protected] rebuild: `cross-env CFLAGS=-Wno-error CXXFLAGS=-Wno-error electron-rebuild -f -w sqlite3,ffmpeg`
npm ERR! Exit status 255
npm ERR!
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/ritikrishu/.npm/_logs/2019-12-03T09_41_07_965Z-debug.log

Пожалуйста, поправьте меня, если я ошибаюсь.

Можем ли мы теперь просто заменить электронную версию в package.json на это:

"electron": "github:electron/electron#938cc461e794a5771fccc843fd8ce8690e0501bb"
получить исправленную версию?

Или, возможно, это:

"electron": "https://github.com/electron/electron#pull/20965/head"

@steffanhalv
я думаю, что если вы построите так, вы можете включить больше библиотек, которые не разрешены в MAS
если вам это нравится, обязательно просканируйте свою сборку перед отправкой, а также поищите другие нежелательные библиотеки, см. комментарий https://github.com/electron/electron/issues/20027#issuecomment -551067242

@zcbenz

Любые обновления? Какую электронную версию мне следует использовать, чтобы получить одобрение Apple?
Кажется, даже приложения с электроном 6.1.5 отклоняются ..

Может ли кто-нибудь сказать мне, какую именно версию использовать? Или использование кастомной сборки (как описано выше) пока единственный способ?

Заранее спасибо!

@gtamas Пользовательская сборка - единственный путь, пока исправление не будет одобрено (насколько я знаю).

@ravijethvaaphp читать # 20027 (комментарий)

Есть ли сборка для скачивания на электрон 6?
потому что какой-то плагин не поддерживает Electron 7 в моем проекте
у кого-нибудь есть ссылка, как в комментарии выше, т.е. https://github.com/electron/electron/issues/20027#issuecomment -551913031

Отсутствие реакции команды Electron на эту широко распространенную проблему заставляет нас серьезно пересмотреть возможность использования Electron для наших приложений платформы.

(Я не являюсь участником этого проекта) Вы видели примечания к изменениям / выпуску v8? Я сделал.

Что еще более важно, философия открытого исходного кода такова: будь тем изменением, которое вы хотите увидеть, откройте капот. Линус сказал бы: Сделай сам. Пожалуйста, отправьте PR для документов, источника и т. Д.

@cekvenich какие изменения в v8?
v8 все еще имеет частный API

У нас пока нет решения от Apple, поэтому мы решили объединить исправления только для 5.x и 6.x.

Это временная мера, позволяющая людям выпускать приложения в Mac App Store, однако она приводит к значительному снижению производительности, и мы ищем решение с Apple для будущих версий Electron, которое не ставит под угрозу производительность приложений Electron.

@zcbenz Спасибо за обновление.

Повлияет ли снижение производительности на приложения, которые уже отключают аппаратное ускорение (с app.disableHardwareAcceleration Electron API)?

@zcbenz

Отличные новости, спасибо!

поэтому мы решили объединить исправления только для 5.x и 6.x.

Почему не для 7.x?

Повлияет ли снижение производительности на приложения, которые уже отключают аппаратное ускорение (с app.disableHardwareAcceleration Electron API)?

Нет снижения производительности приложений, которые отключают аппаратное ускорение.

Почему не для 7.x?

Потому что это не настоящее исправление, и команда решила не включать его в нашу последнюю стабильную версию, если нет другого варианта.

Apple собирается в конце концов убить веб-приложения, такие как Electron?

У нас пока нет решения от Apple, поэтому мы решили объединить исправления только для 5.x и 6.x.

Это временная мера, позволяющая людям выпускать приложения в Mac App Store, однако она приводит к значительному снижению производительности, и мы ищем решение с Apple для будущих версий Electron, которое не ставит под угрозу производительность приложений Electron.

@zcbenz
Когда будет опубликовано исправление в npm, и повлияет ли это исправление на производительность немассовой сборки

Вышеупомянутый обходной путь не работает для меня, у меня возникают проблемы, когда я заменяю этот файл .zip, кажется, что контрольная сумма не совпадает ?!

Помощь очень ценится - нам нужно получить наше приложение в магазине: - /

Привет, @ anh1979 , тебе удалось обойти проблему с контрольной суммой? Я также получаю ту же ошибку от electronic-packager / cli:

Generated checksum for "electron-v7.0.1-mas-x64.zip" did not match expected checksum.


РЕШЕНИЕ:
Я передаю следующий флаг electron-packager/cli.js

--download.disableChecksumSafetyCheck = true

https://github.com/electron/get/pull/68

@jmcrthrs : Да, мне пришлось обновить электронный упаковщик до последней версии, затем повторить

Означает ли это, что версия 5/6 может быть одобрена Mac App Store?

Удалось заставить Apple одобрить наше приложение с 6.1.7

Я также получил одобрение от Apple после обновления до Electron v5.0.13.

@mytran @ jarek-foksa Значит, ваши приложения были одобрены, несмотря на наличие частных API? Вам не нужно было использовать работу, описанную здесь: https://github.com/electron/electron/issues/20027#issuecomment -551913031

@jmcrthrs Версии 5.0.13 и 6.1.7 были выпущены совсем недавно и уже включают исправления MAS. Нет никаких обходных путей или дополнительных действий.

@ jarek-foksa @zcbenz

Отличные новости, спасибо! Итак, обновление до 6.1.7 полностью устраняет риск отказа со стороны Apple, верно? Я имею в виду, что это официальный релиз и все такое.

@zcbenz упомянул, что это невозможно с Electron 7, потому что «это не настоящее исправление». Вот почему я немного запутался. Так безопасно ли использовать это или нам следует ждать «настоящего исправления»? Будет ли это релиз в ближайшее время?

@gtamas Да, я успешно опубликовал два разных приложения с использованием Electron 5.0.13 в Mac App Store. Подача заявки прошла гладко, жалоб от Apple не поступало. Electron 6.1.7 тоже подойдет, так как там такие же патчи.

Пока что я не заметил каких-либо значительных падений производительности, хотя одно из моих приложений - это редактор SVG, который предназначен для управления графическими объектами на экране.

@ jarek-foksa Вы можете не замечать такие вещи, как падение FPS, но полученный патч запускает более ресурсоемкий код, который потенциально потребляет больше энергии (быстрее разряжает аккумулятор)

@MarshallOfSound Интересно, это что-то заметное со стороны вкладки производительности Chrome или позже на конвейере, вне области

Вы, вероятно, не сможете увидеть это из собственных инструментов производительности Chromes.

Благодаря пользовательской сборке от @zcbenz мое приложение v7.x было одобрено и готово к продаже. Падения производительности не заметил.

Итак, каково текущее решение для Electron 7+? Ждем обновлений? Понижение до 5,6?

@gtamas Да, я успешно опубликовал два разных приложения с использованием Electron 5.0.13 в Mac App Store. Подача заявки прошла гладко, жалоб от Apple не поступало. Electron 6.1.7 тоже подойдет, так как там такие же патчи.

Пока что я не заметил каких-либо значительных падений производительности, хотя одно из моих приложений - это редактор SVG, который предназначен для управления графическими объектами на экране.

Не могли бы мы узнать, какую версию electronic-builder вы использовали? Потребовались ли какие-либо модификации, чтобы его построить?

@msavin Я использовал конструктор электронов версии 21.2.0, не помню, чтобы вносил какие-либо изменения.

Есть новости здесь?
или все еще "электрон": "6.1.7", тот, который использовать?

@MarshallOfSound @zcbenz

Apple по-прежнему отклоняет приложения, использующие официальные сборки Electron 7 и 8 MAS из-за использования CAContext и CALayerHost .

Я не понимаю причин, по которым было принято решение не обновлять новые версии. Сборка MAS с плохой производительностью батареи всегда лучше, чем сборка MAS с хорошей производительностью батареи, которая в основном бесполезна, потому что ее нельзя опубликовать в магазине приложений.

Я предполагаю, что изначально предполагалось, что Apple скоро предоставит решение, добавив эти два API в белый список, но через 3 месяца я думаю, можно с уверенностью предположить, что они не хотят этого делать.

Кроме того, эти новые выпуски Electron содержат исправления некоторых критических ошибок (таких как нарушение печати ). В настоящее время я использую исправленную версию Electron 5.x, и до сих пор я получал несколько жалоб на сбой печати, но ни один из моих пользователей не жаловался на использование батареи.

Я также надеюсь, что Electron 8 можно пропатчить. Он имеет новую функцию проверки орфографии, которая решает главную проблему в более старом Electron. И я думаю, что если что-то изменится в будущем, этот патч можно будет отменить, чтобы он не был постоянным.

Я получаю следующие ошибки от Apple с Electron 6.1.7:

Рекомендация 2.5.1 - Производительность - Требования к программному обеспечению

Ваше приложение включает версию SDK от Electron, которая нарушает Правила проверки в App Store. Версия Electron SDK, которую вы используете в своем приложении, пытается скрыть использование частных API. Это нарушение раздела 2.5.1 Руководства по проверке приложений в App Store.

и

Руководящий принцип 2.5.1 - Производительность

Ваше приложение-приложение ссылается на следующие закрытые платформы:

_AXTextMarkerRangeCopyEndMarker, _NSTextInputReplacementRangeAttributeName, __kCFSystemVersionProductVersionExtraKey, _AXTextMarkerCreate, _AXTextMarkerRangeCopyStartMarker, _AXTextMarkerGetBytePtr, __kCFSystemVersionBuildVersionKey, _AudioDeviceDuck, __NSDrawCarbonThemeListBox, __NSInitializeKillRing, __CFCopyServerVersionDictionary, __NSYankFromKillRing, __LSSetApplicationLaunchServicesServerConnectionStatus, __NSAppendToKillRing, __kCFSystemVersionProductNameKey, __NSDrawCarbonThemeBezel, _AXTextMarkerRangeCreate, __kCFSystemVersionProductVersionKey, _AXTextMarkerGetLength, _SetApplicationIsDaemon, __NSNewKillRingSequence, __NSSetKillRingToYankedState, __CFCopySystemVersionDictionary

попробуй это
https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/2169#issuecomment -478323276

пожалуйста, дайте нам знать, если это проблема

Это еще одна группа черных списков API. Похоже, Apple решила убить электронные приложения. 😱

Я получаю следующие ошибки от Apple с Electron 6.1.7:

Рекомендация 2.5.1 - Производительность - Требования к программному обеспечению

Ваше приложение включает версию SDK от Electron, которая нарушает Правила проверки в App Store. Версия Electron SDK, которую вы используете в своем приложении, пытается скрыть использование частных API. Это нарушение раздела 2.5.1 Руководства по проверке приложений в App Store.

и

Руководящий принцип 2.5.1 - Производительность

Ваше приложение-приложение ссылается на следующие закрытые платформы:
_AXTextMarkerRangeCopyEndMarker, _NSTextInputReplacementRangeAttributeName, __kCFSystemVersionProductVersionExtraKey, _AXTextMarkerCreate, _AXTextMarkerRangeCopyStartMarker, _AXTextMarkerGetBytePtr, __kCFSystemVersionBuildVersionKey, _AudioDeviceDuck, __NSDrawCarbonThemeListBox, __NSInitializeKillRing, __CFCopyServerVersionDictionary, __NSYankFromKillRing, __LSSetApplicationLaunchServicesServerConnectionStatus, __NSAppendToKillRing, __kCFSystemVersionProductNameKey, __NSDrawCarbonThemeBezel, _AXTextMarkerRangeCreate, __kCFSystemVersionProductVersionKey, _AXTextMarkerGetLength, _SetApplicationIsDaemon, __NSNewKillRingSequence, __NSSetKillRingToYankedState, __CFCopySystemVersionDictionary

@gaodeng
см. ссылку, которую я разместил выше.
он отправил грязную сборку с dmg и получил ту же версию 2.5.1
посмотрите на дату.

Надеюсь, это просто ошибка сборки от buu700

Эти API - все те API, которые мы когда-либо исправляли, они неправильно использовали сборку mas . Это ошибка пользователя, а не другие API, которые мы должны исправить

Спасибо за быстрый ответ @JCBsystem. Не могли бы вы пояснить, что вы имеете в виду под "грязной сборкой с dmg"? В любом случае, я удалю ~/Library/Caches/electron согласно этому сообщению и попробую еще раз.

Я не уверен, что вы предлагаете ошибку пользователя здесь @MarshallOfSound. Есть ли еще один ожидаемый шаг, помимо запуска сборки mas и отправки сгенерированного файла pkg?

@ buu700 Я говорю, что вы не использовали сборку mas . Какой бы инструмент вы ни использовали, он не использует сборку mas Electron, поскольку этот список символов в основном является уроком истории для всех символов, которые мы удалили в прошлом.

Ах, спасибо, тогда это может быть проблема кордово-электронов.

@JCBsystem @MarshallOfSound @erisu в https://github.com/apache/cordova-electron/issues/140 сказал мне поделиться сгенерированным файлом конфигурации электронного строителя из platforms/electron/build/builder-effective-config.yaml (скопировано ниже). Это полезно?

directories:
  output: /Users/buu700/cyph/cyph-phonegap-build/platforms/electron/build
  buildResources: /Users/buu700/cyph/cyph-phonegap-build/platforms/electron/build-res
  app: /Users/buu700/cyph/cyph-phonegap-build/platforms/electron/www
appId: com.cyph.desktop
productName: Cyph
electronVersion: 6.1.7
electronDownload:
  version: 6.1.7
mac:
  target:
    - target: dmg
      arch:
        - x64
    - target: mas
      arch:
        - x64
  icon: installer.png
  type: distribution
mas:
  entitlements: macos.parent.plist
  entitlementsInherit: macos.child.plist
  provisioningProfile: /Users/buu700/.cyph/nativereleasesigning/apple/macOS_Distribution.provisionprofile

@ buu700
попытаться удалить

  • цель: урон
    арка:
    - x64

Хорошо, я только что отправил новую сборку в App Store (восстановленная конфигурация ниже). Скрещенные пальцы!

directories:
  output: /Users/buu700/cyph/cyph-phonegap-build/platforms/electron/build
  buildResources: /Users/buu700/cyph/cyph-phonegap-build/platforms/electron/build-res
  app: /Users/buu700/cyph/cyph-phonegap-build/platforms/electron/www
appId: com.cyph.desktop
productName: Cyph
electronVersion: 6.1.7
electronDownload:
  version: 6.1.7
mac:
  target:
    - target: mas
      arch:
        - x64
  icon: installer.png
  type: distribution
mas:
  entitlements: macos.parent.plist
  entitlementsInherit: macos.child.plist
  provisioningProfile: /Users/buu700/.cyph/nativereleasesigning/apple/macOS_Distribution.provisionprofile

Никаких кубиков.

Руководящий принцип 2.5.1 - Производительность

Ваше приложение-приложение ссылается на следующие закрытые платформы:

AXTextMarkerRangeCopyEndMarker, _NSTextInputReplacementRangeAttributeName, __kCFSystemVersionProductVersionExtraKey, _AXTextMarkerCreate, _AXTextMarkerRangeCopyStartMarker, _AXTextMarkerGetBytePtr, __kCFSystemVersionBuildVersionKey, _AudioDeviceDuck, __NSDrawCarbonThemeListBox, __NSInitializeKillRing, __CFCopyServerVersionDictionary, __NSYankFromKillRing, __LSSetApplicationLaunchServicesServerConnectionStatus, __kCFSystemVersionProductNameKey, __NSAppendToKillRing, __NSDrawCarbonThemeBezel, _AXTextMarkerRangeCreate, __kCFSystemVersionProductVersionKey, _AXTextMarkerGetLength, _SetApplicationIsDaemon, __NSNewKillRingSequence, __CFCopySystemVersionDictionary, __NSSetKillRingToYankedState

(Список непубличных фреймворков немного отличается от того, что было 6 дней назад, если это важно.)

@ buu700

вы можете разместить ссылку на свою сборку?

Конечно, вы можете скачать его здесь .

@ buu700

у вас есть "app.asar.unpacked", включенный в вашу папку ресурсов.
В нем есть электронное приложение, которое вызывает предупреждения API.

удалите app.asar.unpacked и попробуйте еще раз
перед отправкой дубля проверьте свое приложение
откройте приложение и перейдите в папку ресурсов, см. рис.

см. картинку здесь
https://imgur.com/a/dYWxq5d

Спасибо @JCBsystem! Я постараюсь удалить это сегодня; похоже, что это, скорее всего, проблема Кордовы.

@JCBsystem @MarshallOfSound @erisu

Хорошие новости! Мое обновление было принято!

Кажется, что app.asar.unpacked генерируется цепочкой инструментов сборки Electron. Я не знаю, в какой момент он сгенерирован, но мне пришлось исправить app-builder-lib в качестве временного обходного пути:

Screen Shot 2020-02-19 at 9 42 04 PM

Что меня смущает, так это то, что, похоже, никто другой не столкнулся с этой проблемой, учитывая, что, насколько я могу судить, это счастливый путь, ошибка Electron. Может быть, Кордова (или мое приложение) делает что-то по-другому, что может вызвать неожиданное создание app.asar.unpacked (или неожиданное заполнение модуля electron )?

app.asar.unpacked имеет отношения к этой ошибке, ее удаление фактически приведет к невозможности использования частей вашего приложения. Ваша проблема возникла из-за использования неправильной сборки darwin / mas, возможно, некоторые другие изменения, внесенные вами в сценарии сборки, устранили основную проблему, но удаление этой распакованной папки будет иметь нулевое положительное влияние и сломает большинство приложений

но в его приложении есть 2 приложения Electron
один там нормальное место
и один в app.asar.unpacked.

это не правильно

@JCBsystem Извините, если я не

app.asar.unpacked имеет отношения к этой ошибке, ее удаление фактически приведет к невозможности использования частей вашего приложения.

Ах, спасибо, это хорошо знать. Может ли удаление всего app.asar.unpacked/node_modules/electron/dist/Electron.app вызывать проблемы?

Ваша проблема возникла из-за использования неправильной сборки darwin / mas

Можете быть более конкретными? Вы сказали это несколько раз, и я не понимаю, какой еще тип сборки вы хотите предложить мне. Конфигурация сборки выглядит неправильно?

возможно, какое-то другое изменение, которое вы внесли в свои сценарии сборки, устранило основную проблему, но удаление этой распакованной папки будет иметь 0 положительных последствий и сломает большинство приложений

Не знаю, что вам сказать, других изменений буквально нет. Он проходит после удаления app.asar.unpacked и не работает в противном случае.

Ах, спасибо, это хорошо знать. Будет ли вызывать проблемы удаление только app.asar.unpacked / node_modules / electronics / dist / Electron.app?

Вероятно, нет, если вы удалите _просто_ это приложение, но вы должны выяснить, почему оно помещено туда, а не взламывать его.

Можете быть более конкретными? Вы сказали это несколько раз, и я не понимаю, какой еще тип сборки вы хотите предложить мне. Конфигурация сборки выглядит неправильно?

Конфигурация сборки кажется правильной, но, как я уже сказал, either using or accidentally including the non-mas version of Electron . В этом случае вы случайно «включили» немассовую версию Electron в эту папку, хотя ваша конфигурация сборки была нацелена на mas по умолчанию, пакет electron npm будет использовать обычный darwin build, который заканчивался в папке app.asar.unpacked .

Вы должны выяснить, почему этот пакет electron npm был включен в app.asar.unpacked но это
следует решить в ветке этой проблемы, здесь мы не по теме 😄

Понятно, спасибо за пояснение! Итак, некоторые из узловых модулей в этой папке определенно необходимы во время выполнения, но просто electron обычно не требуется?

В этом случае, я думаю, мы сузили круг вопросов, которые Кордова должна исправить (а также улучшение моего хакерского обходного пути). Я сообщу об этом в ветке выпуска cordova-electronic.

Извините, если на это ответят в другом месте, но:

Являются ли версии Electron 7.x, 8.x и 9.x также проблематичными для пользователей частных API-интерфейсов? Или в последние версии Electron были обновления для решения этой проблемы?

Я спрашиваю, потому что пытаюсь понять, нужно ли больше поработать, чтобы отменить критические изменения API, которые я сделал, и вернуться к Electron 5.x, или я могу просто получить более позднюю версию Electron, которая также исправлена.

@briandk 8.0.2 и v9.0.0-beta.3 выпущенные вчера, и в примечаниях к выпуску упоминается исправление, поэтому эти версии должны подойти для магазина приложений. Я не верю, что выпуск v7 еще содержит исправление, но предполагаю, что в следующем (так что все> 7.1.13 ) оно будет, так как PR был перенесен в ветку v7.

Я только что выпустил свое приложение без потерь с электронным 8.2.0 и могу подтвердить, что во время проверки у меня не возникало никаких проблем с частным API.

Ребят, а вы в курсе, есть ли возможность использовать модуль autoUpdater в сборке MAS? Возможно, этот вопрос связан с текущим обсуждением

@kalachevmax Mac App Store должен обрабатывать обновления самостоятельно. Без самообновления приложения Electron. При этом может быть способ сделать и то, и другое.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги