How to add FirebaseUI-iOS to an ios project without using CocoaPods? - ios

I am creating an iOS app in which I would like to use FirebaseUI-iOS.
I am currently using Carthage to manage the dependencies.
FirebaseUI-ios does not currently support carthage (issue)
The following information is provided in the README of the FirebaseUI-iOS project.
Otherwise, you can download the latest version of the FirebaseUI frameworks from the releases
page or include the FirebaseUI
Xcode project from this repo in your project. You also need to add the Firebase
framework to your project.
However, I do not know exactly how to add the FirebaseUI project after downloading the release file.
Can someone point out how I can add the FirebaseUI-iOS framework to an iOS project without using CocoaPods?

Related

How to embed local .xcframework to Flutter IOS plugin?

I'm totally new in IOS development, so I only have basic knowledge on how Pod/Podspec, but I don't really know how it works
Basically I have this flutter plugin project that uses external dependency in .aar(android) and .xcframework(iOS). I wanted to embed this .xcframework into my plugin, so I imported the file into my ios plugin directory, and add it in the Framework & Library in xcode.
But when I use the plugin in my app flutter project, the library in .xcframework is not recognized, unless I do the same thing again, which is importing the .xcframework file, and add it to Framework & Library in xcode...
I tried to set the Embed options to Embed & Sign and Embed without Signing, does not work!
Can I just embed the .xcframework in the plugin, so other project can simply add the plugin in the pubspec and works, just like .aar in Android library? Thank you

How to add a framework to iOS library project?

I have very little experience in native iOS development but my current job is to wrap some specific native iOS framework to use it in React Native.
Preliminary data: common React Native tools generate an empty iOS library project and an example iOS app project that utilizes this library.
First I've tried to add the needed framework directly to the example app using CocoaPods - and it works fine, the framework became a part of linked libPods.a file, then if I add
#import MyTargetFramework;
to AppDelegate.m I can access different methods of the framework from it.
Next I switched to my iOS library project, applied the same setup (created a Podfile, added the same pod MyTargetFramework to it), then added the same #import MyTargetFramework to *.m file - but got a build error:
Module 'MyTargetFramework' not found
Also I've noticed that there is no libPods.a for iOS library project, all the pods are merged to a Pods.framework instead.
So my question is - what am I doing wrong? Why does it work for iOS app project, but not for iOS library project? How can I properly link my target framework to my own iOS library? I've already spent some time googling, but found nothing about app vs lib differences from this point.

Integrate Firebase Crashlytics (beta) SDK in iOS project without PODS

I am integrating FrirebaseCrashlytics SDK in tvOS and iOS without cocopods. I downloaded their xcFramework. But I can't use the xcFramework as the project is not compatible so I drag and drop ios-armv7_arm64 framework to project and added Firebase.h and module.modulemap (my project uses both objc and swift). Also, I specified the Firebase.h in the bridging header. I get below error when I build.
Showing Recent Errors Only
/Users/xxxxx/Code/ios/tvOSApplications/App/App/Firebase.h:15:9: 'FirebaseCore/FirebaseCore.h' file not found
Showing Recent Errors Only
/Users/xxxxx/Code/ios/tvOSApplications/App/App/App-tvOS-Bridging-Header.h:27:9: Could not build module 'Firebase'
Multiple problems to address (based on instructions in the README at the base of the distribution:
The zip distribution requires Xcode 11 which supports xcframeworks
The zip distribution only supports iOS. tvOS is only distributed via CocoaPods
All Firebase installations require the xcframeworks in the Analytics folder to also be installed.
I am able to get firebasecrashlytic .framework files without cocopods using Carthage. I copied files to project and it works in iOS project. I am looking for a similar solution for tvOS
Recently I had a similar requirement of supporting Firebase on both iOS and tvOS. As the frameworks are available only on iOS and not on tvOS. I could not integrate Frameworks. So the solution I followed is adding of Source files provided in https://github.com/firebase/firebase-ios-sdk corresponding to the required modules that are needed for enabling Firebase Crashlytics.
This solution worked for me and able to see the crashes. Let me know if you need more information
I got Firebase Crashlytics working for tvOS without Cocoapods or XCFramework bundles. Basically, you just need to bring over the source files, set the header search paths, and set all the required preprocessor macros. You can read the story here.
Thanks for the hint Gangadhar!

Could adding a framework to an iOS project block/hide access to other files in the project?

After adding the Dropbox SDK Framework to my Xcode project (iOS) my project fails to build due to errors shown in image 1 below:
Prior to adding the Dropbox Framework, or reverting to the previous commit, results in the project building and running with out issue. I have also tested the same Dropbox SDK Framework package in a seperate demo project to ensure it is not corrupted - and that demo project builds and runs just fine, accessing the Dropbox SDK as expected.
Is it possible that the Dropbox SDK Framework is hiding or blocking access to the GLKit Framework within my main project?
Or is there something else at play here? The second error shown in screenshot claims the bridging header also 'Failed to import' which is an error I have not seen before, usually it is 'not found'.
The Dropbox SDK Framework is being added by drag-and-dropping into Xcode and checking the copy if needed box. Immediately after adding the Dropbox SDK Framework the project no longer builds and reports these errors.
I am answering my own question for anyone else who might have similar problems. While I did not find the root cause of the problem, I did get around it with the following solution.
I ended up removing all third party frameworks from my project which were:
ResearchKit Framework
Dropbox SDK Framework
Charts Framework
And in addition I removed all the XCode supplied frameworks from the project in the left hand file list: 'Project Title -> General -> Linked Frameworks and Libraries'
I then installed and setup CocoaPods with the project, and used CocoaPods to install and manage my third party frameworks (ResearchKit, Dropbox SDK and Charts)
The project is now able to build and run successfully and has access to the GLKit framework along with all other XCode supplied frameworks, bridging header and Dropbox SDK.
I assume this issue was due to a setting in XCode that was preventing access to GLKit after the Dropbox SDK had been added, and using CocoaPods to manage the integration of the third party frameworks skirted this issue.
If anyone has any further insight I'd be very interested to hear you explanation.

How to update Parse to latest version?

After installing iOS 8 on my iPhone, the app I was working on with Parse v1.3.0 just stopped working.
I want to update my iOS XCode Project to v.1.4.1. However, as I installed Parse using CocoaPods, I am at a lost on how to update the project to v1.4.1 using Parse iOS SDK, as the latest version is not yet available on CocoaPods.
The Parse iOS SDK comes with 3 folders, Bolts.framework, Parse.framework, ParseFacebookUtils.framework. I can only find Parse.framework in my project folder and the rest of the pods files are in a mess. Do I just delete and replace the Parse.framework folder in my current project and what do I do with the Bolts.framework and ParseFacebookUtils.framework?
Would be grateful if anyone can help. Thanks!
It is easier, so long as all active dev projects use the same up-to-date frameworks, to place them in one central area, and then add framework references from within Xcode to that central location. This is what i do, and it works like a charm, without pods.

Resources