12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DelphiAdvent Calendar 2019

Day 23

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

Last updated at Posted at 2019-12-22

はじめに

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

修正モジュール

2020/02/27 現在、11 個のパッチがリリースされています。

#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.

備考

プロジェクトフォルダにコピーし、当該ファイルをプロジェクトに追加して使うタイプのパッチのようです。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:
  3. bin\dsymlink.exe
  4. Extract the ZIP archive
  5. Copy the 'dsymlink.exe' file to the 'bin' folder in your RAD Studio installation folder
  6. Restart RAD Studio

File List

  • dsymlink.exe

備考

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

See also:

#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

備考

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

#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:
  3. bin\themeloader260.bpl
  4. Extract the ZIP archive
  5. Copy the 'themeloader260.bpl' file to the 'bin' folder in your RAD Studio installation
    folder
  6. Restart RAD Studio

File List

  • themeloader260.bpl

備考

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

See also:

#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:
  3. bin\Android\lldb\lldb-mi.exe
  4. bin\Android\lldb\liblldb.dll
  5. bin\Android\lldb\libclang.dll
  6. bin\Android\lldb\lldb.exe
  7. bin\gdbdebugcore260.bpl
  8. bin\gdbdebugcore260.jdbg
  9. Extract the ZIP archive
  10. Copy the file to the 'bin' folder in your RAD Studio installation folder, such that they overwrite the files listed above
  11. 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

備考

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

See also:

#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

備考

アーカイブを解凍し %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

備考

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

See also:

#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:

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

備考

アーカイブを解凍し、<インストールフォルダ>\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

備考

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

See also:

#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

備考

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

#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

備考

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

See also:

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

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

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

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:

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

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

備考

See also:

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

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

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:

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

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

不具合の内容はローカライズ版の 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 以外でコンパイルしようとした場合にエラーで止まるようになります。

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

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

See also:

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?