Adobe Tech Blog
Published in

Adobe Tech Blog

An Illustrator 25.1 Update for Plugin Developers

Required changes to the PiPL resource for C++; Plus a “Do JavaScript” Workaround for an Apple Script Error

Are you a plugin developer who’s having trouble with Illustrator 25.1 (a.k.a. Illustrator 2021)? We’re here to help. This blog post covers two problems:

  1. If your C++ based extension or plugin isn’t showing up in Illustrator 2021, v. 25.1, you’ll need to change to the way your PiPL resource file is currently added.

Editors note: This is fixed in Illustrator 25.2, which is live now 🎉: If you use AppleScript, and you’ve been seeing this error: “Adobe Illustrator got an error: JavaScript Code was Missing,” scroll down to the second half of this article to get the work around.

At the very bottom of this post you’ll find a few different ways to reach out to the Illustrator team.

A Required Change for C++ Plugins for Illustrator

After updating to Illustrator 25.1, some C++ based SDK plugins are failing to load on macOS. This is because macOS is no longer loading plugins that use the older method of adding the PiPL resource file.

A few macOS APIs were marked as deprecated in Illustrator 2020, and removed in 2021. Fortunately, updating the PiPL resource file is relatively easy. Here is a link to the discussion and steps posted in early 2019 in the prerelease.

The Illustrator team has provided a python script (which required python 2.7) to help update the PiPL file. You can find it in the Illustrator SDK download from, you’ll need to navigate to Illustrator and pick the SDK download for your OS. The python script is located inside /tools/pipl/

The example that follows uses the “Annotator” sample plugin available in also in the Illustrator SDK download from, under /samplecode/Annotator.

Here’s how to make the required changes on macOS and Windows.


python ../../buildtools/tools/pipl/ -input
‘[{“name”:”DrawArt”}]’ -output ‘DrawArt.pipl’

mkdir -p “${CONFIGURATION_BUILD_DIR}/${PRODUCT_NAME}.aip/Contents/Resources/pipl”
cp -f “${PRODUCT_NAME}.pipl” “$${}/$


echo performing:python ..\..\buildtools\tools\pipl\ -input “[{\”name\”:\”DrawArt\”}]” -output “DrawArt.pipl”

You can create the PiPL file once using python 2.7 (only python 2.7 is supported) and then forget about it. Create pipl once using python command and then paste it inside your plugin project folder


Adobe Illustrator got an error: JavaScript Code was Missing (Fixed!)

Editors note: This is fixed in Illustrator 25.2, which is live now 🎉

Your Apple Script may have worked fine in Illustrator 25.0.1 and then started throwing this error in Illustrator 25.1.

A user in the Late Night Software forum suggests the following solution:

set scripttoRun to “Sim 07:Applications:Adobe:YourScriptHere.jsx” as «class furl»

You can vote for this issue on Uservoice, or discuss it in the Illustrator forum here. Here’s a helpful thread about Apple Script «class furl» involving InDesign.

More Ways to Get in Touch with the Illustrator Team

If you code or script for Illustrator and are running into issues with the latest version, here are some more ways to get in touch with the Illustrator team:

For more stories like this, subscribe to our Creative Cloud Developer Newsletter.




News, updates, and thoughts related to Adobe, developers, and technology.

Recommended from Medium

My Journey Into Computer Science

Test Story

Encapsulation in OOP

Saving Images to Core Data With Swift

I programmed a tic tac toe game with Minimax Algorithm, but how does it work?

CS371p Fall 2020: Jaden Hyde

Getting a list of nearby WiFi access points in Python on MacOS

How to study Data Structures and Algorithms for Competitive Programming

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Erin Finnegan

Erin Finnegan

Community Engineer at Adobe. Views are my own.

More from Medium

How to use Angel Broking Smart API Web Socket in Flutter || How to Decode Angel Broking Smart API…

Creating 3D Solar System in 2D View

Gimbal Lock Explanation And How To Work With It

Space Invaders from Scratch — Part 5