Thanks for the answer @jrose let me give some more details about my project set-up and scenario.
First of all, I create my framework projects as following, File-> New Project-> Cocoa Touch Framework. After project creation, I manually change MacO type to "Static Library" in build settings for both framework targets (A and B ).
AFramework and BFramework projects are inside a workspace called Test.xcworkspace, and my Test App project is not included in Test.xcworkspace.(It is a separate project and it is on the different location)
On the other hand, AFramework links BFramework and adds it to its target dependencies.
For Test.xcworkspace and Test App Project - build system set as legacy on Xcode (not new build system - also Xcode version is 10.1)
With above setup, When I build AFramework project, I can see that AFramework's executable file contains also BFramework's object file as seen below.(Btw, This does not happen when I use New Build System.)
After that, I manually add just A.framework to the Test app project, also I delete all of the files on Derived Data folder in Test.xcworkspace, I import AFramework to the test app project and call any method from both A and B frameworks, when I build the Test App Project it fails as below.(Missing required module BFramework)
But If I don't delete Derived Data folder in Test.xcworkspace It does not fails, strangely XCode finds BFramework from Derived Data folder in Test.xcworkspace project, Is that so strange also for you @jrose?
On the other hand, the same set-up with ObjC works properly even If I delete all files from Derived Data. For this case, I just add public header files from B to A target and set that headers file as public and it works.
So the question is why AFramework cannot find BFamework even if it contains all object files from B when I use Swift (Note that ObjC works properly for that case) and is there any wrong usage in my set-up or there might be any other linker flag that I have to use?
Thanks for help in advance