Leanplum dynamic framework was an umbrella framework and embedded its dependency - CleverTapSDK and its dependencies, in the nested Frameworks folder. This was previously discouraged by Apple but now causes the AppStore Validation to fail with the following errors:
"Invalid Bundle. The bundle at 'MyApp.app/Frameworks/Leanplum.framework' contains disallowed file 'Frameworks'"."Invalid Bundle. The bundle at 'MyApp.app/Frameworks/Leanplum.framework' contains disallowed nested bundles".
Implementation
LeanplumSDK - Do not embed the dependency frameworks. Remove the script that copied them.
LeanplumLocation - Do not embed Leanplum framework.
LeanplumSDKApp - Embed Leanplum.framework together with LeanplumLocationAndBeacons which depends on it. Install dependencies using CocoaPods. Remove the build phase script for signing since its no longer needed.
Update the build script, so it also adds the dependencies (CleverTapSDK and SDWebImage) into the Leanplum.framework zip.
When using the dynamic Leanplum framework, developers need to add and embed all dependencies as well.
Background
Leanplum dynamic framework was an umbrella framework and embedded its dependency - CleverTapSDK and its dependencies, in the nested Frameworks folder. This was previously discouraged by Apple but now causes the AppStore Validation to fail with the following errors:
"Invalid Bundle. The bundle at 'MyApp.app/Frameworks/Leanplum.framework' contains disallowed file 'Frameworks'".
"Invalid Bundle. The bundle at 'MyApp.app/Frameworks/Leanplum.framework' contains disallowed nested bundles".
Implementation
Update the build script, so it also adds the dependencies (CleverTapSDK and SDWebImage) into the Leanplum.framework zip.
When using the dynamic Leanplum framework, developers need to add and embed all dependencies as well.
Testing steps
Manual - AppStore validation.
Is this change backwards-compatible?
Yes