Summary: This document provides information about the extension supporting applications written in Objective-C.
What's new: Two new quality rules was added; "Avoid using risky cryptographic hash" and "Avoid using unsecured cookie"
This extension provides support for applications written in Objective-C.
In what situation should you install this extension?
If your application contains Objective-C source code and you want to view these object types and their links with other objects, then you should install this extension.
What are the differences with the CAST AIP extension for iOS?
The CAST AIP extension for iOS - Objective-C also supports Objective-C, however, the iOS extension has built in support for discovering (in the CAST Delivery Manager Tool) XCode projects that are primarily used to build Mobile applications for the iOS Operating System. Therefore, if your project is an XCode project, you should use the iOS - Objective-C extension instead to take advantage of the built in discovery feature.
- Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
- Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
|Quality and Sizing|
CAST AIP release
Supported DBMS servers
This extension is compatible with the following supported DBMS servers:
|CAST AIP release||CSS||Oracle||Microsoft|
|All supported releases|
|An installation of any compatible release of CAST AIP (see table above)|
Dependencies with other extensions
- Web services linker service (internal technical extension)
Download and installation instructions
Packaging, delivering and analyzing your source code
Once the extension is installed, no further configuration changes are required before you can package your source code and run an analysis. The process of packaging, delivering and analyzing your source code is as follows:
Packaging and delivery
Using the CAST Delivery Manager Tool:
- create a new Version
- create a new Package for your Objective C source code using the Files on your file system option:
- Define the root folder of your Application source code:
- Run the Package action: depending on this type of project you are packaging, the CAST Delivery Manager Tool will either discover a project or not. For non-iOS projects, no project will be discovered:
- Deliver the Version
Configuring the source code in the CAST Management Studio
Using the CAST Management Studio in the Application editor:
- Accept and deploy the Version in the CAST Management Studio. Depending on the type of project that has been packaged, Analysis Units will have been created automatically or not:
- If your source code contains Non-iOS projects, then no Analysis Units will have been automatically created in the Current Version tab - this is the expected behaviour:
- You will now need to create an Analysis Unit for each of your projects. In the Current Version tab, add a new Analysis Unit selecting the Add new C/C++/Objective-C Analysis Unit option:
Edit the new Analysis Unit and configure in the Source Settings tab:
- a name for the Analysis Unit
- define the location of the deployed project source code (the CAST Management Studio will locate this automatically in the Deployment folder):
- You now need to change the analyzer engine to the new Clang based analyzer.
- Move to the Analysis tab.
- Change the Analyzer to invoke option to the Clang-based analyzer option as shown below:
- Run a test analysis on the Analysis Units
- Make sure you have manually run the Import Assessment Models option.
- Generate a new snapshot.
What results can you expect?
Once the analysis/snapshot generation has completed, you can view the results in the normal manner:
CAST Management Studio analysis content
The following objects are displayed in CAST Enlighten:
|Template Class Instance|
|Template Constructor Instance|
|Template Free Function|
|Template Free Function Instance|
|Template Member Function|
|Template Member Function Instance|
|Template Union Instance|
- Functions only known as declarations will be considered as external: as such, some rules will not be applied in some very rare cases.