Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tld domains #44

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,45 +31,45 @@
build/

# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
lib/platforms/android/**/gradle-wrapper.jar
lib/platforms/android/.gradle
lib/platforms/android/captures/
lib/platforms/android/gradlew
lib/platforms/android/gradlew.bat
lib/platforms/android/local.properties
lib/platforms/android/**/GeneratedPluginRegistrant.java

# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
lib/platforms/ios/**/*sync/
lib/platforms/ios/**/.sconsign.dblite
lib/platforms/ios/**/.tags*
lib/platforms/ios/**/.vagrant/
lib/platforms/ios/**/DerivedData/
lib/platforms/ios/**/Icon?
lib/platforms/ios/**/Pods/
lib/platforms/ios/**/.symlinks/
lib/platforms/ios/**/profile
lib/platforms/ios/**/xcuserdata
lib/platforms/ios/.generated/
lib/platforms/ios/Flutter/App.framework
lib/platforms/ios/Flutter/Flutter.framework
lib/platforms/ios/Flutter/Flutter.podspec
lib/platforms/ios/Flutter/Generated.xcconfig
lib/platforms/ios/Flutter/app.flx
lib/platforms/ios/Flutter/app.zip
lib/platforms/ios/Flutter/flutter_assets/
lib/platforms/ios/Flutter/flutter_export_environment.sh
lib/platforms/ios/ServiceDefinitions.json
lib/platforms/ios/Runner/GeneratedPluginRegistrant.*

# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!lib/platforms/ios/**/default.mode1v3
!lib/platforms/ios/**/default.mode2v3
!lib/platforms/ios/**/default.pbxuser
!lib/platforms/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ Change App Package Name with single command. It makes the process very easy and
- [x] Update Product Bundle Identifier in iOS.
- if you have customized CFBundleIdentifier in Info.plist, it will not be updated. You have to update it manually.
- [x] Specify which platform they want to rename the package for.
- [x] Handles Kotlin reserved keywords in package names
- [ ] Windows support

## How to Use?

Add Change App Package Name to your `pubspec.yaml` in `dev_dependencies:` section.
```yaml
dev_dependencies:
change_app_package_name: ^1.4.0
change_app_package_name: ^1.4.1
```
or run this command
```bash
Expand All @@ -25,7 +27,7 @@ flutter pub add -d change_app_package_name
Not migrated to null safety yet? use old version like this
```yaml
dev_dependencies:
change_app_package_name: ^1.4.0
change_app_package_name: ^1.4.1
```


Expand All @@ -42,6 +44,13 @@ To rename only Android:
```
dart run change_app_package_name:main com.new.package.name --android
```
>[!NOTE]
> Kotlin treats is, in, and as keywords, which can conflict with some package names.
> So if your package name is like `com.is.example`
> ```
> package `is`.example
> ```

To rename only IOS:
```
dart run change_app_package_name:main com.new.package.name --ios
Expand Down
3 changes: 1 addition & 2 deletions lib/change_app_package_name.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
library change_app_package_name;

import './android_rename_steps.dart';
import './ios_rename_steps.dart';
import 'platforms/platforms.dart';

class ChangeAppPackageName {
static Future<void> start(List<String> arguments) async {
Expand Down
2 changes: 2 additions & 0 deletions lib/helpers/extensions/extensions.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

part 'kotlin_package_name_escaper.dart';
15 changes: 15 additions & 0 deletions lib/helpers/extensions/kotlin_package_name_escaper.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
part of 'extensions.dart';

extension KotlinPackageNameEscaper on String {
String escapeKotlinKeywords() {
return this
.split('.')
.map((segment) {
if (['is', 'in', 'as'].contains(segment)) {
return '`$segment`';
}
return segment;
})
.join('.');
}
}
3 changes: 2 additions & 1 deletion lib/file_utils.dart → lib/helpers/utils/file_utils.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'dart:io';
part of 'utils.dart';


Future<void> replaceInFile(String path, oldPackage, newPackage) async {
String? contents = await readFileAsString(path);
Expand Down
4 changes: 4 additions & 0 deletions lib/helpers/utils/utils.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'dart:io';


part 'file_utils.dart';
9 changes: 9 additions & 0 deletions lib/platforms/android/android.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import 'dart:async';
import 'dart:io';

import 'package:change_app_package_name/helpers/extensions/extensions.dart';

import '../../helpers/utils/utils.dart';


part 'android_rename_steps.dart';
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import 'dart:async';
import 'dart:io';

import './file_utils.dart';
part of 'android.dart';

class AndroidRenameSteps {
final String newPackageName;
Expand Down Expand Up @@ -71,8 +68,12 @@ class AndroidRenameSteps {
var extension = type == 'java' ? 'java' : 'kt';
print('Project is using $type');
print('Updating MainActivity.$extension');

// Use the extension method to escape Kotlin keywords
var escapedPackageName = newPackageName.escapeKotlinKeywords();

await replaceInFileRegex(
path.path, r'^(package (?:\.|\w)+)', "package ${newPackageName}");
path.path, r'^(package (?:\.|\w)+)', "package $escapedPackageName");

String newPackagePath = newPackageName.replaceAll('.', '/');
String newPath = '${PATH_ACTIVITY}${type}/$newPackagePath';
Expand All @@ -82,10 +83,10 @@ class AndroidRenameSteps {
await path.rename(newPath + '/MainActivity.$extension');

print('Deleting old directories');

await deleteEmptyDirs(type);
}


Future<void> _replace(String path) async {
await replaceInFile(path, oldPackageName, newPackageName);
}
Expand Down
6 changes: 6 additions & 0 deletions lib/platforms/ios/ios.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import 'dart:async';
import 'dart:io';

import '../../helpers/utils/utils.dart';

part 'ios_rename_steps.dart';
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import 'dart:async';
import 'dart:io';

import './file_utils.dart';
part of 'ios.dart';

class IosRenameSteps {
final String newPackageName;
Expand Down
3 changes: 3 additions & 0 deletions lib/platforms/platforms.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

export 'ios/ios.dart';
export 'android/android.dart';
Loading