Start a new topic

libpng conflict with ArcGIS framework

libpng conflict with ArcGIS framework


Hi,

Our app uses both the Wikitude and ArcGIS frameworks, and whenever both are linked, the ARchitect view cannot load any image resources. This can be replicated by adding the ArcGIS framework to the SDK examples, and when testing using the "From Application Model" option (possibly ), we receive this output to the console:

ARchitect: Format: PNGIncompatible libpng version in application and library
ARchitect: Format: PNGIncompatible libpng version in application and library
ARchitect: Incompatible libpng version in application and library
ARchitect: Incompatible libpng version in application and library
ARchitect: Image (1): Unable to load.
ARchitect: Failed to load ImageResouce (1): Unable to load.
ARchitect: Format: PNGIncompatible libpng version in application and library
ARchitect: Incompatible libpng version in application and library
ARchitect: Image (3): Unable to load.
ARchitect: Image (2): Unable to load.
ARchitect: Failed to load ImageResouce (2): Unable to load.
ARchitect: Failed to load ImageResouce (3): Unable to load.

Changing the linking order doesn't seem to affect this. Any assistance would be appreciated.

The framework can be found here: https://developers.arcgis.com/en/ios/index.html

We are using a custom verison of libpng 1.4.8. XCode crushes pngs before it inlcudes any png into the application bundle. Unfortunately these "crushed" pngs are not readable by standard libpng therefore we had to modify the libpng version. Therefore we won't be able to remove libpng without removing the support for loading pngs.

As arcgis does not seem to come with 1.4.8 it will have the similar problems when the linker uses "our" libpng symbols. If you are not using any argis framework features that would require libpng you could try to remove all libpng symbols from the arcgis framework and link it again. This would require some hacking and I don't have the command names readily available so I suggest googling around.

Another option might be to not use any png images and use jpeg or gif instead. Depending on your project this could be a vialbe though not ideal solution.

Let me know if you have further questions. If you get it to work somehow I would be happy if you can post the solution here.

 

"We are using a custom verison of libpng 1.4.8. XCode crushes pngs before it inlcudes any png into the application bundle. Unfortunately these "crushed" pngs are not readable by standard libpng therefore we had to modify the libpng version. Therefore we won't be able to remove libpng without removing the support for loading pngs."

Same problem I'm facing. Wouldn't a nice thing to do on a framework side be to rename any common-use static lib it includes to avoid such problems on client side? Especially if the lib is not vanilla, but a custom flavor? The solution provided does *not* work for us.

@Wolfgang: Do you think Wikitude could resolve the potential conflict e.g. by namespacing the symbols of the mutated lib?

yes, and that is definately something we are looking into. But at them moment I cannot give you any release date.

We will be on the lookout for this fix as it basically stops our next release. Any hints as to when this could be available would be highly appreciated.

Marcin

I'll let you know once I am able to share more details. Please stay tuned.
Login or Signup to post a comment