SDK Manager
Go Up to Deploying Applications Overview
Tools > Options > Deployment > SDK Manager
In the Projects Window, right-click a platform in Target Platforms and click Edit SDK
Displays the existing SDKs, and enables you to add and manage SDKs for macOS, iOS, and Android.
Contents
What an SDK Does
A software development kit (SDK) provides the software required to build your applications for a target platform. In the SDK Manager page, an SDK provides the information that RAD Studio needs to locate the required software in your system.
macOS and iOS SDKs provide:
- A list of absolute paths to files and folders on the Mac that are required to build applications for the SDK target platform.
- A copy of those files, which can be pulled from the Mac using a connection profile.
Android SDKs contain the paths to the required software in your system.
On the SDK Manager page, for each target platform that has an associated SDK, one SDK is the default SDK, which appears in bold type. Windows platforms do not have a default SDK.
When You Must Add an SDK
SDKs are required for the following platforms and application types:
- Multi-device applications for the iOS Device - 64 bit platform.
- Multi-device applications for the Android platform.
- Multi-device applications for the Linux platform.
avdmanager.bat
and sdkmanager.bat
applications located in the "cmdline-tools\latest\bin\"
directory of the Android SDK folder.File Names and File Extension for SDKs
SDK names have few restrictions other than that they must be valid filenames, as determined by System.IOUtils.TPath.HasValidFileNameChars. Duplicated SDK names result in an error (from the attempted Add or Import).
The SDK file extension is .sdk
, which is added automatically when the SDK is saved as a file.
Examples of names for an SDK:
- MyFirstOSXSdk
- Gr8daZ!
Each SDK you have defined is saved as an .sdk
file in your Application Data folder (as returned by DesignIntf.IDesigner170.GetAppDataDirectory), such as the following folder on Windows 7:
C:\Users\<username>\AppData\Roaming\Embarcadero\BDS\23.0
The file contains the information about the SDK, such as the paths to the software required to build applications for the SDK target platform.
The actual SDK files (the SDK local file cache) are stored by default in C:\Users\<user>\Documents\Embarcadero\Studio\SDKs
.
To change the SDK local file cache location of an SDK:
- For Android, adjust the paths in the SDK Manager to point to the new location.
- For macOS or iOS, see Changing the Local Root Directory of a macOS or iOS Device SDK.
SDK Panel
Item | Description |
---|---|
SDK versions |
Lists the SDKs that have been defined, along with their associated platform. Boldface indicates the default SDK for a platform.
Clicking one of the SDKs enables the buttons for managing an SDK (Delete and Export). |
SDK Properties |
Displays the current settings in the selected SDK. The content of this frame depends on the SDK platform: macOS, iOS or Android. |
macOS and iOS SDK Properties
These are the fields that you can see in the SDK Properties frame when you select a macOS or iOS SDK.
Local root directory |
Displays the directory on the local machine where files from the remote machine are cached. The default value is: $(BDSPLATFORMSDKSDIR)\<sdk-name> The value for the variable $(BDSPLATFORMSDKSDIR) is set on Tools > Options > IDE > Environment Variables For C++, this directory is specified to the compiler with the You can set the current values as the new default values by clicking Save paths as the default for selected platform in the Remote paths pane. | ||||||||||||||||||||||
Remote paths |
Displays the list of paths on the remote machine that are pulled to the local machine. A remote path is made up of:
There are four categories of remote paths, and the category determines how the paths/items are passed to the C++ compiler and linker, as follows:
All items specified are pulled to the local machine. See PAClient. All paths should use the style appropriate for the target host machine. For example, use forward slashes (/) as separators for paths on Mac hosts. Certain punctuation marks such as the tilde (~) should be recognized for Mac. The buttons on the Remote Paths field are described below:
| ||||||||||||||||||||||
Update Local File Cache |
Prompts you for a connection profile, and uses the selected connection profile to pull all of the specified files to the local (development) machine from the remote target machine. Only files with different sizes or timestamps than those files already in the SDK local file cache are pulled. A progress dialog is shown when pulling, giving you the opportunity to cancel the process. You are also prompted before any local files are overwritten. You should click this button after you make changes to paths on the SDK Manager dialog box. | ||||||||||||||||||||||
Add |
Launches the Add a New SDK dialog box so that you can add an SDK for a target platform using a connection profile. The keyboard equivalent is pressing the | ||||||||||||||||||||||
Delete |
Prompts you for confirmation and, if accepted, deletes the currently selected SDK. You can also delete an SDK by pressing the | ||||||||||||||||||||||
Export |
Prompts you for a filename and saves the SDK settings to that location (the default file name is "<sdk-name>.sdk"). | ||||||||||||||||||||||
Import |
Prompts you for a .sdk filename and imports the contained SDK settings into the IDE. |
Android SDK, NDK and Java Properties
These are the fields that you can see in the Properties pane when you select an Android SDK. The Properties pane provides three tabs: SDK, NDK and Java.
SDK Tab
Item | Description |
---|---|
SDK base path |
The location of the Android SDK folder. For RAD Studio to recognize your Android SDK folder as a valid Android SDK folder, this folder must contain a |
ZipAlign location |
The location of the ZipAlign.exe SDK tool. For example:
|
Android location |
The location of the Android.bat SDK tool. |
Adb location |
The location of the Adb.exe SDK platform tool. |
Aapt location |
The location of the aapt.exe SDK build tool. |
SDK API-Level location |
The location of the SDK API level folder to use. Any version is fine (for example, For RAD Studio to recognize your SDK API-level folder as a valid folder, this folder must contain an |
NDK Tab
Item | Description |
---|---|
NDK base path |
The location of the Android NDK folder. |
arm-linux-androideabi-ld.exe location |
The location of the arm-linux-androideabi-ld.exe linker (for example, |
arm-linux-androideabi-strip.exe location |
The location of the arm-linux-androideabi-strip.exe executable (for example, RAD Studio uses this executable to reduce the size of your Android application packages. |
gdbserver location |
The location of the GDB server within the Android NDK folder (for example, |
NDK API location |
The location of the API folder within the Android NDK folder (for example, For RAD Studio to recognize your NDK API folder as a valid folder, this folder must contain a file at |
C++Builder NDK Library path |
The location of the C++ library folder within the Android NDK folder (for example, Click the ellipsis () to open Directories if you want to add, replace or delete new library paths. |
Delphi NDK Library path |
The location of the Delphi library folder within the Android NDK folder (for example, Click the ellipsis () to open Directories if you want to add, replace or delete new library paths. |
Java Tab
Item | Description |
---|---|
KeyTool location |
The location of the KeyTool.exe JDK tool. |
JarSigner location |
The location of the JarSigner.exe JDK tool. |
\\mycompany.com\android\sdk
is not a valid value here. Use a network drive instead.Troubleshooting (macOS and iOS)
Handling Multiple Xcode Installations
If you have more than one installation of Xcode, you must make sure that the xcode-select
command-line tool points to your main Xcode installation folder. Type xcode-select -p
to see the path to the currently selected developer directory:
MacOS yourname $ xcode-select -p /Applications/Xcode.app/Contents/Developer
If the command-line tool points to a folder that is not your main Xcode installation folder, type xcode-select -s <path>
to set the developer directory, such as:
MacOS yourname $ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
For further information, see the Apple documentation for xcode-select.
Missing SDK Versions Because the Xcode Directory Is Wrong
After you select a connection profile on the Add a New SDK dialog box, the Select an SDK version drop-down is filled with the SDK versions detected by the Platform Assistant on the remote machine.
If the Select an SDK version drop-down list is empty, an expected SDK version is not listed, or you get the following error:
No SDKs could be found for the iOS Device/Simulator platform. Did you install the Command Line Tools on your Xcode?
Check your Xcode installation on your Mac, and make sure that the xcode-select
command-line tool points to your Xcode installation folder. See Handling Multiple Xcode Installations.
If the path pointed by xcode-select
is correct, check the contents of the following directory:
<Xcode developer directory>/Platforms/<platform>.platform/Developer/SDKs/
- Such as:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
where platform is:
MacOSX
for the macOS platformiPhoneOS
for the iOS Device - 64 bit platform
The Platform Assistant reads the SDK versions from that directory, and the Select an SDK version drop-down list contains only those SDK versions.
"UnKnown Compiler" Error After Updating XCode
[bccosx Fatal Error]... unKnown Compiler
error might happen after updating XCode on macOS.
To solve this problem follow the steps:
- Delete the SDK from the SDK Manager.
- Go to Tools > Options > Deployment > SDK Manager
- Note: You can also access the SDK Manager by going to Projects Window
- Select the SDK version under the macOS section and click Delete.
- Go to Tools > Options > Deployment > SDK Manager
- Remove all the content from the SDK folder on the machine where RAD Studio is installed.
- The SDK folder is located at
Documents\Embarcadero\Studio\SDKs\
.
- The SDK folder is located at
- Remove the scratch-dir folder located at the PAServer directory on the macOS.
Once you perform all the steps, launch again the application to add a new SDK.