Xcode: Module not found in embedded framework - ios

I dragged a .xcodeproj of a framework to top of my project, and embed the .framemork file, when I build the project, I'm getting error No such module in one of the files of the framework(the modules it can't find are Cocoapods libraries), but if I switch Scheme to the framework's, it builds successful, if I switch back to my project, it throws the same error in the framework.
I attached images below, you can also see that there are two different targets on the images.

Go to your Project Target Settings, under section Frameworks, Libraries and Embedded Content check that your dragged framework is Embed & Sign or Embed without signing

Related

"Do Not Embed", "Embed & Sign", "Embed Without Signing". What are they?. What they do?

We have 3 new options in "Frameworks, Libraries, and Embedded Content" section of Xcode11 Beta for adding libraries.
Xcode Libraries section screenshot
Can anyone explain what they do?
As already stated by #przemyslaw-jablonski, this is similar to what was in Xcode 10, but in only one screen (which I personally like!).
Embedding
Do not embed static frameworks and libraries (linking happens at build time), only shared ones (dynamic linking happens at run time, so they need to be in your bundle).
file frameworkToLink.framework/frameworkToLink will return:
current ar archive: static library, select Do not embed
Mach-O dynamically linked: shared library, select Embed
Signing (only if shared/embedded)
Not required if it already has a proper signature (adhoc doesn't count).
codesign -dv frameworkToLink.framework will return:
code object is not signed at all or adhoc: select Embed and sign
anything else: already properly signed, select Embed Without Signing
Basically in Xcode 10 in project settings (upon clicking on .xcodeproj file, with the blue icon) you had two framework-oriented sections visible - Embedded Binaries and Linked Frameworks and Libraries. Now they are merged into one.
Do Not Embed option is basically Linking given .framework into project.
Embed & Sign and Embed Without Signing is old Embedding option.
I am not entirely sure what is the functional difference between the last two, apart from the fact that framework will or will not be signed during assembly. If you want to know the difference between Linking and Embedding then here you can find SO answer on this.
Pics:
Xcode v11. Frameworks, Libraries, and Embedded Content plus Frameworks and Libraries with Embed vs Do Not Embed
History
Embedded Binaries, Linked Frameworks and Libraries -> Frameworks, Libraries, and Embedded Content
[Xcode pre-v11. Embedded Binaries, Linked Frameworks and Libraries] existed till to Xcode v11 section in General tab
It is a part of Dependency management [About]
Xcode v11 has:
App target - Frameworks, Libraries, and Embedded Content
Framework or App extension target - Frameworks and Libraries
Embedding
Embed
It adds a copy of the framework into your final bundle. After that Dynamic linker :dyld at load or run time tries to find the embedded framework using #rpath[About] If it is not found the error will occur [dyld: Library not loaded]
Embed is a mirror of Build Phases -> Embed Frameworks. Here you can setup bundle's folder and Subpath.
Do Not Embed
Static Linker at compile time tries to copy code from a static library into the executable object file using Build Settings -> Framework Search Paths
Do Not Embed is a mirror of Build Phases -> Link Binary With Libraries. Sign is a mirror of Code Sign On Copy
If you do not add a static framework to this section you will get a compile error[No such module]
Result:
static library
static framework - Do Not Embed
dynamic framework - Embed
*Please note that Embedding has bigger priority than Mach-O Type[About]
Application's Frameworks, Libraries... is Embed and Framework's Mach-O is Static Library - result dynamic framework.
Application's Frameworks, Libraries... is Do Not Embed and Framework's Mach-O is Dynamic Library and - result error dyld: Library not loaded[About]
App's Embed (Dynamic) -> Framework's Mach-O Static - Dynamic
App's Do Not Embed(Static) -> Framework's Mach-O Dynamic - error
[Static vs Dynamic linker]
[When use Link and Embed]
[Vocabulary]
The complete story holyswift
for more details

"Use of unresolved identifier" when adding files to an embedded framework

I have a framework embedded in an iOS app project. It already had some files for some Swift classes added to the framework target, they are listed in its "Compile Sources" build phase, and I can use those classes in the rest of the app when importing the framework.
Now I need to add some more files with classes to that same embedded framework. I added them to the framework's target "Compile Sources" like the other files already there, and in the File Inspector for each of those new files I can see their "Target Membership" is correctly set to the framework.
If I build the app, I also see that in the "Products" folder in the Project Navigator that the MyFramework.framework is also built, but when I try to use my new classes in the app, the build of the app fails because I get an Use of unresolved identifier error message. They are not visible, if I cmd+click on the import MyFramework in top of the file where I have it, the public interface that appears only shows me the classes I had already in the framework but not the new ones I added.
I'm trying to look for a solution for this issue with no success, what could I be missing?

MyClass is unavailable: cannot find Swift declaration for this class

I am building a custom framework in swift.I have builded the framework for all the architecture. I am using Debug-Universal build in my sample app. Now when I run the app, It works fine in the simulator but while running on the device, I am getting the error Breeze is unavailable: cannot find Swift declaration for this class
When I am using Release-Universal it is giving No such Module BreezeSDK
Follow these steps after creating the universal binaries:
Before lipo, you are building .framework packages for the individual architectures.
For each package:
Traverse to abc.framework/Modules/abc
Copy files .swiftdoc
Go into universal abc
Traverse to abc.framework/Modules/abc
Paste the files you copied in step 2
Repeat these steps for all architectures.
Finally your universal framework package path abc.framework/Modules/abc.swiftmodule/ should contain
those files:
arm.swiftdoc
arm.swiftmodule
arm64.swiftdoc
arm64.swiftmodule
i386.swiftdoc
i386.swiftmodule
x86_64.swiftdoc
x86_64.swiftmodule
The Swift compiler needs swiftmodule map files for each architecture.
Follow these steps
Download Bareeze SDK.
Drag and add Breeze.xcodeproj to your project.
Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar.
In the tab bar at the top of that window, open the "General" panel.
Click on the + button under the "Embedded Binaries" section.
Select the top Breeze.framework
Hope this might solve the issue.

Cannot add embedded binaries (other projects) to project dependencies in XCode

I have an XCode workspace created with XCode 6.0.1. It constains 2 (Swift) libraries and one iOS app (Swift) that depends on those 2 libraries. I had stable setup that allowed me to run the iOS app on both iPhone and simulators: The 2 library projects were added as Embedded Binaries (see picture) of the app.
Now, I have XCode 6.1. Recently, I deleted DerivedData folder in ~/Library/Developer/Xcode folder while XCode was running. After that my workspace did not work - the iOS app would fail to compile and I got linker error saying it cannot find the library projects.
I tried to solve it by removing my the 2 libraries from Embedded Binaries of the app project - and I cannot add them back. Clicking + button under Embedded Binaries in project settings displays workspace projects correctly but selecting and adding my library project does not add them to the list of Embedded Binaries. I have solved the linker error by creating new workspace. The app compiles but how it links the libraries is a mystery to me: They are not in listed Embedded Binaries or Linked Frameworks and Libraries not in the Frameworks search path. There appears to be no link between the app and the libraries it needs (and obviously have as it compiles) except that libraries projects are in the same workspace.
Why I cannot add library projects to Embedded Binaries? Is it normal in XCode 6.1 that dependency projects just compile and gets embedded into an app without being listed or linked anywhere?
This is a summary of my answer to the question Xcode won't add “Embedded binary” after deleting “DerivedData”, see the original question and answer for more context and information:
Remove all framework projects from the workspace
Perform a "clean build" and/or remove the "DerivedData"
Add project back into the workspace
Build the project (possibly optional)
In the General tab of the app target click the + under "Linked Frameworks and Libraries", select the framework.
Build and run in the Simulator (there should be no issues building or running)
Build and run for device (this might cause a crash due to the framework not being correctly linked, ignore this crash)
Click the + under "Embedded Binaries", select the framework. This should add it to the project (possible duplicate under "Linked Frameworks and Libraries")
Repeat for all required frameworks
Once building and running (on device) is confirmed you can remove any duplicate (and/or red) frameworks in the Project Navigator or target General tab
Ok, I ran into the same problem as you. After deleting the derived data, I could not re-link my binaries again. I think the reason is because the derived data is where the binaries are written to and linked against in your project.
What I did to solve was to select my Framework as my build target. After building it, the Framework target turned from red to black. I can see in your screenshot it is red, meaning it has not been compiled into a binary and written on disk.
Once I did this, I was able to re-link the Framework to my Project because there was a reference to it on disk. Hope this helps!
Clean your projects & build your framework first. Thereafter you can embed it.
Here is how I solved the problem:
Build the framwork.
Open the build folder and drag built framework into the app project (so it uses the path to DerivedData).
Add the framework to the list of embedded frameworks.
In the Finder, do a Show Contents on the app's xcodeproj file, then open project.pbxproj in your favorite text editor.
Find the line with the long DerivedData path. Change it so there is no name, the path is the framework name, and source tree is BUILT_PRODUCTS_DIR
Xcode should notice the change and the library in the app project will be black instead of red and will now build and run properly.
I have a very similar issue and fixed it just last night. Decided to come back to this thread and offer my workaround, as rjstelling's solution above did not help my case.
I have a workspace that contains two frameworks and one application. The App was making use of both frameworks happily for a while until I got hit by a mysterious compile eror where it decided that adding a property access to an instance variable called "cube" of a class type found in one of the framework, made access to "_cube" impossible (complaining it was not declared, while it had actually worked previously in a setter method).
Long story short, after a clean, somehow the workspace/app project lost track of the embedded framework of my iOS 8+ project. Removing the embedded framework was the last straw in that line of failure, causing my project to no longer allow be to select any frameworks for embedding.
Reverting the project & workspace to an earlier version did not get rid of the voodoo.
I ended up adding the to-be-embeded framework projects in the main app project (as files) and introduced target dependencies on the frameworks.
I was then able to re-embed the frameworks and link.
As for the _cube thing, I had to specify a getter for the property and #synthesize the property to a different name. I dont have an explanation for this one.
It's probably because your framework is a separate project and not a separate target. Try watching carefully Session 416: Building a Modern Framework at around minutes 34-36. It will show you how to set it up correctly.
This makes it a bit confusing if you wanted to share a framework across multiple projects by the way

iOS app with framework crashed on device, dyld: Library not loaded, Xcode 6 Beta

This crash has been a blocking issue I used the following steps to reproduce the issue:
Create a Cocoa Touch Framework project
Add a swift file and a class Dog
Build a framework for device
Create a Single View application in Swift
Import framework into app project
Instantiate swift class from the framework in ViewController
Build and run an app on the device
The app immediate crashed upon launching, here is console log:
dyld: Library not loaded: #rpath/FrameworkTest03.framework/FrameworkTest03
Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
Reason: image not found
I have tried to build on iOS 7.1 and 8.0 devices, they both have the same crash. However, I can build an app and run on the simulator fine. Also, I am aware that I can change the framework to form Required to Optional in Link Binary With Libraries, but it did not completely resolve the problem, the app crashed when I create an instance of Dog. The behavior is different on the device and simulator, I suspect that we can't distribute a framework for the device using a beta version of Xcode. Can anyone shed light on this?
In the target's General tab, there is an Embedded Binaries field. When you add the framework there the crash is resolved.
Reference is here on Apple Developer Forums.
For iOS greater than or equal to 8
Under the target's General tab, in the Embedded Binaries section add the framework. This will copy the framework into the compiled so that it can be linked to at runtime.
Why is this happening? : because the framework you are linking to is compiled as a dynamically linked framework and thus is linked to at runtime.
** Note:** Embedding custom frameworks is only supported in iOS > 8 and thus an alternative solution that works on older versions of iOS follows.
For iOS less than 8
If you influence this framework (have access to the source code/build process) you may change this framework to be statically linked rather than dynamically linked. This will cause the code to be included in your compiled app rather than linked to at runtime and thus the framework will not have to be embedded.
** How:** Under the framework's Build Setting tab, in the Linking section, change the Mach-O Type to Static Library. You should now not need to include the framework under embedded binaries.
Including Assets: To include things such as images, audio, or xib/nib files I recommend creating a bundle (essentially a directory, more info here bit.ly/ios_bundle) and then load the assets from the bundle using NSBundle.
Just dragging the framework into your project isn't going to be good enough. That is like being in the same ballpark but not being able to find your kids. Follow these steps:
1) Create your framework
Develop your framework.
Once your development is complete, COMMAND+B build your framework and ensure you receive "Build Succeeded".
2) Access your framework
Once your framework project successfully builds it will then be ready for you to access in your Products folder in your project.
Right click on your .framework and select "Show in Finder".
3) Place framework in your project
Drag and drop the .framework from your Finder window to your app project's "Framework" folder.
4) Configure app project for framework
Select the top level in your project
Choose your target
Go to "Build Phases", then "Link Binary with Libraries", and ensure that your framework is included with optional selected.
Still in "Build Phases", go to the upper left and select the + button. In the drop down choose "New Copy Files Phase".
Scroll down to the new "Copy Files" section and ensure that you set Destination to "Frameworks". Leave the subpath empty. Then click the + button at the bottom left.
You will be presented with your project hierarchy. Scroll down to the "Frameworks" folder that you added the framework to in step 3, or search for it in the search bar at the top. Select your framework and click "Add".
Ensure that your framework is included with "Code Sign On Copy" selected.
5) Clean, then run your project
COMMAND+SHIFT+K
COMMAND+R
Firstly Try to build after Command+Option+Shift+K .If still fails then do below steps.
If anybody is facing this error in Xcode 8 then change your framework status to Optional instead of Required under the General Tab of your target.
I created a framework using Swift3/Xcode 8.1 and was consuming it in an Objective-C/Xcode 8.1 project. To fix this issue I had to enable Always Embed Swift Standard Libraries option under Build Options.
Have a look at this screenshot:
I had to (on top of what mentioned here) add the following line to Runpath Search Paths under Build Settings tab:
#executable_path/Frameworks
I got same kind of issue in iOS 9.x version
ISSUE IS: App crashes as soon as I open the app with below error.
dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications
Referenced from: /var/containers/Bundle/Application/######/TestApp.app/TestApp
Reason: image not found
I have resolved this issue by changing Required to Optional in Linked Frameworks and Libraries for UserNotifications.framework framework.
You need to add the framework to a new Copy Files Build Phase to ensure that the framework is copied into the application bundle at runtime..
See How to add a 'Copy Files build phase' to my Target for more information.
Official Apple Docs: https://developer.apple.com/library/mac/recipes/xcode_help-project_editor/Articles/CreatingaCopyFilesBuildPhase.html
If you're using Xcode 11 or newer:
Navigate to the settings of your target and select General.
Scroll down to Frameworks, Libraries and Embedded Content.
Make sure the Embed & Sign or Embed Without Signing value is selected for the Embed option if necessary.
runtime error: dyld: Library not loaded: #rpath/<some_path>
It is a runtime error that is caused by Dynamic Linker
dyld: Library not loaded: #rpath/<some_path>
Referenced from: <some_path>
Reason: image not found
The error Library not loaded with #rpath indicates that Dynamic Linker cannot find the binary.
Check if the dynamic framework was added to the front target General -> Frameworks, Libraries, and Embedded Content (Embedded Binaries). It is very simple to drag-and-drop a framework to project with Copy items if needed[About] and miss to add the framework as implicit dependency in
Frameworks, Libraries, and Embedded Content(or check in Add to targets). In this case during compile time Xcode build it as success but when you run it you get runtime error
Check the #rpath setup between consumer(application) and producer(dynamic framework):
Dynamic framework:
Build Settings -> Dynamic Library Install Name
Application:
Build Settings -> Runpath Search Paths
Build Phases -> Embed Frameworks -> Destination, Subpath
Framework's Mach-O file[About] - Dynamic Library and Application's Frameworks, Libraries, and Embedded Content[About] - Do Not Embed.
Dynamic linker
Dynamic Library Install Name(LD_DYLIB_INSTALL_NAME) which is used by loadable bundle(Dynamic framework as a derivative) where dyld come into play
Dynamic Library Install Name - path to binary file(not .framework). Yes, they have the same name, but MyFramework.framework is a packaged bundle with MyFramework binary file and resources inside.
This path to directory can be absolute or relative(e.g. #executable_path, #loader_path, #rpath). Relative path is more preferable because it is changed together with an anchor that is useful when you distribute your bundle as a single directory
absolute path - Framework1 example
//Framework1 Dynamic Library Install Name
/some_path/Framework1.framework/subfolder1
Relative path allows you to define a path in a dynamic way.
#executable_path
#executable_path - relative to executable binary which loads framework
use case: Dynamic framework inside Application(application binary path
is #executable_path) or more complex example with App Extension[About] which is a part of Containing App with Dynamic Framework inside. There 2 #executable_path for Application target (application binary path is #executable_path) and for App Extension target(App Extension binary path is #executable_path)) - Framework2 example
//Application bundle(`.app` package) absolute path
/some_path/Application.аpp
//Application binary absolute path
/some_path/Application.аpp/subfolder1
//Framework2 binary absolute path
/some_path/Application.аpp/Frameworks/Framework2.framework/subfolder1
//Framework2 #executable_path == Application binary absolute path <-
/some_path/Application.аpp/subfolder1
//Framework2 Dynamic Library Install Name
#executable_path/../Frameworks/Framework2.framework/subfolder1
//Framework2 binary resolved absolute path by dyld
/some_path/Application.аpp/subfolder1/../Frameworks/Framework2.framework/subfolder1
/some_path/Application.аpp/Frameworks/Framework2.framework/subfolder1
#loader_path
#loader_path - relative to bundle which causes framework to be loaded. If it is an application than it will be the same as #executable_path
use case: framework with embedded framework - Framework3_1 with Framework3_2 inside
//Framework3_1 binary absolute path
/some_path/Application.аpp/Frameworks/Framework3_1.framework/subfolder1
//Framework3_2 binary absolute path
/some_path/Application.аpp/Frameworks/Framework3_1.framework/Frameworks/Framework3_2.framework/subfolder1
//Framework3_1 #executable_path == Application binary absolute path <-
/some_path/Application.аpp/subfolder1
//Framework3_1 #loader_path == Framework3_1 #executable_path <-
/some_path/Application.аpp/subfolder1
//Framework3_2 #executable_path == Application binary absolute path <-
/some_path/Application.аpp/subfolder1
//Framework3_2 #loader_path == Framework3_1 binary absolute path <-
/some_path/Application.аpp/Frameworks/Framework3_1.framework/subfolder1
//Framework3_2 Dynamic Library Install Name
#loader_path/../Frameworks/Framework3_2.framework/subfolder1
//Framework3_2 binary resolved absolute path by dyld
/some_path/Application.аpp/Frameworks/Framework3_1.framework/subfolder1/../Frameworks/Framework3_2.framework/subfolder1
/some_path/Application.аpp/Frameworks/Framework3_1.framework/Frameworks/Framework3_2.framework/subfolder1
#rpath - Runpath Search Path
Framework2 example
Previously we had to setup a Framework to work with dyld. It is not convenient because the same Framework can not be used with a different configurations. Since this setup is made on Framework target side it is not possible to configure the same framework for different consumers(applications)
#rpath is a compound concept that relies on outer(Application) and nested(Dynamic framework) parts:
Application:
Runpath Search Paths(LD_RUNPATH_SEARCH_PATHS) - #rpath - defines a list of templates which will be substituted with #rpath. Consumer uses #rpath word to point on this list
#executable_path/../Frameworks
Review Build Phases -> Embed Frameworks -> Destination, Subpath to be sure where exactly the embed framework is located
Dynamic Framework:
Dynamic Library Install Name(LD_DYLIB_INSTALL_NAME) - points that #rpath is used together with local bundle path to a binary
#rpath/Framework2.framework/subfolder1
//Application Runpath Search Paths
#executable_path/../Frameworks
//Framework2 Dynamic Library Install Name
#rpath/Framework2.framework/subfolder1
//Framework2 binary resolved absolute path by dyld
//Framework2 #rpath is replaced by each element of Application Runpath Search Paths
#executable_path/../Frameworks/Framework2.framework/subfolder1
/some_path/Application.аpp/Frameworks/Framework2.framework/subfolder1
*../ - go to the parent of the current directory
otool - object file displaying tool
//-L print shared libraries used
//Application otool -L
#rpath/Framework2.framework/subfolder1/Framework2
//Framework2 otool -L
#rpath/Framework2.framework/subfolder1/Framework2
//-l print the load commands
//Application otool -l
LC_LOAD_DYLIB
#rpath/Framework2.framework/subfolder1/Framework2
LC_RPATH
#executable_path/../Frameworks
//Framework2 otool -l
LC_ID_DYLIB
#rpath/Framework2.framework/subfolder1/Framework2
install_name_tool change dynamic shared library install names using -rpath
CocoaPods uses use_frameworks![About] to regulate a Dynamic Linker
[Vocabulary]
[Java ClassLoader]
Add the framework in Embedded Binaries
Then Clean and Build.
Surprisingly, not all of the necessary pieces are documented here, at least for Xcode 8.
My case was a custom-built framework as part of the same workspace. It turns out it was being built incorrectly. Based on jeremyhu's last response to this thread:
https://forums.developer.apple.com/thread/4687
I had to set Dynamic Library Install Name Base (DYLIB_INSTALL_NAME_BASE) under Build Settings of the Framework Project and then rebuild it. It was incorrectly set to $(LOCAL_LIBRARY_DIR) and I had to change it to #rpath.
So in the link processing stage in the App Project, it was instructing the host App to dynamically load the framework at runtime from /Library/Frameworks/fw.Framework/fw (as in, the root of the runtime filesystem) rather than path-to-App/Frameworks/fw.Framework/fw
Regarding all the other settings: it does have to be in 3 places in Build Phases, but these are all set at once when you just add it to the Embedded Binaries setting of the General tab of the hosting App.
I did not have to set up an extra Copy Files phase, which seems intuitively redundant with respect to the embedding stage anyway. By checking the tail end of the build transcript we can assure that that's not necessary.
PBXCp /Users/xyz/Library/Developer/Xcode/DerivedData/MyApp-cbcnqafhywqkjufwsvbzckecmjjs/Build/Products/Debug-iphoneos/MyFramework.framework
[Many verbose lines removed, but it's clear from the simplified transcript in the Xcode UI.]
I still have no idea why Xcode set the DYLIB_INSTALL_NAME_BASE value incorrectly on me.
Recently ran into this issue with importing CoreNFC on older iphones (e.g. iPhone 6) and Xcode (11.3.1). I was able to get it to work by
In your Projects, select the target.
Goto General tab on top.
Under the 'Frameworks, Libraries and Embedded Content' section, add the framework (for me it was CoreNFC). Repeat for other targets.
Click on Build Phases on top and expand 'Link Binary with Libraries'.
Make the troublesome framework optional (from required).
This allowed me to compile for older/newer iPhones without making any code changes. I hope this helps other.
My environment: Cocos2d 2.0, Box2d, Objective C
In addition to doing the other answers above I finally went to the General tab and made WatchKit Optional.
In my case the solution was to remove the compiled framework from the Embedded Binaries, which was a standalone project in the workspace, clean and rebuild it, and finally re-add to Embedded Binaries.
If you are using a third-party framework, and using Cocoapods as your dependency manager, try doing a pod install to refresh your pods.
This crash was occurring on a third-party library I was using, so glad the above solution worked for me, hope it works for you!
Resolved for me by unselecting "Copy only when installed" on Build Phases->Embed Frameworks
I had the same issue. I tried building my project with an iPhone that I never used before and I didn't add a new framework. For me, cleaning up worked fine (Shift+Command+K). Maybe it's because I use beta 5 of Xcode 7 and an iPhone 6 with iOS 9 Beta, but it worked.
For any project or Framework project in Xcode that use pods, one easy way to avoid dynamic library (dylb) not to load is to set you pod file to ink in static mode. To do so, just make sure to don't write the following line in your pod file.
use_frameworks!
Once the line deleted from your file which you saved, simply run form the console:
$ pod update
In my case, my project is written by objective-c and in the library there are Swift files. So I changed "Always Embed Swift Standard Libraries" in my project’s Build Settings tab to Yes and it became totally okay.
If have development pod Delete your app from simulator install from pod -> clean - > run again...
The same thing was when I've created a new Configuration and Build Scheme.
So the solution for me was to run
pod install
for this newly created Configuration.
For me, I had to switch the XcodeKit.framework from "Do Not Embed" -> "Embed & Sign"
After trying all the methods available on internet and my own trial and error tricks 100 times. Finally I was able to solve it. – Apeksha Sahu 6 mins ago
Goto iTunes in Mac --> accounts-->Authorize this computer – Apeksha Sahu 5 mins ago
second step.... Goto developer in settings in iPad and iPhone and reindex with identifiers and clear trust computers everything. It worked for me........ ....... After reinstalling Mac OSHigh seria 10.13.15 version from Mac OS seirra beta latest version, to reinstalling Xcode latest version, after updating all certificates. etc etc etc... as many methods as you can think I did. –
Try with changing flag ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES (in earlier xcode versions: Embedded Content Contains Swift Code) in the Build Settings from NO to YES.
Xcode 11
Navigate to settings of your target and select General.
Look for "Frameworks, Libraries, and Embedded Content"
Keep "Do Not Embed" and make sure that all your targets (if you have more than one) have only set it's own framework and not others targets.
In Xcode 11
I was facing the same issue
Changing "Do Not Embed" in General Tab > "Frameworks, Libraries, and Embedded Content" was still resulting the same error.
What did solved for me was adding the Framework in Build Phases Tab > Embed Frameworks section
--Updated---
I observed that in projects built in previous versions of Xcode Embed Frameworks Section is not available when running in Xcode 11, Find the below steps to achieve the solution:
1: First need to add the New Copy Files Phase under Build Phases tab.
2: Second change the name of the added phase to Embed Frameworks
3: Change the destination to Frameworks.
4: Add the framework for which the error occurred.
Although everyone is saying to embed the framework under the Embedded Binaries but still it is not working, because we are missing one important step here.
Here are the two right steps to add the binaries under Embedded Binaries tab :
Remove the framework which is giving the error from the "Linked Frameworks and Libraries" under the General tab.
Now add the removed framework only under the Embedded Binaries tab and that is all one would need to do.
Run it on the device and keep that smile ;)
For SumUp Users, if you are loading the latest SumUpSDK.xcFramework, then you need to make sure that it's set to "Embed & Sign" from the application's General tab of the Target.
i.e. to reverse the above statement (making it easier to understand):
Go to the "Project Navigator" (i.e. the first icon to show all project items etc)
Select your project from the top of the tree.
On the menu in the middle of the page (slightly to the right), select your application under "Targets"
From the top-tab, select "General"
Scroll down to "Frameworks, Libraries and Embedded Content"
Select your Lib from the list
Select "Embed & Sign" from the drop down list next to it.
Clean
Re-Build and run.
I hope this helps.
H
Go to file in xcode -> Workspace settings
Click the arrow next to which appears /Users/apple/Library/Developer/Xcode/DerivedData
Select the Derived data and move it to Trash.
Quite the xcode and reopen it.
Clean the project and run again.
Above steps resolved my issuses.

Resources