A Blazingly Fast way to configure your Bleeding Edge flutter project to be production ready.
Package Rename handles changing 36 fields across 18 files on 6 platforms so you can focus on your awesome project.
For more info see list of changed fields
dev_dependencies:
package_rename: ^1.8.0
You can create configurations by adding package_rename_config
key in:
- Root
pubspec.yaml
file package_rename_config.yaml
file at root of your project or a custom folder in the project
package_rename_config:
android:
app_name: # (String) The display name of the android app
package_name: # (String) The package name of the android app
override_old_package: # (Optional) (String) Use this to delete the old folder structure of MainActivity or to use the existing code with the new package name
lang: # (Optional) (String) The android development language {kotlin(default) or java}
ios:
app_name: # (String) The display name of the ios app
bundle_name: # (String) The bundle name of the ios app
package_name: # (String) The product bundle identifier of the ios app
linux:
app_name: # (String) The window title of the linux app
package_name: # (String) The application id of the linux app
exe_name: # (String) The executable name (binary name) of the linux app
macos:
app_name: # (String) The product name of the macos app
package_name: # (String) The product bundle identifier of the macos app
copyright_notice: # (String) The product copyright of the macos app
web:
app_name: # (String) The title of the web app and PWA
short_app_name: # (String) The short display name of the PWA (Optional, defaults to app_name if not set)
description: # (String) The description of the web app and PWA
windows:
app_name: # (String) The window title & software name of the windows app
organization: # (String) The organization name (company name) of the windows app
copyright_notice: # (String) The legal copyright of the windows app
exe_name: # (String) The executable name (binary name) of the windows app
For full example click here
Execute the command as per your config location:
if config file exists in either pubspec.yaml or root path:
dart run package_rename
OR
if config file exists in a custom folder:
dart run package_rename --path="path/to/package_rename_config.yaml"
or
dart run package_rename -p "path/to/package_rename_config.yaml"
Package Rename supports flavours. You can add flavour specific configurations by adding flavour_name
in configuration key.
package_rename_config-flavour_name:
# ...
For full example click here
And then run the following command:
dart run package_rename --flavour=flavour_name
or
dart run package_rename -f flavour_name
With custom config file location:
dart run package_rename --flavour=flavour_name --path="path/to/package_rename_config.yaml"
The PRODUCT_BUNDLE_IDENTIFIER
's in ios/Runner.xcodeproj/project.pbxproj and macos/Runner.xcodeproj/project.pbxproj have different values for different targets. Like, in my case:
DEFAULT
rocks.outdatedguy.packageRenameExample
rocks.outdatedguy.packageRenameExample.RunnerTests
EXTENSIONS
rocks.outdatedguy.packageRenameExample.Share-Extension
rocks.outdatedguy.packageRenameExample.NotificationServiceExtension
- blah blah blah...
Hence, to properly change the PRODUCT_BUNDLE_IDENTIFIER
without removing the Extension name, make sure all PRODUCT_BUNDLE_IDENTIFIER
's except the DEFAULT ones are enclosed in double quotes (""
).
- PRODUCT_BUNDLE_IDENTIFIER = rocks.outdatedguy.packageRenameExample.Share-Extension;
+ PRODUCT_BUNDLE_IDENTIFIER = "rocks.outdatedguy.packageRenameExample.Share-Extension";
Now you can deploy your production ready app to change the WORLD!