Subito-it / SBTUITestTunnel

Enable network mocks and more in UI Tests

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't submit to App Store Connect: Invalid font GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.woff

johnmalatras opened this issue · comments

It appears that there is an odd issue myself and other folks are facing with the GCDWebUploader package (which SBTUITestTunnel depends on) after adding a widget target to your project. When uploading a build to App Store Connect, I get the error:

ITMS-90853: Invalid font - There was an error validating the font at 'Substack.app/GCDWebServer_GCDWebServer.bundle/GCDWebUploader.bundle/Contents/Resources/fonts/glyphicons-halflings-regular.woff'. Font not supported by platform.

More cases of this can be found in this issue. As GCDWebUploader is deprecated and we are using a Subito-it fork (which you also can't raise an issue on), I'm hoping this could be resolved here. Could this font be removed from the fork? Otherwise any other ideas for solutions?

While the issue could be addressed modifying the GCDWebServer fork I would strongly recommend you to ensure not including SBTUITestTunnel in your AppStore builds as detailed in the setup documentation here

I'm wrapping all imports/usages in #if DEBUG but it appears to be building GCDWebServer anyways

I would suggest to have a dedicated target that does not include the sbtuitesttunnel and other testing libraries at all. The problem is that although wrapping with if DEBUG guarantees the code is not executed it does prevent the code from being compiled (and copied into the final binary).

Interesting, so is the suggestion to have two targets for the main application? One which isn't linked to sbtuitesttunnel and one which is and is used for tests?

But in this case if you try to build the production target which has the sbtuitesttunnel dependency removed locally, it cannot find sbtuitesttunnel in AppDelegate. I suppose this new target without sbtuitesttunnel will need to strictly be used for production CD and not locally.
Screenshot 2023-12-10 at 11 42 45 AM

As the root cause here is a bug in the upstream library, could the invalid font be removed in the meantime? As it stands anyone with a widget cannot submit to Apple and we'll need to refactor some of our CI/CD process to support this new target.

Would using #if canImport(SBTUITestTunnelServer) work instead?

Yep that works! Awesome, I'll create a new target that I only have to use for UI tests which includes SBTUITestTunnelServer. Thanks for the help!