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
- Host: GitHub
- URL: https://github.com/delphiworlds/codex
- Owner: DelphiWorlds
- License: mit
- Created: 2018-11-22T01:29:31.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-18T00:36:03.000Z (about 1 year ago)
- Last Synced: 2024-10-20T11:56:03.195Z (about 1 year ago)
- Language: Pascal
- Homepage:
- Size: 89.8 MB
- Stars: 63
- Watchers: 9
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: Docs/Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Codex Documentation
## Menu items
Codex inserts menu items under the `Tools` option in the Delphi IDE:

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:

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
```