Support for Infer?

From @mackoj on Tue Mar 29 2016 04:11:27 GMT-0400 (EDT)

It’s would be great to have the support for Infer.

Collaboration with Spotify
Moving Fast with Software Verification


Copied from original issue:

From @vasarhelyia on Tue Mar 29 2016 04:21:52 GMT-0400 (EDT)


From @mackoj on Fri Apr 01 2016 04:14:55 GMT-0400 (EDT)

We are working on it at my company !

From @viktorbenei on Fri Apr 01 2016 04:29:18 GMT-0400 (EDT)

Changed the label to mark it as work-in-progress :wink:

From @ataourirt on Fri Apr 08 2016 11:11:05 GMT-0400 (EDT)

Hi @vasarhelyia and @viktorbenei,

I have some issue regarding the implementation of infer step.
It’s really slow to download / install infer on bitrise stack.
And sometimes it even timeout.

65s on my machine
218s on bitrise server

I don’t really understand why it does not compile. When I use the same command on my local machine it worked but not on the bitrise stack, I have a lot of missing framework issues. build.log

1 error generated.
2 errors generated.
While building module 'UIKit' imported from /Users/vagrant/git/Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch:2:
While building module 'CoreText' imported from /Applications/
In file included from <module-includes>:1:
In file included from /Applications/
/Applications/ fatal error: could not build module 'Darwin'
#include <Availability.h>

The step fbinfer-ios-bitrise that I’m working on and the related Test project.

From @mackoj on Tue Apr 12 2016 11:27:16 GMT-0400 (EDT)


How can we request to add some tool to the default VM ?
Can infer be installed by default on the VM ?
Is it better to have two steps one for iOS and one for Android or merge the work into the same step ?



From @viktorbenei on Wed Apr 13 2016 03:48:43 GMT-0400 (EDT)


You can request it as described here:

But please, first make it sure that the step works with the current stacks - on OS X we don’t change the already existing stacks, new tools are only added to new stacks!

From @viktorbenei on Wed Apr 13 2016 03:52:31 GMT-0400 (EDT)

As re:two-or-one-step : it’s up to you.

In general you should keep it in one step if the step inputs are fairly trivial.

If the inputs are significantly different in case of iOS and in case of Android then you should split it to two steps, as that’ll make it easier for the users to configure the step (it’s not really a good user experience if you have to skip a lots of irrelevant inputs).

From @mackoj on Thu Apr 14 2016 08:14:29 GMT-0400 (EDT)

@viktorbenei Thanks for the responses.

From @mackoj on Wed Apr 20 2016 04:50:04 GMT-0400 (EDT)

Android version is OK ->
@ataourirt still have issues with infer for iOS in some case it’s just crash clang so after the android version is valid we will continue work on the iOS one and try to at least have a good understanding on why it crash and give some documentation to get around it.

From @viktorbenei on Wed Apr 20 2016 04:51:04 GMT-0400 (EDT)

That’s awesome, thanks for the contribution and let us know if we can help with anything!

From @mackoj on Fri Apr 22 2016 09:52:50 GMT-0400 (EDT)

We cannot correctly test infer on your stack because it takes more than 10 min to integrate. So we are waiting for our sale team to contact your in order to order a pro-plan.

From @viktorbenei on Fri Apr 22 2016 09:54:34 GMT-0400 (EDT)

If you want to we can bump your build limit for the time of testing.

From @mackoj on Fri Apr 22 2016 09:57:55 GMT-0400 (EDT)

Yes, thanks it will help a lot.
My account on bitrise is mackoj

From @viktorbenei on Fri Apr 22 2016 09:58:28 GMT-0400 (EDT)

And you’re the Owner of the app, right?

From @mackoj on Fri Apr 22 2016 09:59:42 GMT-0400 (EDT)

Yes, I fork a test app for theses tests.

From @viktorbenei on Fri Apr 22 2016 10:00:10 GMT-0400 (EDT)

Just activated a new two week trial on your account :wink:

From @mackoj on Fri Apr 22 2016 10:02:23 GMT-0400 (EDT)


FYI Infer works great on Bitrise for Android. The trick is to manually compile a linux x64 release. Then create a bitrise job to download the release on demand & cache the download. For executing infer, the infer gradle plugin is used.

1 Like

Awesome, thank you for the info @bootstraponline! :wink: