I am a RN developer and using 0.62.2 and flipper.
The building process of iOS with flipper is so long almost 3 times than not integrated with flipper.
An empty RN project including Flipper takes roughly 1.5 minutes to build. Can you quantify 3 times longer and elaborate how you came to the conclusion that this is related to Flipper?
Ok, I am sorry to my first question makes confusion.
But I mean, I can see Flipper related libraries are compiled a long time in the iOS production build process.
Also, Flipper related targets have so many warnings... It makes me feel like that this library is unstable.
Please do quantify 'long time', some people mean 10 seconds with that, other hours :).
Note that although these libs are build as part of the production build, they are not included in the build. It is just that, afaik, the default iOS toolchain doesn't allow skipping or caching the builds of those libraries. So the compilation is completely pointless but out of our control.
Approximately, it consumes 5-7 min in entire production build press(about 15m).
Anyway, thank you for your response. I understood :)
@mym0404 I'm sorry to hear that. I'm not an iOS dev, so I can't give you any practical advice, but it sounds that the build process isn't very optimal in that case. It takes for me a little more than 2 minutes for a production build on my test project, and ~20 seconds for a subsequent production build, so it sounds that your production build process involves some other expensive steps that aren't necessary? (at least not for the Flipper libraries?).
Hey - for comparison - these two apps have similar build settings. the former not having flipper.
Initialize job --- took: 0.07848333333333334 minutes
Install Apple certificate --- took: 0.031183333333333334 minutes
Install Apple provisioning profile --- took: 0.013033333333333333 minutes
Checkout caltex-frontend-app@development to s --- took: 0.2001 minutes
Install build scripts --- took: 0.0489 minutes
Select Node.js Version v2 --- took: 0.08923333333333333 minutes
Pre Build Script --- took: 0.0111 minutes
Generate source map --- took: 1.7998333333333334 minutes
Copy source map file to staging --- took: 0.004066666666666666 minutes
Tag build --- took: 0.012166666666666666 minutes
Set Xcode path --- took: 0.00665 minutes
Determine project file path --- took: 0.0035833333333333333 minutes
Determine signing style and pods update --- took: 0.02811666666666667 minutes
Pod install --- took: 5.6477 minutes
Set Bundle version --- took: 0.026866666666666667 minutes
Update Xcode build settings --- took: 0.0237 minutes
Copy build files to staging --- took: 0.006233333333333333 minutes
Copy symbol files to staging --- took: 0.019866666666666668 minutes
Publish build --- took: 0.07603333333333333 minutes
Publish symbols --- took: 0.2879833333333333 minutes
Create distribution --- took: 0.5260666666666667 minutes
Xcode build (signed) --- took: 0.0030833333333333333 minutes
Install Apple provisioning profile --- took: 0.0032166666666666667 minutes
Install Apple certificate --- took: 0.00355 minutes
Checkout caltex-frontend-app@development to s --- took: 0.007316666666666667 minutes
Finalize Job --- took: 0.019016666666666668 minutes
yarn/npm install --- took: 3.320316666666667 minutes
Xcode build (signed) --- took: 17.196883333333332 minutes
Initialize job --- took: 0.7717166666666667 minutes
Install Apple certificate --- took: 0.2810166666666667 minutes
Install Apple provisioning profile --- took: 0.0517 minutes
Install build scripts --- took: 0.04763333333333333 minutes
Select Node.js Version v2 --- took: 0.13191666666666665 minutes
Pre Build Script --- took: 0.01365 minutes
Generate source map --- took: 2.5033333333333334 minutes
Copy source map file to staging --- took: 0.00515 minutes
Tag build --- took: 0.014583333333333334 minutes
Set Xcode path --- took: 0.00495 minutes
Pod install --- took: 6.83725 minutes
Determine project file path --- took: 0.005116666666666667 minutes
Determine signing style and pods update --- took: 0.06141666666666667 minutes
Set Bundle version --- took: 0.0321 minutes
Update Xcode build settings --- took: 0.018666666666666668 minutes
Xcode build (signed) --- took: 0.0034833333333333335 minutes
Install Apple provisioning profile --- took: 0.00335 minutes
Install Apple certificate --- took: 0.0036666666666666666 minutes
Checkout z-nextgen-app@release/platform to s --- took: 0.009466666666666667 minutes
Finalize Job --- took: 0.00485 minutes
Checkout z-nextgen-app@release/platform to s --- took: 2.6241 minutes
yarn/npm install --- took: 2.5786 minutes
Xcode build (signed) --- took: 43.90396666666667 minutes
i'll run some more experiments and update this post (if it interests you guys)
UPDATE: we got rid of flipper
@akiwarheit Would you be so kind to share how did you get such a nice summary for each build step and it's time?
We document here on how to make the inclusion in CI optional: https://fbflipper.com/docs/troubleshooting/#disable-flipper-on-ci-builds-ios. Thanks for the pointers!