How to submit iMessage Apps to the AppStore

This only applies to pure iMessage Apps, and not to iOS apps containing an iMessage Extension

If your iMessage App is embedding a framework, you most likely have seen this error message:

ERROR ITMS-90205: “Invalid Bundle. The bundle at ‘${bundlePath}’ contains disallowed nested bundles.”
ERROR ITMS-90206: “Invalid Bundle. The bundle at ‘${bundlePath}’ contains disallowed file ‘Frameworks’.”
Error when submittig iMessage extensions

The reason is that the frameworks should not be located in the extension target, but in the host/stub application.

Xcode 8 does not expose the ability to embed a framework in the stub application target containing your iMessage App. This is because your stub application does not contain a Run Script build phase. So you will need to use a workaround to move the framework to the correct location in the app bundle.

Apple has published this workaround guide.

In this guide you need to create an aggregate target that contains a Run Script build phase to move the frameworks to the correct location.

Since we were using Cocoapods to embed the frameworks we had to add the move script as the last build phase of the extension target it self.

Moving the frameworks from the extensions build phase

After making these changes we were able to submit the iMessage app to the AppStore, and 30 hours later it was approved.

Good luck on your subbmit