You are going about it in the generally correct way; you do generally want to use Custom Settings for this type of configuration. However, as you have observed, the settings can't be copied into a new org when installed. Furthermore, you can't run "on-install" code. So, basically, you need to do something about this limitation. The two most common design patterns are (a) forcing the user to visit a configuration page if the settings are missing, or (b) providing a set of defaults if no settings are found.
Method A results in users being forced to go to a settings screen, which may be inconvenient at that particular moment. Method B results in an easier time for the users, but they may never configure the app (or even know it can be configured). It's really a matter of personal preference. I would probably choose method B, personally. You can maybe include a little warning message on a VF page if they're using default settings, and invite them to update the settings on a settings page.
You are going about it in the generally correct way; you do generally want to use Custom Settings for this type of configuration. However, as you have observed, the settings can't be copied into a new org when installed. Furthermore, you can't run "on-install" code. So, basically, you need to do something about this limitation. The two most common design patterns are (a) forcing the user to visit a configuration page if the settings are missing, or (b) providing a set of defaults if no settings are found.
Method A results in users being forced to go to a settings screen, which may be inconvenient at that particular moment. Method B results in an easier time for the users, but they may never configure the app (or even know it can be configured). It's really a matter of personal preference. I would probably choose method B, personally. You can maybe include a little warning message on a VF page if they're using default settings, and invite them to update the settings on a settings page.
Hello, is that Answer still relevant in 2022, are these the only options? I am trying to design an App and I need to know the best practices for configuring the app during installation to provide key data relevant to how the app works, I need to provide configuration variables that would affect the metadata created during installation. They would also affect the decision to create and add some buttons in specific object layouts, etc...
You are going about it in the generally correct way; you do generally want to use Custom Settings for this type of configuration. However, as you have observed, the settings can't be copied into a new org when installed. Furthermore, you can't run "on-install" code. So, basically, you need to do something about this limitation. The two most common design patterns are (a) forcing the user to visit a configuration page if the settings are missing, or (b) providing a set of defaults if no settings are found.
Method A results in users being forced to go to a settings screen, which may be inconvenient at that particular moment. Method B results in an easier time for the users, but they may never configure the app (or even know it can be configured). It's really a matter of personal preference. I would probably choose method B, personally. You can maybe include a little warning message on a VF page if they're using default settings, and invite them to update the settings on a settings page.
All Answers
You are going about it in the generally correct way; you do generally want to use Custom Settings for this type of configuration. However, as you have observed, the settings can't be copied into a new org when installed. Furthermore, you can't run "on-install" code. So, basically, you need to do something about this limitation. The two most common design patterns are (a) forcing the user to visit a configuration page if the settings are missing, or (b) providing a set of defaults if no settings are found.
Method A results in users being forced to go to a settings screen, which may be inconvenient at that particular moment. Method B results in an easier time for the users, but they may never configure the app (or even know it can be configured). It's really a matter of personal preference. I would probably choose method B, personally. You can maybe include a little warning message on a VF page if they're using default settings, and invite them to update the settings on a settings page.