An open API service indexing awesome lists of open source software.

https://github.com/delphiworlds/codex

Codex is an add-in for RAD Studio
https://github.com/delphiworlds/codex

Last synced: 11 months ago
JSON representation

Codex is an add-in for RAD Studio

Awesome Lists containing this project

README

          

# Codex Documentation

## Menu items

Codex inserts menu items under the `Tools` option in the Delphi IDE:

Codex Menu

The following are links to the documentation for the respective items:

* [Android Tools](AndroidTools.md)
* [Cleaner](Cleaner.md)
* [Project Tools](ProjectTools.md)
* [Source Patch](SourcePatch.md)
* [Options](CodexOptions.md)

## Editor context menu

[This is a link](EditorContextMenu.md) to information about what Codex adds to the editor context menu.

## Codex Toolbar

Codex installs a toolbar into the IDE that provides shortcuts to existing IDE functions and Codex functions:

Codex Toolbar

The buttons from left to right, are:

* Jump to interface section of a unit
* Jump to implementation section of a unit
* Show the Environment Variables IDE options page
* Show the SDK Manager IDE options page
* [ADB Connect](AndroidTools.md#adb-connect)

**Note: The Deploy Project button has been moved to the [Codex Project Tools window](ProjectTools.md#show-tools)**

To include the toolbar in the IDE, right click the IDE toolbar area and check the Codex popup menu item

## Post Deployment functions

### PList Merge (iOS)

When an iOS app is deployed, if a file named `info.plist.TemplateIOS.merge.xml` is present in the *same folder* as the project, Codex watches the output folder for when the `(projectname).info.plist` file is generated (where `(projectname)` is the name of your project), and if it has not been merged already, merges `info.plist.TemplateIOS.merge.xml` with that file. This relieves the need for creating a custom info.plist file, having to add it to the deployment, editing it later etc.

The merge file should follow the same format as an info.plist, i.e. the parent node is ``, followed by a `` node, and contain key/value pairs. For example, the merge file may look like this (for merging Facebook login entries):

```


CFBundleURLTypes


CFBundleURLSchemes

fb123456789012345



FacebookAppID
585555335933054
FacebookClientToken
17ddd46ff46f919b72dd7ddd6408139a
FacebookDisplayName
Delphi Worlds Login Test
NSAppTransportSecurity

NSAllowsArbitraryLoads

NSExceptionDomains

facebook.com

NSIncludesSubdomains

NSExceptionRequiresForwardSecrecy


fbcdn.net

NSIncludesSubdomains

NSExceptionRequiresForwardSecrecy


akamaihd.net

NSIncludesSubdomains

NSExceptionRequiresForwardSecrecy




LSApplicationQueriesSchemes

fbapi
fbapi20130214
fbapi20130410
fbapi20130702
fbapi20131010
fbapi20131219
fbapi20140410
fbapi20140116
fbapi20150313
fbapi20150629
fbapi20160328
fbauth
fb-messenger-share-api
fbauth2
fbshareextension

```

Merging will override existing values, e.g. the key/value pair:

```
NSAllowsArbitraryLoads

```

May already exist, and the value `` will replace the existing value (which is probably `` anyway, however this should give you an idea of what to expect).

Key/value pairs in the merge file that do not exist in the `(projectname).info.plist` file will be added.

### Commands

This differs from the PList Merge function as it does not involve watching for file changes.

If a file called `PostDeploy.command` is present in the same folder as the project source, Codex will execute the command. The command in the file needs to be a single line, and can contain the following macros:

* `$(EXEOutput)` - will be replaced with the path that the executable is output to
* `$(SanitizedProjectName)` - will be replaced with the santized project name for the project

The line can also contain any of the environment variables which are normally set when `rsvars.bat` is run.

Here's an example of the contents of a `PostDeploy.command` file:

```
$(BuildTools)\apksigner.bat sign --ks %APPDATA%\Embarcadero\BDS\$(ProductVersion)\debug.keystore --ks-pass pass:android $(EXEOutput)\$(SanitizedProjectName)\bin\$(SanitizedProjectName).apk
```