For anything if you want to know its proper setting all you have to do is:
Recreate the same exact target type from scratch in Xcode.
What I mean by that is, if you want to know the correct settings for an app, then recreate an app from scratch and then go and inspect its settings. If you want to know the default setting for a framework then recreate the dynamic framework from scratch and inspect its settings.
Note: The default settings for an app, vs a framework vs a static library vs other things is different. Also the default value for Release vs Debug is different.
Why is an app vs a framework different?
Because frameworks are dependencies and not the final product. This often means that the app needs different compilation, linkage, stripping setting from another dependency or the main app itself.
Why is Debug vs Release different?
With Debug, the goal is:
- To get the build out fast. This means:
- Don't build for other architectures.
- Don't create a separate dSYM.
- To be able to debug
With a Release build, the goal is:
- Build with most optimizations. Often this reduces speed
- Validate if the build works for other architectures (arm64 vs Intel). This means more time spent to build things.
- Extract out the dSYM (debug symbols) to save on space.
- Don't need to debug, rather just be able to symbolicate crash reports when needed.
Crashlytics
perhaps. – Dozier