I have a lot of frameworks in my app. App works fine in adhoc/enterprise release. Only if I submit to the app store for testflight testing I get this error email from apple:
I also received a similar mail from Apple:
Dear Developer,
We identified one or more issues with a recent delivery for your app, "********. Please correct the following issues, then upload again.
ITMS-90562: Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path.
Best regards,
The App Store Team
I used my own framework for my watch app. I solved this issue by changing the framework option to "Embed Without Signing" in the Extension Target. The default option was "Do Not Embed".
Got an answer from Apple Developer Technical Support which says it is a bug on Apple's side. this is the suggested workaround below which did not work for me:
To diagnose this issue, you should export the IPA you are sending to the App Store from Xcode. Since IPAs are zip files, you can decompress it by right clicking and saying Open With > Archive Utility. You should find your main executable inside the unzipped folder structure and run otool at the command line to see the library list: otool -L
The list of paths you get should match what you find inside of your IPA. All of your libraries should start with @rpath. A simple comparison of everything in this list with the unzipped IPA folders should reveal what is missing.
Once you know what is missing, go to your Xcode build phases setup. There should be a build phase for either Copy Files or Embed Frameworks that includes the missing library — you should just add the library to the list. If you don’t see either of these build phases, you can recreate it by adding a new Copy Files build phase, setting the Destination to Frameworks, and adding the library to the list, ensuring that Code Sign On Copy is checked.
If you don’t find anything missing in your main binary, make sure to do the same search on any other binaries you may have, like for a watchOS app or an iOS app extension.
If you find that all of the frameworks are in this build phase, please take a look at the Embedded Binaries section of your app target’s General page, and let me know if you see multiple levels of ../ next to the binary that you found is missing.
Please let me know if it works for you!
My Problem: I had the same error with embedded frameworks.
The app built to the simulator and to devices with no problem but failed the Apple test, returning "Invalid Bundle".
I inspected the package just like Taha had been told to by Tech Support and everything was present and correct!
My Solution: I restructured the project so that the two custom frameworks sit side by side and one is no longer embedded within the other.
This looks to be an Apple validation problem since everything works fine on devices and the simulator but the work around was straight forward.
We had the same problem, and even after going through all the steps (see "Missing Framework Bundle"), the only thing that worked was disabling Bitcode.
I have encountered the same issue when uploading an app with watch support to the app store.
I was able to solve it with the hint from the first answer, using otool -L
to analyze the binary from the ipa or xcarchive.
However, the problem was not with my frameworks (at @rpath
) but with a swift lib. I noticed that libswiftWatchKit.dylib
was missing in the frameworks folder.
The solution that worked for me was as simple as to set EMBEDDED_CONTENT_CONTAINS_SWIFT=YES
in the build settings of the watch app (or the watch app extension, but not both). After that, all necessary swift libraries were correctly copied to the watch app path in the archive and upload to app store was working correctly.
Apparently, the watch app works and upload passes if you provide the necessary swift libraries only in the main app's folder.
After adding the custom Swift framework to my project I got this email after uploading the app to iTunes connect.
I got this email from iTunes store,
Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path.
The fix is simple for this issue,
Step 1: Make sure your Custom framework is added to Embedded Binaries in General tab of your target.
Step 2: Under build settings,
Set Always Embed Swift Standard Libraries = Yes
for your main project target.
And Set Always Embed Swift Standard Libraries = No
for your custom framework target.
This solved my problem and I was able to upload binary to iTunes connect.
Ref