Installing binaries on Heroku, specifically FontCustom - ruby

I'm building a web app on Heroku which will allow users to select n number of SVG icons, and package those icons into a font file for them. The core of the app is a project called FontCustom. Using a Gemfile for my project I'm able to install the fontcustom gem, but I'm at a loss on how to install the required binary dependencies fontforge eot-utils ttfautohint indicated in the readme.
1) Is it possible to install these libraries on my Heroku instance?
2) If it is, how do I do it?
Thanks in advance for any assistance. Appreciated.

You can put your custom libraries in bin/ folder in your app, then include them in the environment variables PATH and LD_LIBRARY_PATH when your app start.
Or you can make your own Heroku build-pack. Here is an example of heroku-buildpack-fontforge.
You can see how it works in compile and release steps.

Related

Composer library dependencies not included on web host

I'm using a library management program called Composer on my device. I used it to install a library which it placed in a folder called vendor. My web application works fine locally. However, it gives me a bunch of php include errors even though I uploaded in the same folder hierarchy. I suspect this is because of the composer.json file which signals the required libraries, but I'm not entirely sure.
Any help would be highly appreciated.
This happened to me awhile ago, to fix this. Here is what i've done:
I removed my vendor folder on my working directory on the web host
thru ssh, i've installed composer, and then re-run composer install on my working directory.
after that everything worked

How can I use react-native-fbsdk with build platform?

I am using buddybuild to build our app & I'm not sure how I'm supposed to use the react-native-fbsdk? The docs tell us to put the Library in ~/Documents/FacebookSDK. But for build tools such as Buddybuild (travis, circle, etc...), I'm not sure what we're supposed todo here?
Our app does not use cocoapods, it uses carthage.
Any ideas?
So far the only option would be to install cocoapods & install the dependency from there?
Update:
I found that Carthage supports the swift SDK: https://developers.facebook.com/docs/swift/login
However I don't think the react-native-fbsdk package works with the swift implementation
Related:
https://developers.facebook.com/bugs/110631459337469/
https://github.com/Carthage/Carthage/issues/1183
For those who are not using CocoaPods for any reason, here´s how replicate https://stackoverflow.com/a/45642866/165622 main idea into AppCenter:
First of all, you need to copy the Facebook Sdk files somewhere into your project. In my case I´d put them at {PROJECT}/ios/Facebook
Then you need to create a appcenter-post-clone.sh file at the root of your react-native project (as described here: https://learn.microsoft.com/en-us/appcenter/build/custom/scripts/) making sure to add:
ln -s $APPCENTER_SOURCE_DIRECTORY/ios/Facebook $HOME/Documents/FacebookSDK
Note that the Documents folder already exists there, so need to create it.
Yes, this is an issue which is currently waiting for the patch here bug report, meanwhile, a solution for buddybuild could by creating a symbolic link for the hard-coded path.
For more information regarding post-clone see postclone docs
# File: buddybuild_postclone.sh
# Creating virtual symbolic link for FB SDK for buddybuild
mkdir ~/Documents
ln -s $BUDDYBUILD_WORKSPACE/ios/libs/FacebookSDK ~/Documents/FacebookSDK

Cocoa Pods without workspace?

I have read about a possibility to add CocoaPods to an XcodeProject without getting the xcworkspace file, instead you get a xcodeproj file that you can integrate into your current project. How can I do that? Would love to use the xcodeproj file instead of xcworkspace.. I'm programming in swift (if that makes any difference).
Yes, its possible. But, we need to do few steps to proceed.
Check this Github thread.
The below line in pod.file will not let the client integration process.
install! 'cocoapods', :integrate_targets => false
We can drag and drop the Pods.xcodeproj to the main project
Link the target dependencies and Link Binary with Libraries in Build phases.
Thats it.
You can not do this.
The CocoaPods website guide to using CocoaPods found here directs you to using the .xcworkspace it creates. Several other guides found across the Internet all direct you to use this file indicating that using the .xcodeproj file will now result in build errors.
There is simply no evidence that this is a possibility at all.
From the CocoaPods website guide on using CocoaPods:
Save your Podfile.
Run $ pod install
Open the MyApp.xcworkspace that was created. This should be the file you use everyday to create your app.
More from their website:
Now you can install the dependencies in your project:
$ pod install
Make sure to always open the Xcode workspace instead of the project
file when building your project:
$ open App.xcworkspace
And from the Ray Wenderlich guide regarding using CocoaPods with Swift:
Open the project folder using Finder, and you’ll see that CocoaPods
created a new IceCreamShop.xcworkspace file and a Pods folder in which
to store all the project’s dependencies.
And from an NSHipster article on CocoaPods:
CocoaPods will create a new Xcode project that creates static library
targets for each dependency, and then links them all together into a
libPods.a target. This static library becomes a dependency for your
original application target. An xcworkspace file is created, and
should be used from that point onward. This allows the original
xcodeproj file to remain unchanged.
In older versions of cocoapods it was possible to install and update pods with the option '--no-integrate'. It allows you to create a library project, which could be imported into an existing project (read more). But this option is missing now. I've build a Xcode project for a maven-build with this option earlier. Today I've updated the pods of this project with the newest cocoapods version (1.0.0) but without the '--no-integrate' option and it still works. So eventually there is a way...

How to install Ruby Installer in Azure Websites

I'm using SASS in my application and i'm in the process of migrating to Azure.
I've got my project setup but it's not compiling the SASS. I'm trying to use the Ruby Installer from here http://rubyinstaller.org/downloads/ (Ruby 1.9.3-p551) and I've uploaded this via FTP to D:/home however when I try to install it simply using the command rubyinstaller-1.9.3-p551.exe it doesn't do anything. No error message or anything either.
Any suggestions?
Using the installer won't work because it probably requires an interactive session. What I did was get the Ruby binaries and FTP those to the website. You can find the binaries as as 7zip file on Ruby download page. I followed along this post: Installing Ruby 1.8.7 (and other stuff) manually. The part about zlib is probably outdated because there is a corresponding dll in the zipped archive already. I did download the other mentioned dll though (the iconv dll) and placed it in the Ruby bin folder.
Gem is already bundled in the package so no need to install that separately.
Unfortunately now I'm having difficulties in getting the gulp task to work because it is still saying "ruby and compass must be installed and in path". I set the path in the gulpfile.
You no longer need to depend on Ruby to compile your SASS.
LIBSASS has 100% parity with RUBY SASS, and doesn't come with the Ruby dependency.
If you're using grunt, you can switch over to LIBSASS by editing your gruntfile.js to use
grunt.loadNpmTasks('grunt-sass');
instead of
grunt.loadNpmTasks('grunt-contrib-sass');
You should also update your package.json file accordingly.
You can then get Azure to execute your grunt tasks as explained in this answer.

How CocoaPods' install command works behind the scene to add files to my Xcode project?

I've started using CocoaPods. I like the way it adds files to my Xcode project but I'm curious about writing my own AppleScript to be able to add files to my Xcode project. How I can do that? Any reference would be appreciated?
The Xcode project file format is tough. There are 2 tools that CocoaPods can use to edit them. The Xcodeproj Ruby gem is the first. A lot of other projects such as slather also depend on this gem to deal with the project files. If you have it installed CocoaPods can also use xcproj to add things to your project. This can be installed with Homebrew with
brew install xcproj
It has to be recompiled each time you update Xcode. If you'd like to make a tool that manipulates your project I'd recommend these as your starting point.

Resources