mongodb / stitch-ios-sdk

Apache License 2.0
42 stars 25 forks source link

Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path. #163

Closed rfdearborn closed 5 years ago

rfdearborn commented 5 years ago

Hey guys -

I'm getting the following error message when I try to upload a new app I've been building (which relies heavily on this library) to app store connect:

Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path.

This app is running StitchSDK 5.1.0 installed via cocoapods per documentation, and has no issues running in simulation or on test devices or passing upload validation. I'm still using Xcode 10.1 (because of the issues described here) and cocoapods 1.6.1.

After working through the various troubleshooting described here without success, I decided to build a dummy single screen app that I could test uploading to get at the root cause of the message by process of elimination. Very long story short, it turns out that this dummy app fails to upload whenever StitchSDK is included as a pod - even when it's the only library included:

Screen Shot 2019-04-12 at 11 33 32 AM

Note that other than installing StitchSDK via cocoapods, nothing here has been changed from the initial defaults of a new single view app Xcode project. When I remove Stitch the dummy app uploads fine. When I add it back it doesn't.

Ever seen this before?

jsflax commented 5 years ago

Hey Rob,

I haven't seen that before, so let's try to debug it. A few questions:

Do you know which .dylibs are missing? Do you have ALWAYS_EMEBED_SWIFT_STANDARD_LIBRARIES set to YES? Which targets/devices/SDKs are you building for?

rfdearborn commented 5 years ago

Hey Jason, thanks for the quick reply!

Do you know which .dylibs are missing?

As best as I can tell: none. Here's from inside my unzipped testApp.ipa:

robdearborn:testApp.app robdearborn$ ls
AppIcon60x60@2x.png     Base.lproj          PkgInfo             embedded.mobileprovision
AppIcon76x76@2x~ipad.png    Frameworks          Podfile             testApp
Assets.car          Info.plist          _CodeSignature
robdearborn:testApp.app robdearborn$ cd Frameworks
robdearborn:Frameworks robdearborn$ ls
MongoMobile.framework               libswiftCore.dylib              libswiftObjectiveC.dylib
MongoSwift.framework                libswiftCoreFoundation.dylib            libswiftQuartzCore.dylib
StitchCore.framework                libswiftCoreGraphics.dylib          libswiftUIKit.dylib
StitchCoreLocalMongoDBService.framework     libswiftCoreImage.dylib             libswiftos.dylib
StitchCoreRemoteMongoDBService.framework    libswiftDarwin.dylib                mongo_embedded.framework
StitchCoreSDK.framework             libswiftDispatch.dylib              mongoc.framework
StitchRemoteMongoDBService.framework        libswiftFoundation.dylib            mongoc_embedded.framework
bson.framework                  libswiftMetal.dylib
robdearborn:Frameworks robdearborn$ otool -L ../testApp
../testApp:
    @rpath/MongoMobile.framework/MongoMobile (compatibility version 1.0.0, current version 1.0.0)
    @rpath/MongoSwift.framework/MongoSwift (compatibility version 1.0.0, current version 1.0.0)
    @rpath/StitchCore.framework/StitchCore (compatibility version 1.0.0, current version 1.0.0)
    @rpath/StitchCoreLocalMongoDBService.framework/StitchCoreLocalMongoDBService (compatibility version 1.0.0, current version 1.0.0)
    @rpath/StitchCoreRemoteMongoDBService.framework/StitchCoreRemoteMongoDBService (compatibility version 1.0.0, current version 1.0.0)
    @rpath/StitchCoreSDK.framework/StitchCoreSDK (compatibility version 1.0.0, current version 1.0.0)
    @rpath/StitchRemoteMongoDBService.framework/StitchRemoteMongoDBService (compatibility version 1.0.0, current version 1.0.0)
    @rpath/bson.framework/bson (compatibility version 0.0.0, current version 0.0.0)
    @rpath/mongo_embedded.framework/mongo_embedded (compatibility version 1.0.0, current version 1.0.0)
    @rpath/mongoc.framework/mongoc (compatibility version 0.0.0, current version 0.0.0)
    @rpath/mongoc_embedded.framework/mongoc_embedded (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1560.10.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
    /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 61000.0.0)
    @rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftDarwin.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftDispatch.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftFoundation.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftMetal.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 1000.11.42)
    @rpath/libswiftUIKit.dylib (compatibility version 1.0.0, current version 1000.11.42)

Do you have ALWAYS_EMEBED_SWIFT_STANDARD_LIBRARIES set to YES?

I've tested both and the issue occurs regardless.

Which targets/devices/SDKs are you building for?

iOS SDK with iOS 11.0 / iPhone deployment targets

rfdearborn commented 5 years ago

Re: embedding swift standard libraries, that's just w/r/t my actual app target. All of the stitch / mongo frameworks have ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES and I haven't touched that.

rfdearborn commented 5 years ago

I've found I'm able to upload if "Include bitcode for iOS content" under "App Store distribution options" is unchecked during the upload flow. This isn't ideal but I think is ok for now.

jsflax commented 5 years ago

Ah yes, this is a known limitation of the embedded mongo database. I will close this issue for now, and create a release when this is updated. Thanks.

d0hnj0e commented 4 years ago

Any news on this issue? The error is still existent, as it seems...

JonathanDSoto commented 2 years ago

Same problem

tkaye407 commented 2 years ago

This SDK has been deprecated. I would recommend switching to use: https://github.com/realm/realm-swift