Проверка на CPUARM
является правильным решением. Бинарные файлы iOS, скомпилированные для симулятора, не являются ARM, они на самом деле x86. Просто убедитесь, что код iOS заключен в {$IFDEF IOS}
:
{$IFDEF IOS}
{$IFDEF CPUARM}
s := 'iOS device';
{$ELSE}
s := 'iOS Simulator';
{$ENDIF}
{$ENDIF}
Delphi использует компилятор ARM для устройств iOS, но использует компилятор x86 для симулятора iOS.
Доступные условия компилятора задокументированы в DocWiki Embarcadero:
Условная компиляция (Delphi) | Предопределенные условия
CPUARM
определяется компилятором DCCIOSARM (устройство iOS).
CPU386
и CPUX86
определяются компилятором DCCIOS32 (симулятор iOS) .
Взгляд на условные значения, которые физически присутствуют в исполняемых файлах XE6 DCCIOSARM.EXE и DCCIOS32.EXE, подтверждает следующее:
DCCIOSARM.EXE:
**CPUARM**
DCC
NEXTGEN
AUTOREFCOUNT
WEAKINSTREF
WEAKINTFREF
WEAKREF
EXTERNALLINKER
NATIVECODE
POSIX
POSIX32
MACOS
MACOS32
**IOS**
VER270
CONSOLE
BCB
PIC
UNICODE
CONDITIONALEXPRESSIONS
DCCIOS32.EXE:
**CPU386**
**CPUX86**
DCC
NEXTGEN
AUTOREFCOUNT
WEAKINSTREF
WEAKINTFREF
WEAKREF
NATIVECODE
POSIX
POSIX32
MACOS
MACOS32
**IOS**
ALIGN_STACK
UNDERSCOREIMPORTNAME
PC_MAPPED_EXCEPTIONS
ASSEMBLER
VER270
CONSOLE
BCB
PIC
UNICODE
CONDITIONALEXPRESSIONS
person
Remy Lebeau
schedule
22.05.2014
delphi
к вопросам, связанным с Delphi. Может быть, вы были удивлены низким вниманием к вашим вопросам. Вот причина :о) - person Sir Rufo   schedule 22.05.2014