App with embedded framework rejected due to ITMS 90205 (contains invalid nested bundles)

Hi. We're attempting to submit an app to the app store but is being rejected due to ERROR ITMS-90205: "Invalid Bundle. The bundle at [...] contains disallowed nested bundles." There is indeed an app and a framework bundled together. I'm not sure if I've set it up incorrectly or if there's some sort of trick you need to do to get it accepted if you have an app that depends on a custom framework.


Both app and framework are written purely in Objective-C.


The app compiles without warnings and installs and runs correctly on devices in both Debug and Release configurations. The Archive is also created without issue. It's only when we submit to the App Store that it complains about nested bundles.



The workspace setup is as follows:


ourApp Target

-> General

-> Embedded Binaries

-> ourFramework.framework

-> Linked Frameworks and Libraries

-> ourFramework.framework, Status = Required

-> Build Phases

-> Link Binary with Libraries

-> ourFramework.framework, Status = Required

-> Copy Files

-> ourFramework.framework, Destination=Frameworks, Code Sign on Copy = Checked

Build Settings:

-> FRAMEWORK_SEARCH_PATHS = /Library/Frameworks

-> EMBEDDED_CONTENT_CONTAINS_SWIFT = No



ourFramework Target

-> Linked Frameworks and Libraries

-> libsqlite3.tbd, Status = Required

-> Link Binary with Libraries

-> libsqlite3.tbd, Status = Required

Build Settings:

-> INSTALL_PATH = /Library/Frameworks

-> SKIP_INSTALL = Yes

-> EMBEDDED_CONTENT_CONTAINS_SWIFT = No


Any suggestions would be appreciated on how to fix / restructure / adjust it to be accepted in the App Store.


Thanks.

Accepted Reply

We managed to resolve this issue.


I examined the Archive structure and found that the framework had a second copy of itself inside the build folder. I added a Run Script phase to clean that out at the end of the framework target's build phases. The app continued to work and the next time we submitted to the app store it was accepted.

Replies

We managed to resolve this issue.


I examined the Archive structure and found that the framework had a second copy of itself inside the build folder. I added a Run Script phase to clean that out at the end of the framework target's build phases. The app continued to work and the next time we submitted to the app store it was accepted.