Issues with archiving iOS project: libz.dylib not found

1.1k Views Asked by At

I have issues when making an archive from a (legacy) iOS project. While archiving I get the following error:

Libtool /Users/appcell/Library/Developer/Xcode/DerivedData/elho-ctuevlyyxtyssvblxkqezbfgdtyq/Build/Intermediates/ArchiveIntermediates/Elho/IntermediateBuildFilesPath/PSPDFKit-lib.build/Release-iphoneos/PSPDFKit.build/Objects-normal/armv7/libPSPDFKit.a normal armv7
cd /Users/appcell/Documents/Projects/Elho/Libraries/PSPDFKit
export IPHONEOS_DEPLOYMENT_TARGET=5.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static -arch_only armv7 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -L/Users/appcell/Library/Developer/Xcode/DerivedData/elho-ctuevlyyxtyssvblxkqezbfgdtyq/Build/Intermediates/ArchiveIntermediates/Elho/BuildProductsPath/Release-iphoneos -filelist /Users/appcell/Library/Developer/Xcode/DerivedData/elho-ctuevlyyxtyssvblxkqezbfgdtyq/Build/Intermediates/ArchiveIntermediates/Elho/IntermediateBuildFilesPath/PSPDFKit-lib.build/Release-iphoneos/PSPDFKit.build/Objects-normal/armv7/PSPDFKit.LinkFileList /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libz.dylib -framework AssetsLibrary -framework CoreMedia -framework AVFoundation -framework ImageIO -framework MediaPlayer -framework CoreText -framework CoreGraphics -weak_framework UIKit -framework MessageUI -framework QuartzCore -framework Foundation -o /Users/appcell/Library/Developer/Xcode/DerivedData/elho-ctuevlyyxtyssvblxkqezbfgdtyq/Build/Intermediates/ArchiveIntermediates/Elho/IntermediateBuildFilesPath/PSPDFKit-lib.build/Release-iphoneos/PSPDFKit.build/Objects-normal/armv7/libPSPDFKit.a

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't open file: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libz.dylib (No such file or directory)

When I create a link frrom the /usr/lib/libz.dylib file to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib (which used to work in the past), I now get the following error:

ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libz.dylib, missing required architecture armv7 in file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libz.dylib (2 slices)
Undefined symbols for architecture armv7:
"_deflateInit_", referenced from:
  -[NSData(PSPDFCompression) pspdf_zlibDeflate] in libPSPDFKit.a(NSData+PSPDFCompression.o)
"_deflate", referenced from:
  -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
  -[NSData(PSPDFCompression) pspdf_zlibDeflate] in libPSPDFKit.a(NSData+PSPDFCompression.o)
"_deflateInit2_", referenced from:
  -[ASIDataCompressor setupStream] in ASIDataCompressor.o
"_inflate", referenced from:
  _unzReadCurrentFile in unzip.o
  -[ASIDataDecompressor uncompressBytes:length:error:] in ASIDataDecompressor.o
  -[NSData(PSPDFCompression) pspdf_zlibInflate] in libPSPDFKit.a(NSData+PSPDFCompression.o)
"_get_crc_table", referenced from:
  _unzOpenCurrentFile3 in unzip.o
"_inflateEnd", referenced from:
  _unzCloseCurrentFile in unzip.o
  -[ASIDataDecompressor closeStream] in ASIDataDecompressor.o
  -[NSData(PSPDFCompression) pspdf_zlibInflate] in libPSPDFKit.a(NSData+PSPDFCompression.o)
"_crc32", referenced from:
  _unzReadCurrentFile in unzip.o
"_inflateInit_", referenced from:
  -[NSData(PSPDFCompression) pspdf_zlibInflate] in libPSPDFKit.a(NSData+PSPDFCompression.o)
"_deflateEnd", referenced from:
  -[ASIDataCompressor closeStream] in ASIDataCompressor.o
  -[NSData(PSPDFCompression) pspdf_zlibDeflate] in libPSPDFKit.a(NSData+PSPDFCompression.o)
"_inflateInit2_", referenced from:
  _unzOpenCurrentFile3 in unzip.o
  -[ASIDataDecompressor setupStream] in ASIDataDecompressor.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Has anyone ever had the same issues?

1

There are 1 best solutions below

2
steipete On

PSPDFKit founder here. Our PDF SDK uses libz, so either link with libz.dylib (which has been renamed in later Xcode versions to be libz.tbd) or add the linker flag -lz which should als do the trick.

If you update our SDK to the latest version this all happens automatically, since we're using a dynamic framework which already knows what dependencies it requires.