I've built a universal xcframework for iOS (arm64) and iOS simulator (arch64, x86_64). This framework has a set of third party dependencies that were provided by a company I'm working with to use their SDK. They provided two sets of .framework files:
- The first, for iOS simulator (arch64, x86_64)
- The second for iOS (arm64).
Following Apple's [documentation for xcframeworks]. (https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle) I created two archives of my project, one for each platform/architecture combination with each set of framework files. I successfully built the xcframework and was able to use it for both iOS and simulator in a test project.
However, when trying to deploy this project to testflight, I get an error telling me that nested bundles aren't allowed: "Invalid Bundle. The bundle at ... contains disallowed nested bundles"
If I look at the xcframework folder structure, I see two folders within for each architecture/platform build, each with the dependency frameworks inside. This makes sense to me, because we would need each framework at a different time depending on where we are running the project. But, apple says this isn't allowed. My questions are as follows:
- How can I make this universal framework with 3rd party dependencies work without creating a nested bundle?
- Is this even possible?
- Do I need to ask the company that made the dependency framework to give me a universal xcframework?