RAD Studio 10.3.3 Rio のパッチについて

# はじめに
RAD Studio 10.3.3 Rio にはいくつかパッチがリリースされていますが、よくわかんないのでまとめてみました。

# 修正モジュール
2020/02/27 現在、11 個のパッチがリリースされています。 

 - [RAD Studio / Delphi / C++Builder 10.3.3 パッチリスト](https://community.idera.com/developer-tools/b/blog/posts/rad-studio-delphi-and-c-builder-10-3-3-list-of-patches-ja)

## #1 RAD Studio 10.3.3 iOS 13 Dark Theme Patch

Issue: Applications built for iOS 13 with RAD Studio 10.3.3 require the user to restart >their FireMonkey iOS application on their iOS device after switching between the iOS light and dark theme in iOS settings. 

After applying the patch, switching between the iOS light and dark theme in iOS settings automatically updates the application theme in the FireMonkey iOS application that’s running on the end user’s device, without requiring an application restart. 

Installation instructions
-------------------------

Please follow the steps below:

 1. Open Delphi, C++Builder or RAD Studio 10.3.3
 2. Create a new FireMonkey project or open your existing FireMonkey project
 3. Add FMX.Platform.iOS to your project via the Project Manager 
 4. Build your project and run

Note: Targeting iOS 13 with dark theme support requires that you use the iOS 13 SDK.

### 備考

 - パッチ名: RAD Studio 10.3.3 iOS 13 Dark Theme Patch
 - ダウンロード先: [https://cc.embarcadero.com/item/30899](https://cc.embarcadero.com/item/30899)
 - ファイル名: RS1033-iOS13_Dark_Theme_Patch.zip

プロジェクトフォルダにコピーし、当該ファイルをプロジェクトに追加して使うタイプのパッチのようです。10.4 リリースの時に忘れずに外すようにしなくてはなりません。

## #2 RAD Studio 10.3.3 iOS Linking Patch (C++Builder のみ)

This patch addresses the following issue:

* RSP-23698: dsymlink gives abnormal program termination
  When linking the debug build of an iOS app, dsymlink would fail with an assertion and abnormal program termination. Depending on your settings, you may also see many warnings emitted before the assertion and crash.

Installation instructions
-------------------------

 1. Shut down RAD Studio
 2. Create a backup copy of the following files in your RAD Studio installation folder:
   1. bin\dsymlink.exe
 3. Extract the ZIP archive
 4. Copy the 'dsymlink.exe' file to the 'bin' folder in your RAD Studio installation folder
 5. Restart RAD Studio

File List
---------

* dsymlink.exe

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/item/30900](https://cc.embarcadero.com/item/30900)
 - ファイル名: RS1033_iOS_Linking_Patch.zip

インストールフォルダの `bin` の `dsymlink.exe` を上書きします。

**See also:**

 - [RSP-23698: dsymlink gives abnormal program termination](https://quality.embarcadero.com/browse/RSP-23698)

## #3 RAD Studio 10.3.3 localization patch (JA)

This patch addresses some localization issues in 10.3.3

Installation instructions
-------------------------

 1. Shut down RAD Studio
 2. Extract the ZIP archive to a temporary folder
 3. Copy the files to the BDS folder
 4. Restart RAD Studio

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/item/30902](https://cc.embarcadero.com/item/30902)
 - ファイル名: RS1033_L10n_patch_JA.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。インストール時にドイツ語とフランス語も選択した場合には、次のパッチも適用する必要があります。

 - [RAD Studio 10.3.3 localization patch (DE/FR)](https://cc.embarcadero.com/Item/30901)


## #4 RAD Studio 10.3.3 IDE and VCL Patch

This patch addresses the following issues:

* RSP-26731 Code completion popup leaves scroll bar window floating
* RSP-27035 Using TActionManager or TPopupActionBar gives error, "F2613 Unit 'IDETheme.ActnCtrls' not found" when compiling

Installation instructions
-------------------------

 1. Shut down RAD Studio
 2. Create a backup copy of the following files in your RAD Studio installation folder:
   1. bin\themeloader260.bpl
 3. Extract the ZIP archive
 4. Copy the 'themeloader260.bpl' file to the 'bin' folder in your RAD Studio installation 
folder
 5. Restart RAD Studio

File List
---------

* themeloader260.bpl

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30903](https://cc.embarcadero.com/Item/30903)
 - ファイル名: RS1033_IDE_VCL_Patch.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。

**See also:**

 - [RSP-26731: Code completion popup leaves scroll bar window floating](https://quality.embarcadero.com/browse/RSP-26731)
 - [RSP-27035: \[dcc32 Fatal Error\] F2613 Unit 'IDETheme.ActnCtrls' not found.](https://quality.embarcadero.com/browse/RSP-27035)


## #5 RAD Studio 10.3.3 Android Debugger Patch

This patch addresses the following issues:

* RSP-26704 Debugging 64 bit Android application hangs the IDE
* RSP-26824 Breakpoints do not work in Android 64 project
* RSP-26774 Unable to start GDB kernel after switching from debugging 32 to 64 Android
* plus a number of internally reported issues including: issues evaluating, connecting to an Android device, slowdown of a debugged app when the debugger is attached, handling very large source files, switching threads from the Threads view, displaying memory in the CPU view, and others.

Installation instructions
-------------------------

 1. Shut down RAD Studio
 2. Create a backup copy of the following files in your RAD Studio installation folder:
   1. bin\Android\lldb\lldb-mi.exe
   2. bin\Android\lldb\liblldb.dll
   3. bin\Android\lldb\libclang.dll
   4. bin\Android\lldb\lldb.exe
   5. bin\gdbdebugcore260.bpl
   6. bin\gdbdebugcore260.jdbg 
 3. Extract the ZIP archive
 4. Copy the file to the 'bin' folder in your RAD Studio installation folder, such that they overwrite the files listed above
 5. Restart RAD Studio

File List
---------

* bin\Android\lldb\lldb-mi.exe
* bin\Android\lldb\liblldb.dll
* bin\Android\lldb\libclang.dll
* bin\Android\lldb\lldb.exe
* bin\gdbdebugcore260.bpl
* bin\gdbdebugcore260.jdbg 

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/item/30904](https://cc.embarcadero.com/item/30904)
 - ファイル名: RS1033_Android_Debugger_patch_1.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。

**See also:**

 - [RSP-26704: Debugging 64 bit Android application hangs the IDE](https://quality.embarcadero.com/browse/RSP-26704)
 - [RSP-26824: Breakpoints do not work in Android 64 project](https://quality.embarcadero.com/browse/RSP-26824)
 - [RSP-26774: Unable to start GDB kernel after switching from debugging 32 to 64 Android](https://quality.embarcadero.com/browse/RSP-26774)

## #6 RAD Studio 10.3.3 Android Services Patch

This patch addresses the following issues:

* An issue that prevented an Android service running because it could not load its native library. This only affected applications packaged as Android App Bundles. The base APK generated from an AAB has the extractNativeLibs manifest attribute set to false. In this case, the Package Manager does not extract the library to the filesystem when installing the application, causing the Android service to pass the dynamic linker an incorrect absolute path to the native library.

Installation instructions
-------------------------

1. Shut down RAD Studio
2. Locate your %AppData%\Embarcadero\BDS\20.0\ folder. To find this folder:
   1. Open Explorer
   2. Type '%AppData%' in the path text box, without quotes, and press Enter
   3. Navigate to the Embarcadero\BDS\20.0\ subfolder
   4. The path is typically 'C:\Users\YOUR PROFILE\AppData\Roaming\Embarcadero\BDS\20.0\', but this can vary based on your machine configuration; we recommend the above approach to finding the location.
3. Create a backup copy of the following files found in that folder:
   1. IntentLocalSrv.java
   2. IntentRemoteSrv.java
   3. LocalSrv.java
   4. RemoteSrv.java
4. Extract the ZIP archive
5. Copy the files to the %AppData%\Embarcadero\BDS\20.0\ folder, such that they overwrite the files listed above
6. Restart RAD Studio
7. **If you have existing Android projects**, ensure you follow the additional steps in 'Updating Existing Android Service Projects' below

Updating Existing Android Service Projects
-------------------------

If you have existing Android service projects, ensure that you:

* Close RAD Studio
* Open the folder where your service project is located. This is the folder where the .dproj and .dpr files are located. 
* In this folder, locate the following items, where 'YourServiceName' is the name of your Android service project:
  * YourServiceName.template.java (file)
  * YourServiceNameProxyInterface.template.java (file)
  * JavaClasses (folder)
* Back up these three items
* Delete these items
* Restart RAD Studio and reopen and rebuild your Android service project. The above files and folders will be recreated.

This ensures that the build artifacts for the service are updated to incorporate the changes introduced by this patch.

File List
---------

* %AppData%\Embarcadero\BDS\20.0\IntentLocalSrv.java
* %AppData%\Embarcadero\BDS\20.0\IntentRemoteSrv.java
* %AppData%\Embarcadero\BDS\20.0\LocalSrv.java
* %AppData%\Embarcadero\BDS\20.0\RemoteSrv.java


### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30905](https://cc.embarcadero.com/Item/30905)
 - ファイル名: RS1033_Android_Services_patch.zip

アーカイブを解凍し `%AppData%\Embarcadero\BDS\20.0\` にあるファイルを上書きします。

既存の Android サービスプロジェクトがある場合はプロジェクトフォルダ内の Java 関係のファイルを削除した状態でプロジェクトを開きなおします。



## #7 RAD Studio 10.3.3 Indy Server SSL Certificate Patch

Issue: Web Server applications built with the Indy library (for Windows) are unable to load a SSL certificate

The issue was reported on Quality Portal as https://quality.embarcadero.com/browse/RSP-27144

After applying the patch, the expected behavior should be restored. Notice the issue report above already includes a patch that can be applied in code.

======

To install the patch:

1. Stop RAD Studio
2. Backup files per filelist below
3. Unzip the file Indy_SSL_Patch.zip
4. Copy the fileset to the RAD Studio main folder (usually c:\Program Files (x86)\Embarcadero\Studio\20.0)


Filelist:

* bin\EMSDevServer.exe
* bin\EMSDevServerCommand.exe
* bin\IndyProtocols260.bpl
* bin64\EMSDevServer.exe
* bin64\EMSDevServerCommand.exe
* bin64\IndyProtocols260.bpl
* lib\win32\debug\IdSSLOpenSSL.dcu
* lib\win32\release\IdSSLOpenSSL.dcu
* lib\win64\debug\IdSSLOpenSSL.dcu
* lib\win64\release\IdSSLOpenSSL.dcu
* source\Indy10\Protocols\IdSSLOpenSSL.pas

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30906](https://cc.embarcadero.com/Item/30906)
 - ファイル名: RS1033_Indy_SSL_Patch.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。

**See also:**

 - [RSP-27144: Indy webserver is unable to load certificate](https://quality.embarcadero.com/browse/RSP-27144)


## #8 RAD Studio 10.3.3 iPhone XS and XR Debugging Patch

This patch addresses the following issue:

* Unable to debug an application on an iOS device using the A12 processor (arm64e), including the iPhone XS and XR

Installation instructions
-------------------------

1. Shut down RAD Studio
2. Locate the 'PAServer' folder in your RAD Studio installation folder. This is typically 'C:\Program Files (x86)\Embarcadero\Studio\20.0\PAServer'
3. Create a backup copy of the following file in that folder:
   1. PAServer20.0.pkg
4. Copy the PAServer20.0.pkg file from the patch ZIP archive to the above folder, such that it overwrites the file listed above
5. On your Mac, ensure any running copy of PAServer20.0 is closed.
6. Install the new PAServer on your Mac following the instructions in the 'Installing the Platform Assistant on a Mac' documentation found here: http://docwiki.embarcadero.com/RADStudio/Rio/en/Installing_the_Platform_Assistant_on_a_Mac 
7. Restart RAD Studio

### Verifying Installation

To verify the new version of PAServer is correctly installed, check the version number when running the app on your Mac.

To run PAServer:

* Locate the PAServer20.0.app in your macOS Applications folder. Double-click it to run
* Alternatively, follow the instructions found in the online documentation: http://docwiki.embarcadero.com/RADStudio/Rio/en/Running_the_Platform_Assistant_on_a_Mac

Look at the version number printed at the top of the console window. You should see version 11.2.13.9 and a copyright date of 2020, as below:

`Platform Assistant Server  Version 11.2.13.9`
`Copyright (c) 2009-2020 Embarcadero Technologies, Inc.`

File List
---------

* PAServer20.0.pkg


### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30908](https://cc.embarcadero.com/Item/30908)
 - ファイル名: RS1033_iPhone_XS_XR_Debugging_Patch.zip

アーカイブを解凍し、`<インストールフォルダ>\PAServer` にコピーします。


## #9 C++Builder 10.3.3 Threading and TLS Patch (C++Builder のみ)
This patch addresses the following issue:

* RSP-27180 64-bit builds crash with threads
  Creating and using a thread (eg std::thread) could result in an access violation on some machines.

This was caused by an error setting up the Win64 32-byte shadow space inside the code to clean up TLS (thread-local storage) data, combined with the compiler applying a tail-call optimization to a method call within that cleanup code, which used that space. The patch correctly sets up the shadow space, and the crash with TLS no longer occurs.

Installation instructions
-------------------------

1. Shut down RAD Studio
2. Locate the your RAD Studio installation folder. This is typically 'C:\Program Files (x86)\Embarcadero\Studio\20.0\'
3. Create a backup copy of the following files in that folder and subfolders:
   1. lib\win64\debug\c0d64.o
   2. lib\win64\debug\c0fmx64.o
   3. lib\win64\debug\c0pkg64.o
   4. lib\win64\debug\c0w64.o
   5. lib\win64\debug\c0x64.o
   6. lib\win64\release\c0d64.o
   7. lib\win64\release\c0fmx64.o
   8. lib\win64\release\c0pkg64.o
   9. lib\win64\release\c0w64.o
   10. lib\win64\release\c0x64.o
   11. source\cpprtl\Source\startup\c0nt64.nasm
   12. bin64\cc64260.dll
   13. bin64\cc64260.map
   14. bin64\cc64260mt.dll
   15. bin64\cc64260mt.map
4. Extract the patch ZIP archive, preserving paths, so that the extracted files have same relative folder paths as the above file list
5. Copy the files and folders from the extracted ZIP to the RAD Studio installation folder, such that they overwrite the files listed above
6. Restart RAD Studio

File List
---------

* lib\win64\debug\c0d64.o
* lib\win64\debug\c0fmx64.o
* lib\win64\debug\c0pkg64.o
* lib\win64\debug\c0w64.o
* lib\win64\debug\c0x64.o
* lib\win64\release\c0d64.o
* lib\win64\release\c0fmx64.o
* lib\win64\release\c0pkg64.o
* lib\win64\release\c0w64.o
* lib\win64\release\c0x64.o
* source\cpprtl\Source\startup\c0nt64.nasm
* bin64\cc64260.dll
* bin64\cc64260.map
* bin64\cc64260mt.dll
* bin64\cc64260mt.map

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30909](https://cc.embarcadero.com/Item/30909)
 - ファイル名: CB1033_TLS_Library_Patch.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。

**See also:**

 - [RSP-27180: 64-bit builds crash with threads Creating and using a thread (eg std::thread) could result in an access violation on some machines.](https://quality.embarcadero.com/browse/RSP-27180)


## #10 RAD Studio 10.3.3 Midas.dll Patch
This patch addresses the following issue:

* An issue addressed by a previous hotfix (C++Builder 10.3.3 Threading and TLS Patch) affected Midas. The DLL has been rebuilt.

Installation instructions
-------------------------

1. Shut down RAD Studio
2. Locate the your RAD Studio installation folder. This is typically 'C:\Program Files (x86)\Embarcadero\Studio\20.0\'
3. Create a backup copy of the following file in the bin64 subdirectory:
   1. bin64\Midas.dll
4. Extract the patch ZIP archive, preserving paths, so that the extracted file has same relative folder paths as the above
5. Copy the Midas.dll file from the extracted ZIP to the RAD Studio installation folder, such that it overwrites the file listed above
6. Restart RAD Studio

File List
---------

* bin64\Midas.dll

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30914](https://cc.embarcadero.com/Item/30914)
 - ファイル名: RS1033_Midas_DLL_Win64_Patch.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。

## #11 Delphi 10.3.3 Open Array Patch
This patch addresses the following issue:

* RSP-23939 Access violation when calling an inherited function with an open array parameter in Rio

For the Delphi Win64 compiler, calling an inherited method without specifying the name when the method has an open array parameter can result in a crash.

Installation instructions
-------------------------

1. Shut down RAD Studio
2. Locate the your RAD Studio installation folder. This is typically 'C:\Program Files (x86)\Embarcadero\Studio\20.0\'
3. Create a backup copy of the following files in the bin subdirectory:
   1. bin\dcc64.exe
   2. bin\dcc64260.dll
4. Extract the patch ZIP archive
5. Copy both files from the extracted ZIP to the RAD Studio installation's \bin folder, such that it overwrites the file listed above
6. Restart RAD Studio

File List
---------

* bin\dcc64.exe
* bin\dcc64260.dll

### 備考

 - ダウンロード先: [https://cc.embarcadero.com/Item/30915](https://cc.embarcadero.com/Item/30915)
 - ファイル名: R1033_Delphi_OpenArray_Prologue_Patch.zip

アーカイブを解凍し、インストールフォルダにフォルダ構造ごとコピーします。

**See also:**

 - [RSP-23939: Access violation when calling an inherited function with an open array parameter in Rio](https://quality.embarcadero.com/browse/RSP-23939)


## #X1 Delphi Android 64-bit In-App-Purchase Fix

この件はパッチとしては提供されておらず、マルコ・カントゥ氏のブログで Workaround として示されています。

 - [Delphi Android 64-bit In-App-Purchase Fix (Marco Tech Blog)](http://blog.marcocantu.com/blog/2019-december-android64-inapppurchase.html)
 - [Delphi Android 64-bit In-App-Purchase Fix (Embarcadero Blogs)](https://community.idera.com/developer-tools/b/blog/posts/delphi-android-64-bit-in-app-purchase-fix)

インストールフォルダの `source\fmx` にある `FMX.Helpers.Android.pas` を自分のプロジェクトにコピーし、`FMX.Helpers.Android.pas` の 250 行目を次のように書き換えます。

```pascal:FMX.Helpers.Android.pas
...
type
  TFinishedRunnableCollector = class
  strict private class var
    FFinishedThreadCollector : TFinishedRunnableCollector;
  strict private
    FTimerService: IFMXTimerService;
//  FTimerHandle: Cardinal;
    FTimerHandle: TFmxHandle; // 変更
    function SupportTimer: Boolean;
    function HasTimer: Boolean;
    procedure Start(Timeout: Integer = 2000);
  public
    constructor Create;
    class procedure Call(Timeout: Integer = 2000);
    class procedure ForceCollection;
    procedure DoTimer;
  end;
...
```

### 備考

 - ダウンロード先: (なし)
 - ファイル名: (なし)

**#1** と同様、プロジェクトフォルダにコピーし、プロジェクトに追加して使うタイプのパッチです。10.4 リリースの時に忘れずに外すようにしなくてはなりません。

たった 1 行の修正とはいえ修正モジュールとして提供してくれたほうが有難いんですけどね。~~全員が全員、マルコのブログを見ているわけではないので。~~ Embarcadero Blogs にも掲載されました。

**See also:**

 - [RSP-27228: InAppPurchase.QueryProducts crash App in Android64](https://quality.embarcadero.com/browse/RSP-27228)
 - [RSP-26824: Android 64 bit app crashes when calling TInAppPurchase.QueryProducts](https://quality.embarcadero.com/browse/RSP-27140)


## #X2 macOS 10.15 Catalinaや10.14 MojaveへのPAServerインストールで発生する証明書期限切れエラーへの対応

 - [macOS 10.15 Catalinaや10.14 MojaveへのPAServerインストールで発生する証明書期限切れエラーへの対応 (Embarcadero Blog)](https://community.idera.com/developer-tools/b/blog/posts/10-3-3-paserver-install-error-fix-for-macos-ja)

RAD Studio 10.3.3: If you install PAServer on macOS Mojave or Catalina, you will see an error message, indicating that PAServer was signed with an expired certificate.

You can temporarily work around this issue by selecting the Open Anyway option in the Apple menu under System Preferences > Security & Privacy.

We recommend downloading the notarized version of PAServer here: http://altd.embarcadero.com/releases/studio/20.0/PAServer/Release3/2/PAServer20.0.pkg

※ **\#8 の方が新しい**です。**\#8** を対策したのであれば **\#X2** の対策は不要です。

`Platform Assistant Server  Version 11.2.13.8`
`Copyright (c) 2009-2020 Embarcadero Technologies, Inc.`

File List
---------

* PAServer20.0.pkg

### 備考

 - ダウンロード先: [http://altd.embarcadero.com/releases/studio/20.0/PAServer/Release3/2/PAServer20.0.pkg](http://altd.embarcadero.com/releases/studio/20.0/PAServer/Release3/2/PAServer20.0.pkg)
 - ファイル名: PAServer20.0.pkg

**See also:**

 - [PAServer on macOS Mojave and Catalina - インストールノート (DocWiki)](http://docwiki.embarcadero.com/RADStudio/Rio/en/Installation_Notes#PAServer_on_macOS_Mojave_and_Catalina
)


## #X3 Linker error using the sensor components for Android in RAD Studio 10.3.3

この件はパッチとしては提供されておらず、Embarcadero のブログで Workaround として示されています。

 - [Linker error using the sensor components for Android in RAD Studio 10.3.3 (Embarcadero Blogs)](https://community.idera.com/developer-tools/b/blog/posts/issue-with-the-sensor-components-for-android-in-rad-studio-10-3-3)

Android API 26 固有の宣言が含まれているため、API 22 等でリンカエラーになってしまいます。これを回避するには、インストールフォルダの `source\rtl\android` にある `Androidapi.Sensor.pas` を自分のプロジェクトにコピーし次の宣言をコメントアウトします。

| 定義 | 行 |
|:--|:--|
| ASensorManager_getInstanceForPackage  | 396～398  |
| ASensorManager_getDefaultSensorEx  | 415～418  |
| ASensorManager_createSharedMemoryDirectChannel  | 448～451  | 
| ASensorManager_createHardwareBufferDirectChannel  |  466～469 | 
| ASensorManager_destroyDirectChannel  |  482～484 | 
| ASensorManager_configureDirectReport  |  519～521 | 
| ASensorEventQueue_registerSensor  | 535～538  | 
| ASensor_isDirectChannelTypeSupported  | 672～674  | 
| ASensor_getHighestDirectReportRateLevel  | 682～684  | 

※ ASensorEventQueue_registerSensor 以外は `Introduced in API 26` で検索すると引っ掛かります。

### 備考

 - ダウンロード先: (なし)
 - ファイル名: (なし)

**See also:**

 - [C++Builder's Android location sensor woes (It's a blong, blong, blong road...)](http://blog.blong.com/2020/02/cbuilders-android-location-sensor-woes.html)

## #X4 Issue with localized compilers in RAD Studio and C++Builder 10.3.3 (C++Builder のみ)

この件はパッチとしては提供されておらず、Embarcadero のブログで Workaround として示されています。

 - [Issue with localized compilers in RAD Studio and C++Builder 10.3.3 (Embarcadero Blogs)](https://community.idera.com/developer-tools/b/blog/posts/issue-with-localized-compilers-in-rad-studio-and-c-builder-10-3-3)

不具合の内容はローカライズ版の Clang 拡張 C++ コンパイラ (とプリプロセッサ) が 10.3.2 ベースでコンパイルされているというものです。

回避方法ですが、インストールフォルダの `bin\en` にある 13 個のファイルを `bin` フォルダに上書きします...つまり英語版になります。上書きされる対象のファイルはあらかじめバックアップを取っておいてください。

10.3.2 と 10.3.3 の違い、しかもローカライズ版だけ 10.3.2 になってるなんてよく気付いたものです。コンパイラのバージョンを調べても同じ値しか返さないのに...。

### 備考

 - ダウンロード先: (なし)
 - ファイル名: (なし)

# おわりに
こんな風にまとめておくと、Chrome で読んでる場合、右クリックから **[日本語に翻訳]** が使えて便利。

 - #1 と #X1, #X3 はプロジェクトフォルダに入れて使うものだから、iOS や Android のプロジェクトを作っていなければ関係なし。
 - #2～#5, #7, #9, #10, #11, #X4 は一旦一か所にまとめ、インストールフォルダに一気にコピーするといいかも。
 - #6 は `%AppData%\Embarcadero\BDS\20.0\` へコピーっと。
 - #8 と #X2 は macOS の PAServer の話なので、macOS や iOS のプロジェクトを作っていなければ関係なし。

再インストールを考えて、どこかに保存しとかなきゃ。

## #1 と #x1, #X3 のユニット外し忘れに対する対処方法

\#1 と #x1, #X3 は、将来 Delphi 10.4 がリリースされ、プロジェクトを移行しようとした時、修正ユニットがプロジェクトに含まれたままだと誤動作を起こす可能性があります (エラーで止まってくれるとは思うのですが...)。

以下のコードをユニットの先頭に入れておくと Delphi 10.3 以外でコンパイルしようとした場合にエラーで止まるようになります。

```pascal
{$MESSAGE Warn 'このユニットは Delphi 10.3.3 でのみ有効です。'}
{$IF CompilerVersion <> 33.0}
  {$MESSAGE Error 'プロジェクトからこのユニットを削除してください。'}
{$ENDIF}
```

アップデートのバージョンまで知る由はないので、10.3.2 でもコンパイルできてしまいます。そのため、常に警告を表示するようになっています。

**See also:**

 - [MESSAGE 指令（Delphi）(DocWiki)](http://docwiki.embarcadero.com/RADStudio/ja/MESSAGE_%E6%8C%87%E4%BB%A4%EF%BC%88Delphi%EF%BC%89)