OSX Analyzer SDK Xcode Setup
This guide was written using the 1.1.32 Analyzer SDK, Xcode version 7.2.1, and OSX 10.10.5. However, it is likely to work with other versions as well.
- Start Xcode
- Click "Create a new Xcode project"
- Select "Other" from the left column and "Empty" from the templates list.
- Click Next.
- Enter a name for your Xcode Project.
- The location should be set to the analyzer SDK folder recently downloaded, "SaleaeAnalyzerSdk-1.1.32". Do not create a new folder; that will be done for you by Xcode.
- Click "Create"
- Back in Finder, copy the file "rename_analyzer.py" and "source" from the downloaded SDK directory into the freshly created folder, which will have the same name as your new analyzer. Shown here, the name is "XcodeAnalyzer."
- Open a terminal and browse to the new project folder in the downloaded SDK folder.
- Run the python script with:python rename_analyzer.py
- First, it will prompt you for the class prefix for all of the source files. All classes and files will be renamed with this prefix. If you type "I2C", the classes and files will be named with "I2CAnalyzer". Please avoid using analyzer in this name, as it will get repeated like this: "I2CAnalyzerAnalyzer".
- Second, it will ask you for the name to display to the user in the "Add Analyzers" menu. This should be the user facing name and can include spaces.
- Next, we need to add a target to the Xcode project. Be sure the project is selected in the Project Navigator on the left. Then click the menu highlighted below to add a target.
- This is the target menu.
- Select "Framework & Library" under "OS X" in the left column, and select "Library" in the main area.
- Click Next.
- Enter a product name. We recommend the same name as the project since there will only be one product.
- Under framework, select "None (Plain C/C++ Library)".
- For Type, select "Dynamic".
- Next, we need to add the source files. Click File -> Add Files to ""...
- Note: If this is disabled, it is because you do not have the project selected in the Project Navigator.
- Browse to the source folder in the Xcode project folder and select it. Don't select the contents. Be sure to select the folder itself.
- Select "Create groups" in the "Added folders" section.
- Click Add.
- Verify that the files were automatically added to the build phases "Compile Sources" and "Headers".
- Select the project from the Project Navigator if not already selected.
- Click "Build Phases".
- Expand "Compile Sources" and "Headers".
- Under "Headers", also expand "Project".
- Verify that each has 4 files.
- Click "Build Settings".
- If "Levels" is selected, switch it to "Combined".
- Expand the section "Search Paths".
- Locate "Header Search Paths" and edit the value.
- Click the "+" button and enter "../include" in the new entry.
- Locate "Library Search Paths" in the same section and edit its value.
- Click the "+" button and enter "../lib" in the new entry.
- Return to "Build Phases" and expand the section "Link Binary With Libraries".
- Click the "+" button.
- Click "Add Other...".
- Browse to the original SDK folder, which contains our Xcode folder.
- Open the "lib" folder.
- Select "libAnalyzer.dylib".
- Click Open.
- At this point, you should build the project so the resulting library will be created.
- It's worth mentioning that new Xcode versions do not save build outputs in the project directory. Instead, the default output directory looks like this:~/Library/Developer/Xcode/DerivedData
- You may want to change it. The following steps are optional.
Optional: Change build output folder
- Optional Step 1: From the file menu, select "Project Settings...".
- Optional Step 2: In the "Derived Data" dropdown, select "Project-relative Location".
- Click "Done".
- That's it for the optional steps.
- Next, we will set up debugging for the project. Be sure to have the latest Saleae Logic Software installed.
- On the "Product" menu at the top of the screen, select "Scheme" -> "Edit Scheme..."
- Make sure "Run" is selected on the left.
- Under "Executable" select "Other...".
- Browse to the "Applications" folder (or wherever Logic is installed) and select "Logic.app"
- Click Choose.
- Set a breakpoint in the software so we can test debugging.
- Open "XcodeAnalyzer.cpp" on the left. The name will reflect what you selected as the class prefix in a previous step. In this example, the class prefix was "Xcode".
- In the source file, add a break point to the first line of code in the WorkerThread method. This code runs when the analyzer starts processing data.
- Before proceeding, see this article with instructions to configure the software to load your new analyzer.
- Be sure to select the folder where the debug version of the custom analyzer is saved.
- Once the Saleae logic software has been configured and has been closed, click Run from Xcode.
- The Saleae software should launch a few seconds later. Click the "+" button on the analyzers panel and then select your analyzer. In this case, the user facing name of the analyzer was set by the Python script to "Xcode Analyzer". Yours may be different.
- If your analyzer is missing, it could indicate that the dylib was not created or that the developer path was not set properly. Please review the previous steps for any possible errors.
- The settings dialog for your custom analyzer will appear. Click "Save".
- Here is your fresh new analyzer, now added to the software. Note that our breakpoint hasn't fired yet. If you had captured data previously, it might fire now, since analyzers will automatically start processing if they are added to an existing analyzer.
- Press Start to start a simulation.
- Since your analyzer has already been added, the simulator will call your simulation data generator code. The analyzer also starts processing the moment data has been captured, so your break point should fire immediately.
- Here you can see that the debugger was attached and your break point has been hit. You can examine variables, set new break points, or press Continue from the debug menu at the bottom.
- Congratulations! You now have an Xcode project you can use to develop a custom analyzer for the Saleae software.
If you have any questions, please contact support.