I added a shared framework to share code between app and watch extension. Later I removed the shared framework since it cause lots of problems. I can build and run my app on iph
I had a today extension which uses a custom framework I implemented it.
I tried all the solutions but nothing worked for me.
I needed the custom framework only in the today extension, so I linked and embedded this framework in the today extension only.
What the error is saying is:
that the bundle contains disallowed frameworks
Today extension should not embed any framework, shall only link to it.
So I removed the framework from the today extension and added it to the parent app.
Note that:
the parent app should use this framework since it's added to it, an import shall do the job.
The above didn't work for me.
Embedded Content Contains Swift Code: NO
Didn't really do anything for me.
I experienced this issue using a dynamic framework. My dynamic framework contained other dynamic frameworks which made it OK to have:
Embedded Content Contains Swift Code: YES
And instead having the other dynamic frameworks set it to No instead. But instead of that I had to set
Always Embed Swift Standard Libraries: NO
under Build Phases.
Having this one set to YES generated the frameworks
folder causing upload to ITC fail.
I had a framework that builded with the following build settings:
Always Embed Swift Standard Libraries: YES
Allow Non-Modular includes in Framework Modules: YES
So I changed both to NO
and build framework again.
Always Embed Swift Standard Libraries: NO
Allow Non-Modular includes in Framework Modules: NO
I added new build of framework to my project so It uploaded to iTunes Connect successfully.
I still do not fully understand what causes the issue, but I've stumbled upon an answer that has finally solved the issue for me.
https://github.com/CocoaPods/CocoaPods/issues/4203
Specifically, the post by mikehouse on Oct 12, 2015 was the solution to the the problem.
Add the following run script to ALL you embedded extension targets. In my case I had to add the run script as a build phase to my Today extension and my Apple Watch App extension.
cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi
The "ITMS-90206" error was resolved in this post: Validation Error: Invalid Bundle. The bundle at ... contains disallowed file 'Frameworks'
The setting needs to be changed from Yes to No within the Build options of your WatchKit Extension:
Embedded Content Contains Swift Code: No