Mac App Store Rejection: Malformed Framework

[quote=72025:@Norman Palardy]I suspect Apple will reject your app as depending on Quicktime or QTKit
Thats why we even made some of the changes for 2014r1[/quote]

My apps don’t use Quicktime or QTkit at all.

Just re-wrote several of my earlier apps. All approved with 2013 R4.1 in the last few weeks. My latest one was compiled with 2014 R1. Rejected because of the Xojo Framework not working correctly with MAS procedure.

Re-compiled with 2013 R4.1. Successfully updated binary to Apple.

Xojo 2014 R1 is broken with MAS.

Xojo needs to have some kind of “dummy” or promo app in the MAS. Then, when they make changes to the Framework, they can upload it to Apple ahead of the general release, just to make sure everything is Hunky-Dory.

If you update apps that were originally created with previous versions of Xojo, it still works, so this is probably why you are still able to use 2013r4.1

If you create a new app, you will not be able to use 2013R4.1 because t contains QuickTime and QTKit. It will be rejected by Application Uploader upon upload.

2014R1 works perfectly well for me ; I created two apps with it and they are now on sale on the MAS.

Don’t conclude too fast that something is broken just from your experience. Others may report different.

You issue must be something else, probably a glitch in the preparation or signing process that disturbs the framework structure.

Do you, like Scott Crick above, use a third try tool to package it for MAS ?
Not sure there’s anything we can do if the IDE generates a correct binary etc that gets busted when you package it
Xojo is not doing anything to it at that point - we’re done and it is correct (otherwise it would never run)

[quote=72217:@Niles Mitchell]
Xojo needs to have some kind of “dummy” or promo app in the MAS. Then, when they make changes to the Framework, they can upload it to Apple ahead of the general release, just to make sure everything is Hunky-Dory.[/quote]
In fact Michel WAS one of the beta testers that DID test a brand new submission during the beta

Whats broken in your case ISN’T our doing or in our control

So I have done more testing. It appears that the Xojo framework looks fine after building with Xojo 2014r1.

Immediately after building, I run it through App Wrapper (I’ve tried both 2.0 and the newly released 2.5). After App Wrapper does its thing, something is happening to the Xojo Framework. Those symlinks that Apple is looking for are broken. I will reach out to Sam directly to discuss with him as it appears to be something App Wrapper related.

[quote=72233:@Scott Crick]So I have done more testing. It appears that the Xojo framework looks fine after building with Xojo 2014r1.

Immediately after building, I run it through App Wrapper (I’ve tried both 2.0 and the newly released 2.5). After App Wrapper does its thing, something is happening to the Xojo Framework. Those symlinks that Apple is looking for are broken. I will reach out to Sam directly to discuss with him as it appears to be something App Wrapper related.[/quote]

Thanks for confirming this

On my side is that not possible to sign Xojo Framework with 2014 R1.

Forum

Perhaps I should try everything without Wrapper? Actually I used App Wrapper mini without signing. Another try ……

[quote=72219:@Michel Bujardet]If you update apps that were originally created with previous versions of Xojo, it still works, so this is probably why you are still able to use 2013r4.1

If you create a new app, you will not be able to use 2013R4.1 because t contains QuickTime and QTKit. It will be rejected by Application Uploader upon upload.

2014R1 works perfectly well for me ; I created two apps with it and they are now on sale on the MAS.

Don’t conclude too fast that something is broken just from your experience. Others may report different.

You issue must be something else, probably a glitch in the preparation or signing process that disturbs the framework structure.[/quote]

Not sure exactly what you mean. They were updates to existing apps, not brand new apps. However, they were written from scratch in 2013 R 4.1. And Apple is still accepting them.

[quote=72228:@Norman Palardy]Do you, like Scott Crick above, use a third try tool to package it for MAS ?
Not sure there’s anything we can do if the IDE generates a correct binary etc that gets busted when you package it
Xojo is not doing anything to it at that point - we’re done and it is correct (otherwise it would never run)

In fact Michel WAS one of the beta testers that DID test a brand new submission during the beta

Whats broken in your case ISN’T our doing or in our control[/quote]

Nope, not using 3rd party tools. Doing everything in the Terminal.

So yes, Xojo 2014 R1 is broken and needs to be fixed. App Loader rejects my 2014 when uploading. No issues with 2013 R 4.1.

They were updates ? Those will be accepted. They’re basically grandfathered in as “updates”.
Brand new apps won’t be although we had some anecdotal reports that new ones were after apple shut the door on QTKit but as far as we know they won’t be accepted.

[quote=72442:@Niles Mitchell]Nope, not using 3rd party tools. Doing everything in the Terminal.
So yes, Xojo 2014 R1 is broken and needs to be fixed. App Loader rejects my 2014 when uploading. No issues with 2013 R 4.1.[/quote]
If the app doesn’t run when you compile it then 2014r1 would be broken as it would be writing out broken frameworks (which depend on symlinks) The framework literally would fail if it were NOT set up properly since it DEPENDS on symlinks being correct.
Your app would NOT work at all when you built it otherwise.
It wouldn’t just sort of work - it would outright fail to start.
And this would be before you did anything to sign it, package it for submission, etc.

2013r4.1 will / would of course work as it does NOT use a framework - just a plain flat dylib.

I’d suspect how you’re doing things as there were some changes in how they had to be done recently but I don’t know what specific commands you’re using. The fact that we do have people (like Michel & Sam) using tools like App Wrapper etc that can submit suggest theres nothing wrong with the apps or the frameworks in them but however you’re doing what you’re doing.

https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-SUBSECTION9
See signing frameworks where they mention
Seeing as frameworks are bundles it would seem logical to conclude that you can sign a framework directly. However, this is not the case. To avoid problems when signing frameworks make sure that you sign a specific version as opposed to the whole framework:

$admin> # This is the wrong way: $admin> codesign -s my-signing-identity ../FooBarBaz.framework $admin> # This is the right way: $admin> codesign -s my-signing-identity ../FooBarBaz.framework/Versions/A
Frameworks are “versioned bundles”, and each contained version should be signed and validated separately.

Come on. How do you explain the number of people who successfully sell apps today in the MAS that where created with 2014R1 ?

If you want your app to be accepted in the MAS, stop blaming Xojo and accept to learn.

In my case my calls found here . Singing for RBShell.xojo_plugin_0 works fine. For Xojo Framework this not work.

The Wrapper generate this code:

call DoShellCommand( "/usr/bin/codesign -f -s '"+ appCodeSignature +"' " + appPath + "/Contents/Frameworks/*.dylib" )      
      call DoShellCommand( "/usr/bin/codesign -f -s '"+ appCodeSignature +"' " + appPath + "/Contents/Frameworks/XojoFramework.framework/Versions/A/XojoFramework" )
      call DoShellCommand( "/usr/bin/codesign -f -s '"+ appCodeSignature +"' " + appPath + "/Contents/Frameworks/XojoFramework.framework" )

Is the last line wrong? I can only say, signing works not with and without wrapper on my side. I like the Wrapper and I like Xojo. I need only a solution for this. Today, that is late. I try that again tomorrow manual step by step in Terminal. Perhaps I found the problem. Thank you for fast response here.

Ah, one question. Sorry, I mean not badly. Anyone here send a new App to MAS with 2014 R1? That works?

I have two apps on sale now that where created with 2014R1 and Apple Wrapper Mini 1.21.

I simply let App Wrapper Mini do its job to codesign.

Brand new Apps or Updates? That let me hope. Now I must “only” find the problem why the wrapper don’t to this on my system. And why code sign in terminal don’t work, too!

Brand new apps :
https://itunes.apple.com/us/app/uk-cheque-writer/id832634944?ls=1&mt=12
https://itunes.apple.com/us/app/upc-barcode/id800583884?ls=1&mt=12

I do not understand why you do not let App Wrapper Mini do the signing. Here is the setting I use and it goes through fine.

Why insist on signing in Terminal ? ? ? Let App Wrapper Mini do it, and do not break the nice work of Ohanaware with superfluous manipulations…

[quote=72454:@Michel Bujardet]Come on. How do you explain the number of people who successfully sell apps today in the MAS that where created with 2014R1 ?

If you want your app to be accepted in the MAS, stop blaming Xojo and accept to learn.[/quote]

Come on? This thread was started by other people having issues with 2014 R1. And you’re accusing me of making things up? If it worked in 2013 and is broken in 2014 using the same procedures, then it’s a change in Xojo that has caused the problem. I’m not sure I can make it any simper than that.

If their is a change in procedure on how a Xojo needs to be signed now with 2014, then that should have been documented in the release notes.

Fact.

[quote=72451:@Norman Palardy]They were updates ? Those will be accepted. They’re basically grandfathered in as “updates”.
Brand new apps won’t be although we had some anecdotal reports that new ones were after apple shut the door on QTKit but as far as we know they won’t be accepted.

If the app doesn’t run when you compile it then 2014r1 would be broken as it would be writing out broken frameworks (which depend on symlinks) The framework literally would fail if it were NOT set up properly since it DEPENDS on symlinks being correct.
Your app would NOT work at all when you built it otherwise.
It wouldn’t just sort of work - it would outright fail to start.
And this would be before you did anything to sign it, package it for submission, etc.

2013r4.1 will / would of course work as it does NOT use a framework - just a plain flat dylib.

I’d suspect how you’re doing things as there were some changes in how they had to be done recently but I don’t know what specific commands you’re using. The fact that we do have people (like Michel & Sam) using tools like App Wrapper etc that can submit suggest theres nothing wrong with the apps or the frameworks in them but however you’re doing what you’re doing.

https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-SUBSECTION9
See signing frameworks where they mention
Seeing as frameworks are bundles it would seem logical to conclude that you can sign a framework directly. However, this is not the case. To avoid problems when signing frameworks make sure that you sign a specific version as opposed to the whole framework:

$admin> # This is the wrong way: $admin> codesign -s my-signing-identity ../FooBarBaz.framework $admin> # This is the right way: $admin> codesign -s my-signing-identity ../FooBarBaz.framework/Versions/A
Frameworks are “versioned bundles”, and each contained version should be signed and validated separately.
[/quote]

Thank you Norman, I will try this.

I’m the one that started this thread. I have determined that Xojo 2014r1 is creating a properly formed Framework when building, so the problem is not Xojo directly.

It appears to possibly be something with App Wrapper as the framework doesn’t become damaged until after App Wrapper does its thing. It’s also entirely possible that I have something configured wrong in App Wrapper, so I’m not blaming to tool directly either. I’m currently attempting to work with the makers of App Wrapper to see what might be going on.

But, it doesn’t look like it’s anything with Xojo 2014r1.

[quote=72217:@Niles Mitchell]Xojo 2014 R1 is broken with MAS.

Xojo needs to have some kind of “dummy” or promo app in the MAS. Then, when they make changes to the Framework, they can upload it to Apple ahead of the general release, just to make sure everything is Hunky-Dory.[/quote]
Not technically true - I’ve submitted apps to MAS using 2014 Release 1 (even some of the beta versions). It comes down to correct code signing, which App Wrapper & App Wrapper Mini are designed to do.

[quote=72489:@Niles Mitchell]Come on? This thread was started by other people having issues with 2014 R1. And you’re accusing me of making things up? If it worked in 2013 and is broken in 2014 using the same procedures, then it’s a change in Xojo that has caused the problem. I’m not sure I can make it any simper than that.

If their is a change in procedure on how a Xojo needs to be signed now with 2014, then that should have been documented in the release notes.

Fact.[/quote]
How you sign apps is documented by Apple and you need to do it however they say for whatever is contained in your app (in this case a framework instead of a dylib).
Or, let app wrapper or any of the other tools that exist to do this that do it correctly handle it for you.

Now IF we also integrated submitting to MAS etc and did handle the signing etc and the IDE was NOT doing it correctly it would be our bug.
But we dont

The malformed framework (which is what the OP was requesting help for) does appear to be something in App Wrapper, I’m investigating it right now, but so far not able to reproduce it. Hopefully I can still understand what’s #$%^&*%$ it up and alter the code to work more reliably.