• 0
Barbanel

Define для релиз-версии

Вопросы

Здравствуйте!

Подскажите пожалейста, устанавливаются ли какие-либо стандартные Define при компиляции приложения для Play Store?

Понятно что можно установить свои дефайны, разные для дебага и релиза, но хочется знать, существуют ли стандартные.

Спасибо, всем хорошего дня =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 ответов на этот вопрос

  • 0

честно не совсем понял о чем речь. директивы стандартные можно найти в справке ембы

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Conditional_compilation_(Delphi)

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Delphi_Compiler_Directives_(List)_Index

ну и так далее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

обычно хватает того, что находится в Build Configuration

выбираем Debug или Release и всё. Но можно и плодить свои конфиги

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 час назад, Равиль Зарипов (ZuBy) сказал:

честно не совсем понял о чем речь. директивы стандартные можно найти в справке ембы

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Conditional_compilation_(Delphi)

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Delphi_Compiler_Directives_(List)_Index

ну и так далее

1 час назад, krapotkin сказал:

обычно хватает того, что находится в Build Configuration

выбираем Debug или Release и всё. Но можно и плодить свои конфиги

Попытаюсь пояснить.

Я не вижу в настройках IDE (в опциях проекта), какие у меня определены директивы компилятора для каждой системы (для Win/Android, и Debug/Release).

Либо это баг ИДЕ в целом, либо баг конкретно моей версии - я хз.

При переключении целевой платформы, поля в настройках проекта просто не обновляются. Соотв. я не знаю, какие директивы актуальны для текущей сборки, и какие будут актуальны, если я впишу свой набор директив в эти необновленные поля.Поэтому и спрашиваю, есть ли некие предустановленные компилятором/средой директивы, актуальные в каждой из целевых платформ, для дебага и релиза соответственно.

Как вариант - пошариться в файле .dproj но его формат малопонятен. Я имею ввиду, какие параметры относятся к какой платформе и версии.

Screenshot_5.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 час назад, Barbanel сказал:

Я имею ввиду, какие параметры относятся к какой платформе и версии.

Вам же дали ссылку на Conditional Defines. Это именно то, что вы спрашивали - что под какой платформой неявно задефайнено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
5 минут назад, kami сказал:

Вам же дали ссылку на Conditional Defines. Это именно то, что вы спрашивали - что под какой платформой неявно задефайнено.

Да. А я больше ничего и не прошу, я поясняю чтобы было понятнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Alex7wrt
      Добрый день.
      Знаю, что на форуме есть несколько тем о том, как удалять объекты под Android и счетчике ссылок, однако использование рекомендаций оттуда мне пока не помогло.
      Суть вопроса: создаю свой класс

       
      type TRext =class(TRectangle) Text: TText; procedure RextMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure RextMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure RextMouseLeave(Sender: TObject); Constructor Create(AOwner: TComponent); override; Destructor Destroy; override; end; type TMyChoose = class Item1, Item2, Item3: TRext; Edits: TEdit; procedure ItemClick(Sender: TObject); procedure OnEditFocus(Sender: TObject; var ACanFocus: Boolean); Constructor Create(Form: TForm); Destructor Destroy; override; end; ..... constructor TRext.Create(AOwner: TComponent); begin inherited Create(AOwner); Text:=TText.Create(Self); Text.Parent:=Self; Text.Align:=TAlignLayOut.Client; Self.Text.OnMouseDown:=RextMouseDown; Self.Text.OnMouseUp:=RextMouseUp; Self.Text.OnMouseLeave:=RextMouseLeave; end; Destructor TRext.Destroy; begin Text.Release; Text:=nil; inherited; end; constructor TMyChoose.Create(Form: TForm); begin inherited Create; Item1:=TRextCreate(Form); Item1.Parent:=Form; Item1.Align:=tAlignLayout.MostLeft; Item2:=TRextCreate(Form); Item2.Parent:=Form; Item2.Align:=tAlignLayout.MostLeft; Item3:=TRextCreate(Form); Item3.Parent:=Form; Item3.Align:=tAlignLayout.MostLeft; Edits:=TEdit.Create(Form); Edits.Parent:=Form; Edits.Align:=tAlignLayout.MostLeft; ......... end; Destructor TMyChoose.Destroy; begin Item1.Release; Item1:=nil; Item2.Release; Item2:=nil; Item3.Release; Item3:=nil; Edits.Release; Edits:=nil; inherited; end; Под Windows все нормально работает и уничтожается. Под Android вызов Destroy у объекта типа TMyChoose не приводит ни к чему.
      Вместо Release и nil использовал также DisposeOf и Nil, а также FreeAndNil - результат аналогичный.
      Как правильно уничтожать составные объекты?
    • От walexw
      Вопрос к знатокам GooglePlay
      Я первый раз разместил приложение в GooglePlay. Оно состоит из пустой базы данных и собственно самого приложения.
      Не сразу, но все получилось. Сейчас я доработал программу, добавил еще один отчет. Надо выпускать вторую версию.
      Вопрос, как мне правильно сделать?
      Те кто скачал первую версию, должны только код обновить до второй и не тронуть БД которую набрали на первой версии.
      А те кто новые, и увидят программу сразу со второй версии должны получить ее и пустую БД.
      Как такой трюк делается? Подскажите кто делал.
      Спасибо.
    • От walexw
      Разместил приложение в GooglePlay (делал первый раз, поэтому столько вопросов)
      В разделе устройства, подтвердил все предложенные модели, их оказалось больше тысячи.
      Естественно, после установки, сам же попробовал установить программу на свои устройства.
      На смартфон программа встала сходу. Но...
      Есть у меня 10-ти дюймовый планшет Perfeo (китай), на него программа отказывается устанавливаться.
      Говорит: это не мобильное устройство.
      Симки в планшете нет, но два гнезда предусмотрены.
      Установка хочет работать только с мобильным устройством, что я сделал не так?
      Как подправить ситуацию?
      Если планшет соединить проводом к компу, программа через RAD studio ставится без проблем.
      Подскажите.
    • От alexbirukov
      Установил новую студию ради исправления одной ошибки, и наткнулся на другую, ещё более критичную.
       
      В общем и в новых и в старых проектах одинаковая ситуация. Если на форме имеются компоненты KinveyProvider (ParseProvider) и PushEvent, то в режиме Release - Application Store приложение запускается, но после сплэш скрина просто чёрный экран и ничего не происходит, приложение зависает. В режиме Debug всё отлично запускается и работает, Push приложения приходят. Все разрешения есть, даже больше, специально выставлял абсолютно все разрешение.
       
      В режиме отладки не запускается, приложение просто подвисает, отладчик ругается, что оно не отвечает. 
       
      Мучаюсь уже второй день, может кто сталкивался или знает куда копать, буду рад любому совету.
    • От Дениска
      Пустое приложение. У меня есть формы: А и B.
      А по кнопке создаёт и показывает B и сразу самоуничтожается:
       
      B := TB.Create(nil); B.Show; A.Free;   B в свою очередь делает обратное:   A := TA.Create(nil); A.Show; B.Free;   На Win32 платформе в диспетчере задач память по мере открытия форм не растёт. В iOS 6.1.1 iPhone 3 проследить память я не смог, но после 5-10 открытий форм приложение падает. Вероятнее всего растёт хип (heap).    Почему тогда не работает FREE?? Как правильно освободить память и уничтожить форму в iOS???   Я нашёл ответ. Если на форме есть картинки, то их нужно: Image1.Bitmap.Assign(nil);
    • От Kikoma
      Следующая ситуация:
       
      Есть база данных с полями: id, product_name, price, cart (корзина) - Думаю пояснять излишне.
       
      по условию cart>0 формируется запрос и заполняется TListBox кастомизированным Item-ом который содержит SpinBox. при изменении SpinBox вызывается процедура, которая вносит изменение в БД (cart) и высчитывает сумму в этом Item.
       
      Все работает, все хорошо, но...
      Задумал я что при SpinBox = 0, у меня этот TListBoxItem исчезал, для этого на изменение SpinBox если он равен 0, я запускаю процедуру формирования (Заполнения) этого TListBox заново.
       
      Вываливается ошибка Access ..to address XXX, при чем при пошаговой трассировки исключение вызывает FMX.Edit строка 3811 CustomEditBox.Change; в procedure TValueRangeCustomEditBox.DoAfterChange; (DELPHI XE6)
       
      т.е. моя процедура полностью отрабатывается (Заполняется новый список Item-ов) и возникает эта ошибка.
       
      При чем на 32-bit Windows все работает нормально, только на андроиде возникает это исключение, при чем приложение продолжает нормально функционировать.
       
      Если я правильно понимаю, то эта процедура DoAfterChange пытается что то сделать с объектом, которого уже нет.
       
      Это баг или я неправильно алгоритм построил?
       
       
    • От 97mik
      При деплое приложения пишет:
       
       
      Платформа: iOS.
      Что это означает и как исправить?
    • От antarey
      Подскажите , реально ли уменьшить размер приложение и потребление ресурсов?
       
      В сравнении с другими приложениями , написанными на других платформах, размер апк от обезьяны непомерно большой - 5 контролов и апк 14 метров.
      На 4 ядерном THL с 2 гигами ОЗУ приложение загружается  заметно долго
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу