Phonegap; Does the developer app support 3rd party plugins? - ios

I'm trying to add the 3rd party plugin; BarcodeScanner to my project and have done successfully. When building the final app it works fine.
However is there any way to add this plugin to allow the iOS 'PhoneGap' app without having to build the project?
I've tried CLI to add the plugin and also have added the plugin to my config.xml; I've also looked on google and cannot find an answer. Some people say you can and others say you can't.
Thanks
bump

PhoneGap App is essentially a cordova app with a fixed set of plugins installed. The app is capable of downloading and executing the css/html/javascript parts of a Cordova application. However, It is not possible to install a plugin that includes native parts over-the-air.

Related

Installing iOS Facebook SDK without using CocoaPod

I'm following this official documentation to install FB SDK and trying to integrate it with my React Native project: https://developers.facebook.com/docs/ios/getting-started/ , so that I can show a Facebook share dialog in my app.
However, one of the steps requires to use CocoaPod to get the libraries. My React Native project doesn't work well with CocoaPod, I want to avoid it as much as possible. Is there a way to install the libraries manually without using CocoaPods?
Much appreciated if you can point me to some documentation or tutorials. Thanks!
You can download the entire iOS SDK (outside of Cocoapods) by going to bottom of this page:
https://developers.facebook.com/docs/ios/componentsdks
There also seems to be a Reactive Native-focused tutorial found here, where it looks like you can use npm install and react-native link.

Manually Link React Native Library (FB SDK) for iOS on Linux

Is it possible to manually link a library in a react native app when developing on a Linux (Ubuntu) device without manually building the app (I am using the Expo client to test and debug). Because I am on a Linux device, I do not have XCode, and all of the instructions I have found only show how to link libraries using XCode, and they all seem to assume that I have built the app already, or give instructions for building the app (which don't apply to me).
The reason I am asking is I am trying to test the FB login button in my app, but after installing and linking the react-native-fbsdk library, opening the login page in my app results in an error: Invariant Violation: Native component for "RCTFBLoginButton" does not exist". The closest/simplest answer I have found so far seems like it should be the answer in this question, but again it requires XCode, and I'm not sure how to emulate those commands in the command line (or whatever way they can be done).
When using expo, you should use their facebook implementation.
I had a lot of trouble using the login with fbsdk, and the expo sdk is doing the job quite easier.

React native link Ejecting

I tried searching in previous questions, but I did not find it. I made the mistake of using Create React Native App projects. I am trying to do react native link. I did npm i --save. I get an error
react-native link can not be used in Create React Native App projects. If you need to include a library that relies on custom native code, you might have to eject first. See https://github.com/react-community/create-react-native-app/blob/master/EJECTING.md for more information.
I read this and sadly I am completely at a lost. I am using visual studio code and not xcode.
The error is exactly as it states. You cannot link assets and libraries that require linking unless you eject the project from Create React App and get the native project files. Ejecting gives you the native code and with that, you can use Xcode to link libraries with native code.
Create React App is built on Expo, which aims to allow you to develop apps, especially iOS apps, on any platform. But Expo comes with its restrictions due to the very nature of what it accomplishes.
Thus, the problem arises when you want to link platform dependent libraries that require Xcode in iOS's case. Xcode is the proprietary - and really, the only way, to build Apple-based projects that require external libraries because they require APIs and environments only available with it. This was one the huge reasons Expo arose, to allow people to build apps with React Native without having Xcode, but it has its limitations.
So, you cannot use a library that requires linking with native code if you do not have Mac OS because APIs and tools needed for it are only offered on Mac OS.

Cordova iOS app

I'm trying to create a Cordova app for learning purposes to deploy to my iPhone 5 for personal testing.
For the life of me however I can't seem to understand what I have to do. I have Xcode installed as all the tutorials have mentioned. How do I create a provisioning profile (with a free developer account)? How do I sign my device?
Nothing I've found online seems to explain in clearly, or for beginners such as myself.
Also, is there a way to create all of this but not use Xcode as my IDE for developing my app?
You don't need to use XCode to develop your Cordova app, as the app is just CSS, JavaScript, and HTML. I like to use WebStorm, but you can use whatever suits you. However, in order to deploy your app to a device, you do need XCode. Here's a link to an answer for a similar question. This is in regards to XCode 7 and I'm not sure what version you have, or if this still holds for XCode 8.
You only deploy after you do a build for iOS with Cordova, by running $ cordova build. Here is a link to Cordova's docs.

How to conditionally load plugins in PhoneGap / Cordova

I have an app built on Cordova 3.3 running this phonegap-estimote plugin.
All works great on iOS 7 devices, but will crash on startup for any version previous.
I've tried using window.device.version on DeviceReady to bypass calls related to the plugin, but I think the app crashes on plugin initialization.
So my question: is there a way to conditionally load a plugin or prevent it from initializing?
This is Wojtek Borowicz, I'm a community evangelist in Estimote.
Please note that Estimote SDK, for which the referenced PhoneGap plugin was built, is only compatible with iOS 7. You can however set some code within your libraries and the CoreLocation from 'required' to 'optional'

Resources