I'm having trouble adding a Framework I have in my local computer to my Xcode project. My intention is to import it as follows in my code:
import IOBubbles
This is a private framework, and it is not on the internet, CocoaPods, etc. I have tried this, so far:
Attempt 1:
File > Add files to "test-bubbles-project"
Selected directory for the IOBubbles.framework
That did not work.
Attempt 2:
I also tried:
Targets > Build Phases > Link Binary With Libraries > '+'
Add Other
Selected directory for the IOBubbles.framework
Attempt 3:
Then, I tried to go to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks and copy my framework to in there. I then imported from the Developer Frameworks folder. That did not work either.
For all attempts:
However, whenever I used
import IOBubbles
I got an error,
No such module 'IOBubbles'
I've looked at past questions attempting to address the same problem, however, I only found solutions for Xcode 4. I tried similar solutions above, but none of them worked. Please can you suggest how I should go about adding my framework by import IOBubbles, or any alternative which will allow me to use the classes/functions in the framework?
Related
It has been a year since updating so I downloaded AudioKit 4.11.2 yesterday. I built all of the frameworks, including the AudioKit and AudioKitUI xcframeworks.
Then I began playing with the Playgrounds. Right away Xcode tells me the build failed because it can't find the AudioKit frameworks. It appears that the Search Paths that are set in the original project file need tweaking so I set it to "$(inherited)../Frameworks".
Now it builds but still will not run, saying on the import AudioKitPlaygrounds statement that there is No such module AudioKitPlaygrounds.
Odd, because that is the target of the build and it exists in the Derived Data Products folder.
Searching through StackOverflow shows that AudioKit has had similar problems like this in the past but none of the proposed solutions seemed relevant to my situation.
What other tricks are necessary to get the Playgrounds running? Shouldn't it build and run straight out of the box without messing with the project search paths?
My environment is:
macOS 10.15.6
MacBookPro
Xcode 12.0.1
I ran through a similar problem with macOS 10.15.7, XCode 12.1 and AudioKit 4.11.2.
I got the same “No such module AudioKitPlaygrounds” message.
The "Build Active Scheme" option was unchecked in my File Inspector >> Playground Settings, so I checked it, rebuild the "Introduction and Hello World" .playground and it worked.
Edit (04/15/2021): David Thery gave a more complete answer in the following answers.
Also, make sure to:
run 'pod install' + automatically converting to swift5 in XCode
check "Build Active Scheme" as mentioned by Miguel FOR EACH single playgrounds you want to run.
run the playground with the play button in the editor, not the xcode main run button
If you want instead to use AudioKit in another XCode project, only two steps:
download AudioKit and AudioKitUI frameworks from here:
embed them in General > Frameworks, Libraries, and Embedded content, as shown on the screenshot below.
How did you build the frameworks? The assumption when it comes to the paths in other projects (including Playgrounds) is that they have been built via the build_frameworks.sh and build_xcframework.sh scripts in the Frameworks directory.
The end result should be a set of XCFrameworks in that same Frameworks directory, which is in turn referenced by examples and the playgrounds project.
To anyone still experiencing this issue, I just found a really simple solution. I was opening my playground files directly from 'Open Recent'. Problem is, Xcode doesn't automatically look at the parent directory and included files. Just close Xcode and open the AudioKitPlaygrounds.xcodeproj from finder. When you open your playground files from there they should work properly.
Step to reproduce.
I have added all the pod frameworks into my cordova project using XCode, after added, I don't know why the frameworks are whiten as this picture.
So I start to build the project again, the first error said framework not found FirebaseInstallation, I thought the whiten framework is not valid, so I manually add the framework from my frameworks folder which is downloaded from https://firebase.google.com/docs/ios/setup#frameworks and finally become the normal yellow icon.
I rebuild the project, this time the error is framework not found FirebaseCoreDiagnostics. Therefore, I repeat step 2 to add in the framework manually and compile again.
This time the error is also framework not found but it is FirebaseInstanceID. As you can see from my Pods folder above, there is no FirebaseInstanceID framework that I can manually add into my project. I have search online, there is no single file named FirebaseInstanceID.framework exist on the internet. Where can I download it actually?
Furthermore, is it the right way to manually add in all the pod frameworks into my project to solve the error? How can solve this kind of framework not found issue in Xcode? Thanks for any comment.
FirebaseInstanceID.framework is available in several of the folders from the download https://firebase.google.com/docs/ios/setup#frameworks, including FirebaseMessaging.
So, I have been trying to fix this error I am getting over a month now, but with no success. I am currently working on a personal app project in collaboration with one other friend and surprisingly the project compiles perfectly fine on my friend's machine.
I am getting the below error:
"The imported project "C:\Users\divye\Documents\NHSF Xamarin App\packages\Xamarin.Forms.2.5.0.280555\build\netstandard1.0\Xamarin.Forms.DefaultItems.props" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk".
I can't understand why my code will not compile. I have gone through lots and lots of Stack Overflow posts already and tried pretty much all the proposed solutions without any success. As a last resort I am having to post on here.
I have tried the following:
Deleted the project locally from my machine and re-cloned the git repository and then tried running the project
Cleaned the project out and tried rebuilding again
Have spoken with my friend who is also working on the project, and matched my local project set out to his
I have gone into the Xamarin.iOS and Xamarin.Android .csproject files and also manually added in the Import statement for 'Xamarin.Forms.DefaultItems.props'
I have manually checked the folder '$..\netstandard1.0\ folder path to make sure the 'Xamarin.Forms.DefaultItems.props' file physically exists in the folder and it does for both iOS and Android.
Updated all packages in Xamarin Studio for the project to make sure latest versions of the packages are being used
Downgraded the Xamarin.Forms package to see if it could be to do with a bug in the latest package but this does not seem to be the issue.
A suggested fix that worked for my friend was recreating the project to contain the ASP.NET backend for mobile packages. I have tried this as well.
I was initially getting the error on my Mac so I thought I would give it a go on my Windows machine. Same thing happens on there too.
I am stumped at the issue. It is failing to build at all. Neither iOS or Android work.
I am hoping someone from here can help.
Thanks,
Divyesh!
Remove the whitespaces in the pathname of the project!
After updating with Xcode 6.3, I found something strange things with my projects.
Below codes causes parse issue that says "Could not build module 'AgendaFramework'", the AgendaFramework is my custom embedded framework for ios8:
#import MyEmbededFramework;
The error marker looks like this:
The issues is raised during indexing not building. Whole building can be performed successfully without any error or warning. I can build, archive, run on device, deploy, submit to App Store.
However the error marker shows up when I edit the classes that belongs to the extension. The the extension(widget) explicitly linked to the embedded framework. (I know that I don't have to do it when I use #import statement.)
In this state, I could not receive any valid content assistant, very annoying.
After I replace the import statement with old style, the problem was disappeared:
#import <AgendaFramework/AgendaFramework.h>
I have several other projects that have very similar topology with the project which causes this issue, But they are okay. Only one project causes this issue. I compared every detail build settings, I could not find any clue.
I tried:
Delete derived data
Full Clean
Reboot
Any clues are welcomed. Thanks!
It looks like turning on:
Allow Non-modular Includes In Framework Modules solved this issue for me.
Hi this is due to the fact that file which you are making it public in framework header must be public also.
Sometimes this issue can be solved by adding the framework to the same folder as the .xcodeproj file, no subfolders or anything.
Credits to Jonny who points it out as a comment in the question.
Solution that worked for me: diligence in framework header file orientation to system style imports... like #import <CoreXLib/CoreThreads.h> the story:
In my case my framework that I built came from the combination of several code bases as it became apparent that I could reuse some of the general design patterns across that code easer via Framework vs the fragile Xcode project pathnames.
As I built my framework "CoreXLib", I reorganized it into the Cocoa Framework typical of Xcode. I changed my imports from:
#import "CoreTypeAliases.h" // project local style
to
#import <CoreXLib/CoreTypeAliases.h> // system or framework style
appropriately. Several projects that used the CoreXLib.framework which includes the public headers in the lego-folder worked... so I thought I was good to go...
Unfortunately some of the headers that were public did not get fully updated. The classes in the framework built just fine in the local style. All projects using it worked up to this point and then I ran into one that didn't... and the error noted by #jeeeyul
So after finding this thread and finding #kwz 's solution, and not having it do anything in my case, I decided to polish the code up while I was trying to figure this problem out. In the polishing, I found that some of the #imports did not get changed like they should have in the Xcode search and replaces. Time for some hand-jamming...
After fixing all of those references in all of my CoreXLib project headers (not just the public ones, self defense), I dove back into the problem... I took the newly complied CoreXLib.framework over to the errant project that embedded it... and the problem had vanished! I checked the Allow Non-modular Includes... in both the framework project and the project that linked the framework in and both were "No". Flipping both to "Yes" and to "No" made no difference in several tests. The only other change was the #import "..." to #import <CoreXLib/...> modifications.
So sometimes polishing the apple 🍎 knocks the bugs🐞🐞off...
set YES in Build Active Architecture Only in build settings.
It worked for me.
Today I solved this problem by those steps,:
Chose the schema "MyEmbededFramework"
Press [Command + B] to build
From the build phase panel, add "MyEmbededFramework.framework" to Link Binary With Libraries
Try to build your project, the problem may disappear now.
you can try this, it's work for me. delete DerivedData dir that about your project.step by step
Turn off module's in build settings. That may work
I’m following the instructions for Importing Custom Frameworks into Playground, but I still keep getting "No such module” error.
I have tried adding everything in the workspace; a project with just Framework target, project of Cocoa Application with the framework, and just the Framework. I also tried creating a playground in the Application where I imported the framework, I can even import it in other swift file without any problem; but I can’t seem to be able to import it in playground.
Can someone please tell me what I might be doing wrong?
Try building your framework target using a simulator! I had only built mine using the generic device which doesn't work for playgrounds!
Did you ever get it to work? I figured out my issue. The code I was trying to import wasn't in a Framework Target. I had to add a new target to my project of type Cocoa Framework. Then include my source files in that framework, and then finally build that target. Then it worked.
I would like to echo what Reid said:
Try building your framework target using a simulator! I had only built mine using the generic device which doesn't work for playgrounds!
If you've updated to Xcode 12, you also need to make the "Build Active Scheme" box is checked. Select your playground and go to the inspector. The checkbox will be under "Playground Settings"
I've spent for this more than 4 hours. But i've solved it for XCode 10.
You're unable to add any framework into the Playground if there's no target for it the Workspace where the Playground is. So as you using downloaded framework (so am i) — you're doomed to fail with it.
The workable manual could be found here (God bless this guy): https://www.pardel.dev/blog/3rd-party-frameworks-in-xcode-playgrounds
tldr: the easiest way is to:
Download 3rd party framework sources.
Open *.xcodeproj
Add Playground to the Project.
Build project for any iOS simulator by cmd+b (have no idea how to use any macOS frameworks yet).
And it should work (at least it does for me).
I solved my problem with a different solution than Michael Welch's. I had my Xcode derived data setting different than original. Go to Preferences > Locations > Derived Data > Advanced and select Unique. This solved the framework not appearing in playground problem for me.