Jump to content
Welcome to our new Citrix community!
  • 0

How to publish an in-house MAM SDK apps?

Eric Dong1709162852


We have an in-house iOS app that require the new MAM SDK migration as MDM Wrapping is no longer supported by Citrix. 


After adding the MAM SDK to our solution, we are able to create the MDX file and an IPA file from XCode.  For some reason, the iOS app would not be installed as we do see it on the internal app store.


After contacting the Citrix support, we were told that the storeURL is not needed for internal apps.  But if we comment out the StoreURL, or left it empty [StoreURL=], or set it to empty string [StoreURL=""] we would get Command PhaseScriptExecution failed with a nonzero exit code.


explicit postscript error (Parameter (-storeURL) value is invalid. 2022-11-02 10:44:38.649 CGAppCLPrepTool[94325:5332040])


My question is what we need to adjust from the MAM SDK toolkit sample app for the in-house mode?


My MAM SDK version is (22.8.0)


Framework used to develop the app includes [PSPDFKit, MobileCoreServices, SystemConfiguration, sqllite3, MapKit, UIKit, QuartzCore, CoreLocation, CoreImage, CoreGraphics, CTXMamAppCore, CTXMamCompliance, CTXMamCore, CTXMamNetwork]


Platform used to build the app is XCode 13.4.1


We have also embedded the IPA in the MDX, but the application still can't get install.


Thank you in advance for your time.



Link to comment

2 answers to this question

Recommended Posts

  • 0

Hi Eric,

I believe I understand the concern here. As you also realized, for installing the app from the internal app store, just like MdxWrapping, for the new MAMSDKs too, the .mdx package, one uploaded on the CEM server, should embed the corresponding .ipa in it. 


To do that, 

1. The existing steps, to generate a lightweight .mdx package and .ipa, need not be changed from the MAMSDK documentation. The -storeURL param is currently a required field, but since the intention is not to use a store URL for an installation source, you need to continue providing some dummy URL instead for this param.

2. Now, for embedding the .ipa in a .mdx package, we run a new command after generating the .mdx package and .ipa. From your post, I'm not sure how that was done.

Run the SetInfo command with -embedBundle param to generate a new .mdx package that should have the .ipa embedded and some updated contents from the original .mdx. This newly generated .mdx package is now ready to be uploaded/updated on your CEM server.


Sample command:

CGAppCLPrepTool SetInfo -in <path to the originalApp.mdx> -out <path for newAppWithEmbeddedIPA.mdx> -embedBundle <path to app.ipa>


This process is also explained in this documentation: https://developer.cloud.com/citrixworkspace/mobile-application-integration/mam-sdk-for-ios-and-ipados/docs/embed-ipa-into-an-mdx-file 


I hope this helps. If there is still some issue, please share your steps, the commands used, and, if possible, whatever logs were generated following the above steps as well.



Jaspreet Singh

Link to comment
  • 0

Hi Jaspreet,


That was exactly what I did since I have no way to skip out from StoreURL variable.  I just wanted to confirm this because the Citrix support keep asking me to remove this line from the postscript.  I was able to generate the newAppNameRelease-exported.mdx file.  And this file is a lot bigger than the old mdx file.  The only problem remaining is that the app shows in the inhouse app store; however, it still would not get install to the home screen.  Do you have any suggestion on how to troubleshoot this error?


Most appreciated for your help,



Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...