Search code examples
iosfirebasecontinuous-integrationcode-signing-certificatefirebase-test-lab

How to handle code signing for ios testing on Firebase Test Lab through CI?


There isn't much documentation regarding the ios side of testing on test lab, especially regarding ci. I am currently trying to set up testing on test lab on ci (bamboo), but not being well versed with all things ios, I have found myself wondering that the best way to go about this is.

First off, signing is a big issue. It seems the easiest way to sign is using a developer cert, but I want to know if either a distribution or enterprise cert would be more appropriate. When trying to sign with either of those I get errors though. Reading about these certs has almost made me confident that they are more geared towards releasing rather than testing. But the fact that they won't be tied to a user is attractive. Which cert is best to use and why?

As for actual implementation, I was considering the fastlane firebase plugin but am not sure if there are other alternatives other than simply using scripts.

Any information would be appreciated.

Update:

We decided to opt to use a standard iOS Developer certificate that was assigned to a general account for our machines. Using this certificate, we were able to sign the resulting build and then used the Firebase Fastlane Plugin to send it over to Firebase. Ideally though, we wanted to sign using an Enterprise or Distribution cert to avoid having a Developer cert exist on our machines, still hoping to hear if anyone knows about how to do this :)


Solution

  • Developer cert is fine. Test Lab is resigning the app anyway when running the tests.

    Some CI systems already provide an integration with Test Lab. If not, you have a few client apps you can consider. In no particular order:

    • gcloud, 1st party support
    • flank, 3rd party test runner with active developer(s)
    • Fastlane, where AFAIK multiple 3rd party plugins are available.