[Originally posted in Creative Suite > Extension Manager. Probably not the best place to ask it]
I'm trying to do my first extension in Flash builder 4, with the CS SDK installed.
The extension is for InDesign CS5.5, and I put in the manifest.xml file, the following lines:
<Host Name="IDSN" Version="7" />
<Locale Code="All" />
<RequiredRuntime Name="CSXS" Version="2.0" />
I've copied the contents of the "bin-debug" output folder into "C:\Program Files\Common Files\Adobe\<ServiceMgr_root>\extensions\<RandomNameForMyExtension>\" , but the extension IS NOT IN MY InDesign's Window->Extensions menu!!
I'm neither signing it, nor packaging it, because I want to run it for debugging. The documentation explicitly tells us to set this variable:
There is an operating-system flag, PlayerDebugMode, that sets debugging mode for the Flash Player embedded in Creative Suite applications. This flag must be set to allow you to run unsigned extensions during development. Extension Builder automatically updates the debug flag for you, but it can fail to do so. If you cannot open your extension, check that the PlayerDebugMode flag is set to 1 in the platform-specific location:
For a CS5 target, the Registry entry HKEY_CURRENT_USER\Software\Adobe\CSXS2Preferences\
For a CS5.5 target, the Registry entry HKEY_CURRENT_USER\Software\Adobe\CSXS.2.5Preferences\
The problem is as follows:
I think REG_SZ should be fine.
Since the extension isn't listed under Windows > Extensions, that suggests to me it's an issue in the manifest rather than the PlayerDebugMode flag.
Can you post the full manifest here as an attachment (with any sensitive data removed)
You pointed me in the right direction.
To be honest, the CS_SDK guide is not very neat. It needs polishing.
Two lines were missing from my manifest.xml.
1- The first one is obvious, but as I copied-pasted from the guide, and it was not there, I forgot:
<?xml version="1.0" encoding="utf-8"?>
2- The second one missing, was this
<UI> ... <Menu>Document Adder</Menu>
It's obvious now, that if I don't have it, InDesign doesn't know how to show it in the menu... But still, I think my extension should have come up at startup, cause I have it configured that way:
<StartOn> <Event>applicationActivate</Event> </StartOn>
Thank you, Dave. You're the man.
I'm also trying to do my first extension and I have the same problem.
I read your comments and I had already done everything you're talking about but I still don't see my extension in InDesign...
For your information I'm using Windows 7 64bits.
Here is my manifest.xml file :
<?xml version="1.0" encoding="utf-8"?> <ExtensionManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5\sdks_cs\cssdk(AS)-free-220.127.116.11104110936\CreativeSuiteSDK\docs\ExtensionManifest-2.0.xsd" Version="2.0" ExtensionBundleId="com.alac.extensions.id" ExtensionBundleVersion="1.0"> <Author>Alac</Author> <ExtensionList> <Extension Id="com.alac.extension.id.test" Version="1.0" /> </ExtensionList> <ExecutionEnvironment> <HostList> <Host Name="IDSN" Version="7" /> <Host Name="IDSN" Version="7.5" /> </HostList> <LocaleList> <Locale Code="All" /> </LocaleList> <RequiredRuntimeList> <RequiredRuntime Name="CSXS" Version="2.0" /> </RequiredRuntimeList> </ExecutionEnvironment> <DispatchInfoList> <Extension Id="com.alac.extension.id.test"> <DispatchInfo > <Resources> <SwfPath>./Extension_Test_01.swf</SwfPath> </Resources> <Lifecycle> <AutoVisible>true</AutoVisible> <StartOn> <Event>applicationActivate</Event> </StartOn> </Lifecycle> <UI> <Menu>EXT-ALAC</Menu> <Geometry> <Size> <Height>500</Height> <Width>400</Width> </Size> <MaxSize> <Height>500</Height> <Width>400</Width> </MaxSize> <MinSize> <Height>500</Height> <Width>400</Width> </MinSize> </Geometry> </UI> </DispatchInfo> </Extension> </DispatchInfoList> </ExtensionManifest>
And my mxi file :
<?xml version="1.0" encoding="UTF-8"?> <macromedia-extension id="com.alac.extensions.id" name="Lib Extension Test 01" version="1.0.0"> <author name="Alac" /> <products> <product name="InDesign" version="7" primary="true" required="true"/> <product name="InDesign" version="7.5" primary="false" required="false"/> </products> <description> <![CDATA[ This extension is a Alac test. ]]> </description> <files> <file source="Extension_Test_01.swf" destination="$indesign/extensions" /> <file source="CSXS/manifest.xml" destination="$indesign/extensions/CSXS" /> <file source="locale/messages.properties" destination="$indesign/extensions/locale" /> </files> </macromedia-extension>
Any idea about what's wrong ?
Your MXI files doesn't look correct. You seem to be trying to install the files under indesign and not in the common location expected.
For plain CSXS extensions you don't need to create an MXI file at all, only if you depend on application specific files. But in your case it looks like you just have the SWF the CSXS/manifest.xml and locale files. That can all be packaged in a simple CSXS extension.
If you are just wanting to test your extension and you have set up the debug flag in the registry or PList like explained above, you can just put your files in a folder and copy it to the extensions folder in the common location. Were <ServiceMgr_root> is either CS5ServiceManager or CS5.5ServiceManager depending on the suite you are testing it under.
In Windows XP:
C:\Documents and Settings\<user>\Application Data\Adobe\
In Windows 7/Vista:
In Mac OS:
So, under this extensions folder in the <ServiceMgr_root>/extensions folder you will have
This should allow you to see the extension in the InDesign menu.
If what you want to do is packaging the extension as a ZXP for distribution you need to use the UCF.jar as explained in the packaging section. Note that yours doesn't look like a hybrid extension, you just need to do something like:
java -jar ucf.jar -package -storetype PKCS12 -keystore myCert.pfx -storepass mypasswd myExtension.zxp -C "./MyExtension" .
See the Packaging section of the document for more information. The packaging toolkit with the UCF.jar necessary is under CS 5.5 Extension Packaging and Signing Toolkit
Thank you for your answer Maria,
But what you tell me to do is what is described in the official documentation and it didn't work for me...
In fact, I had exactly what you ask me to do (entire bin-debug folder copied in appropriate common folder + debug flag in registry) but I never saw my extension in InDesign. So I tried to install my extension in the Extension Manager CS5 but I saw that I needed to provide him a mxi, mxp or zxp file.That's why I had a look on the net and found how to create a MXI file.
Maybe there are some constraints that I didn't understand, like folder name must be the same as the extension id or something like that.
I'm a bit lost... I'm sorry to bother you but please help me.
It's not a problem.
Can you pass me the path you are copying the extension to under ServiceManager? Is it CS5ServiceManager or CS5.5ServiceManager?
Can you take a screenshot of your extension's folder structure in explorer or finder once installed in the ServiceManager?
Make sure you are using the corresponding version of InDesign. So for CS5ServiceManager the extension will show under InDesign CS5 and for CS5.5ServiceManager the extension will show under InDesign CS5.5.
I dunno what can be wrong.
The only big difference that I see with my manifest.xml files is that I have a "Panel" entry (whose purpose, to be honest, I don't know) inside <UI>, like this:
<UI> <Type>Panel</Type> <Menu>Name of the extension</Menu>
Another thing, why don't you try just for InDesign version 7.0, setting only:
<ExecutionEnvironment> <HostList> <Host Name="IDSN" Version="7" /> </HostList>
<ExecutionEnvironment> <HostList> <Host Name="IDSN" Version="7" /> <Host Name="IDSN" Version="7.5" /> </HostList>
...to see what happens...
Thank you !
The missing <Type> parameter was the problem.
N.B : In the "ExtensionManifest-2.0.xsd" file (line 299) it is indicated minOccurs="0", doesn't that mean it's optionnal ?
<xs:element name="Type" minOccurs="0"> <xs:annotation> <xs:documentation>Specifies the type of the extension. Note that the Custom type means that it is up to the point product to decide how this extension will be handled. This value is localizable.</xs:documentation> </xs:annotation>
For your information, I tried with IDSN 7 alone and with 7 + 7.5 and it seems to be working.
Glad I could help a little bit.
Well, I feel that lots of work could be done to improve the documentation. I've had hard times even understanding what many methods do, and how to enter their arguments in the Creative Suite SDK's classes. Sometimes looking at the documentation helps in no way.
Glad that got sorted. Well spotted JoseAjaAja.
The Type element, as you say, based on the schema, is required and indicates the type of application window that will host your extension when launched from InDesign. The application needs to know if it should draw a Panel (that docks, etc...), a modal dialog, modless dialog or a tooltip.
JoseAjaAja we are more than happy to recieve feedback on what parts of the documentation can be improved for future revisions of the SDK. Feel free to list the areas that you think should need more work. Some specific examples will be helpull.