App Store rejection

Ernesto Giannotta erne at apimac.com
Tue Jan 24 16:24:35 CST 2012


You're right here Ruslan!

Here's output of otool:

	@executable_path/../vcomponents/libvkernel_fat_release.dylib (compatibility version 4.9.0, current version 4.9.0)
	/usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 32.0.0)
	@executable_path/../vcomponents/libvshared_fat_release.dylib (compatibility version 4.9.0, current version 4.9.0)
	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.11)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 368.35.0)


On 24-gen-2012, at 20:19, Ruslan Zasukhin wrote:

> 
> 
> 3) One more guess.  MAY BE Erne did something wrong
> And vkernel .dylib still points to  /usr/lib/libicu ?
> 
> Erne you can check this if open bundle.app AFTER script done,
> And using 
> 
> otool -L  app/ vcomponents/libvkernel...
> 
> You must see that libicucore  points to  @excutable_path
> 

I copied this line from the script you sent me:
	install_name_tool -change "/usr/lib/vcomponents/libicucore.A.dylib" "@executable_path/../vcomponents/libicucore.A.dylib" "$app_vcomp"/libvkernel_fat_release.dylib

but I now see it should be like this:

	install_name_tool -change "/usr/lib/libicucore.A.dylib" 				  "@executable_path/../vcomponents/libicucore.A.dylib" 				"$app_vcomp"/libvkernel_fat_release.dylib

I'll give it another try…

ok, now I get correct path:

	@executable_path/../vcomponents/libvkernel_fat_release.dylib (compatibility version 4.9.0, current version 4.9.0)
	@executable_path/../vcomponents/libicucore.A.dylib (compatibility version 1.0.0, current version 32.0.0)
	@executable_path/../vcomponents/libvshared_fat_release.dylib (compatibility version 4.9.0, current version 4.9.0)
	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.11)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 368.35.0)

Build results reports some errors in the script:

> install_name_tool: for architecture x86_64 object: /Developer/Cocoa/Builds/Release/Apimac Notepad.app/Contents/vcomponents/libicucore.A.dylib malformed object (unknown load command 8)

I can fix this getting rid of the change id of icu command 
	# change id of ICU dylib
#    install_name_tool -id "@executable_path/../vcomponents/libicucore.A.dylib" "$app_vcomp"/libicucore.A.dylib


> codesign_allocate: can't allocate code signature data for: /Developer/Cocoa/Builds/Release/Apimac Notepad.app/Contents/vcomponents/libvkernel_fat_release.dylib (for architecture i386) because larger updated load commands do not fit (the program must be relinked using a larger -headerpad value)
> 
> 
> /Developer/Cocoa/Builds/Release/Apimac Notepad.app/Contents/vcomponents/libvkernel_fat_release.dylib: object file format unrecognized, invalid, or unsuitable
> 

this prevents the libvkernel_fat_release.dylib to be signed.
My guess is that the new path to icu to load is bigger than the old one.

Anyway the app runs fine, only can't be fully properly signed.

My next steps:
Submit a build made with old V4CC 4.8 and without embedding ICU and see if it gets through
Wait for a new V4CC 5.x built with a larger -headerpad
Try again to submit a build made with V4CC 5 and ICU embedded 

Stay tuned


Cool Runnings,
Erne.



















More information about the Valentina mailing list