Submiting to Mac app store and getting quicktime API error

You can try, but I personally wouldn’t recommend it, plus it seems like QTKit is also depreciated and this may not require library linking (in which case it’s an API call somewhere in the framework).

Although - thinking outside of what you’ve been told, is sometimes how you discover the solution!

Let us know how it goes.

It didn’t work!

You know, in computer science adding or removing one dot at or from the wrong or right place is fatal.

This reminded me of a true story. A king once sent a decree to count the Jewish people in one of his provinces. His edict was written in Arabic, which is a script of lines and dots, if you like. The governor had that tablet in his room, so what happened? There used to be a fly in that room, and this fly sat on that tablet and deposited a dot on one of those words, namely the word “count”. By doing this, the word completely changed its meaning. It became: “Castrate” that people instead of “count”. So this is what they did.

I am sorry for that digression. I am a little frustrated. It’s 5am here, and I have still no app uploaded.

Hello,
I have the same problem. In my app I used “OpenAsPicure” and a get this message from Apple:

Dear developer,

We have discovered one or more issues with your recent delivery for “My Vehicles”. To process your delivery, the following issues must be corrected:

Deprecated API Usage - Apple no longer accepts submissions of apps that use QuickTime APIs.

Though you are not required to fix the following issues, we wanted to make you aware of them:

Invalid Signature - the executable at path My Vehicles.app/Contents/Frameworks/MBS Xojo Cocoa Plugin.xojo_plugin_11.dylib is not signed with an Apple submission certificate. Refer to the Code Signing and Application Sandboxing Guide for more information.

Invalid Signature - the executable at path My Vehicles.app/Contents/Frameworks/MBS Xojo Cocoa Plugin.xojo_plugin_28.dylib is not signed with an Apple submission certificate. Refer to the Code Signing and Application Sandboxing Guide for more information.

Invalid Signature - the executable at path My Vehicles.app/Contents/Frameworks/MBS Xojo Cocoa Plugin.xojo_plugin_5.dylib is not signed with an Apple submission certificate. Refer to the Code Signing and Application Sandboxing Guide for more information.

Invalid Signature - the executable at path My Vehicles.app/Contents/Frameworks/MBS Xojo Cocoa Plugin.xojo_plugin_7.dylib is not signed with an Apple submission certificate. Refer to the Code Signing and Application Sandboxing Guide for more information.

Invalid Signature - the executable at path My Vehicles.app/Contents/Frameworks/MBS Xojo CocoaBase Plugin.xojo_plugin_0.dylib is not signed with an Apple submission certificate. Refer to the Code Signing and Application Sandboxing Guide for more information.

Invalid Signature - the executable at path My Vehicles.app/Contents/Frameworks/MBS Xojo CocoaBase Plugin.xojo_plugin_1.dylib is not signed with an Apple submission certificate. Refer to the Code Signing and Application Sandboxing Guide for more information.

Now I have changed my app to use “Picture.Open” and now the reject message from apple is:

Dear developer,
We have discovered one or more issues with your recent delivery for “My App”. To process your delivery, the following issues must be corrected:
Deprecated API Usage - Apple no longer accepts submissions of apps that use QuickTime APIs.
Once these issues have been corrected, go to the Version Details page and click “Ready to Upload Binary.” Continue through the submission process until the app status is “Waiting for Upload.” You can then deliver the corrected binary.

Regards,

The App Store team

Is there anyone with the same problem? Is there solution for this problem?

I have had the same letter as your number 2 several times. There seems to be no immediate fix because the RB dylib library contains these references to QuickTime API call, no matter what you add or remove from your code, and is probably what triggers the error.

The workaround I found was to generate a Carbon build, as my app did not contain critical elements requiring Cocoa. Of course, it is not perfectly satisfactory and I would have preferred to upload the Cocoa build, but at this time, my app is waiting for review and that is what I wanted. I can now wait peacefully for Xojo to resolve the issue and will update the app when it is the case.

Good luck.

The fix would be to join the beta program and see if Xojo Inc can fix it soon in the next beta.

I am sure they are working on it. But there are so many QuickTime API calls in the library, I have the feeling that it may not be an easy instant fix. One can only hope, of course.

In the meantime, I will stop developing for MAS and start working on Windows. With some degree of luck, the Windows Store will be less of a maze. Although it has it’s own peculiarities. Obtaining a Verisign Authenticode being the first, with a $499 price tag attached to it, and what seems the worst customer service I have ever encountered. Sometimes, dealing with big companies feels like an adventure game :frowning:

Sooo, those of us that has an expired license for r3 will no longer be able to submit updates to our existing MAS apps…?

That’s the nature of the licensing system in place. After all, it’s not Xojo’s fault but Apple rejecting the usage of this API without any advance notice.

At this time, no Xojo version can submit anything for update. So the word is ‘wait and see’…

I have an idea, for something I might be able to implement into App Wrapper, however if your application genuinely uses Quicktime, my idea will bugger it up chronically and most likely will make it crash!

It does not. I’m all ears to your creative mind :slight_smile:

Basically; in poking the rbFramework.dylib, I’ve found API calls to the QTKit (which is what I think Apple are looking for), I can’t remove those as it would break the binary, but I can replace them with different function names. I’ve asked some peers to see if they think this will be a good idea before I try it, as it’s something that I personally would have avoided in the past.

I am still experimenting to find out what is going on with Xojo in the MAS. Today I tried to update Check Writer, which has no graphic feature at all. The Cocoa build passes. Which means the problem I had last week is related to the basic graphic functions I use. Although I was using the simplest graphic functions of Xojo and not calling any declare, Xojo built Cocoa with QuickTime API calls.

So what I found out today is that an app using no graphics does not generate the fatal QuickTime API calls.

And am going to work on that app now :slight_smile:

I have made a new release of “Worldwide ZIP Code Finder”. This app was not rejected by MAS and it is waiting to review. The application has a HTMLviewer, MBS Plugins, dtPlugin and no picture, movie or sound file i/o. It has this libraries in the framework folder:
dtPlugins.rbx_0.dylib
MBS Xojo Cocoa Plugin.xojo_plugin_11.dylib
MBS Xojo Cocoa Plugin.xojo_plugin_28.dylib
MBS Xojo Cocoa Plugin.xojo_plugin_5.dylib
MBS Xojo Cocoa Plugin.xojo_plugin_7.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_0.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_1.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_10.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_11.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_13.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_14.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_17.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_5.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_6.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_7.dylib
MBS Xojo CocoaBase Plugin.xojo_plugin_8.dylib
MBS Xojo CocoaControls Plugin.xojo_plugin_1.dylib
MBS Xojo CocoaExtras Plugin.xojo_plugin_5.dylib
MBS Xojo Leopard Plugin.xojo_plugin_3.dylib
MBS Xojo Mac Plugin.xojo_plugin_9.dylib
MBS Xojo MacOSXCF Plugin.xojo_plugin_11.dylib
MBS Xojo MacOSXCF Plugin.xojo_plugin_15.dylib
MBS Xojo MacOSXCF Plugin.xojo_plugin_6.dylib
MBS Xojo Main Plugin.xojo_plugin_4.dylib
MBS Xojo Util Plugin.xojo_plugin_26.dylib
MBS Xojo Util Plugin.xojo_plugin_37.dylib
RBAppearancePak.rbx_0.dylib
rbframework.dylib
RBHTMLViewer.rbx_0.dylib
RBInternetEncodings.rbx_0.dylib
RBREALSQLDatabase.rbx_0.dylib

otool -L with path to dylib will show what libs are referenced there.
I already removed some QuickTime dependencies here.

[quote=51814:@Christian Schmitz]otool -L with path to dylib will show what libs are referenced there.
I already removed some QuickTime dependencies here.[/quote]
Wow … just found QuickTime in the CubeSQL plugin… I’m not submitting to MAS right now, but it looks like that would be a showstopper right now.

/Applications/Seminar Pro.app/Contents/Frameworks/CubeSQLPlugin.rbx_0.dylib: /usr/local/lib/CubeSQL_i386.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0) /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 1327.73.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 111.1.4) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0)

Using XojoScript is getting me a reference to QuicktTime as well :

otool -L /Applications/Seminar\\ Pro.app/Contents/Frameworks/RBScript.rbx_0.dylib /Applications/Seminar Pro.app/Contents/Frameworks/RBScript.rbx_0.dylib: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1138.47.0) /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 2330.0.0) …

With Xojo 2013R3.3 and MBS 13.5pr10 my app was also rejected from the MAS. otool -L found these QuickTime libs:

RBAppearancePak.rbx_0.dylib:
RBHTMLViewer.rbx_0.dylib:
RBInternetEncodings.rbx_0.dylib:
RBREALSQLDatabase.rbx_0.dylib:
rbframework.dylib:
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 2330.0.0)

Well, QuickTime is a huge framework with a lot of things. Probably CubeSQL uses it for Image compression.