Skip to content

Commit

Permalink
* fix the error caused by different packageName and applicationId (#284)
Browse files Browse the repository at this point in the history
  • Loading branch information
lomanyong committed Nov 29, 2016
1 parent 722b51c commit aa4d9f9
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
2 changes: 1 addition & 1 deletion freeline_core/gradle_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -983,7 +983,7 @@ def fix_package_name(config, manifest):
return target_manifest_path

if manifest and os.path.isfile(manifest):
Logger.debug('find app has debug package name, freeline will fix the package name in manifest')
Logger.debug('find app has a different application id, freeline will fix the package name in manifest')
content = get_file_content(manifest)
result = re.sub('package=\"(.*)\"', 'package=\"{}\"'.format(config['package']), content)
Logger.debug('change package name from {} to {}'.format(config['debug_package'], config['package']))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ class FreelineInitializer {
projectDescription.build_tools_directory = FreelineUtils.joinPath(projectDescription.sdk_directory, 'build-tools', projectDescription.build_tools_version)
projectDescription.compile_sdk_version = project.android.compileSdkVersion.toString()
projectDescription.compile_sdk_directory = FreelineUtils.joinPath(projectDescription.sdk_directory, 'platforms', projectDescription.compile_sdk_version)
projectDescription.package = packageName
projectDescription.debug_package = packageName
projectDescription.package = packageName // package -> the package name in the manifest file of main module
projectDescription.debug_package = project.android.defaultConfig.applicationId // applicationId -> debug_package
projectDescription.main_manifest_path = project.android.sourceSets.main.manifest.srcFile.path
projectDescription.launcher = launcher
projectDescription.apk_path = apkPath
Expand All @@ -59,8 +59,14 @@ class FreelineInitializer {
projectDescription.android_gradle_version = getAndroidGradleVersion(project)
projectDescription.use_jdk8 = isUseJdk8(projectDescription.android_gradle_version as String)

if (packageName == null || packageName == '') {
projectDescription.package = FreelineParser.getPackageName(project.android.defaultConfig.applicationId as String, projectDescription.main_manifest_path as String)
if (FreelineUtils.isEmpty(packageName)) {
projectDescription.package = FreelineParser.getPackage(projectDescription.main_manifest_path as String)
if (FreelineUtils.isEmpty(projectDescription.package as String)) {
projectDescription.package = projectDescription.debug_package
}
}

if (FreelineUtils.isEmpty(projectDescription.debug_package as String)) {
projectDescription.debug_package = projectDescription.package
}

Expand All @@ -69,16 +75,18 @@ class FreelineInitializer {
invalidFlavor = false;
}

boolean applicationSuffixAdded = false
project.android.applicationVariants.each { baseVariant ->
if (productFlavor) {
if (productFlavor.equals(baseVariant.flavorName)) {
invalidFlavor = false;
}
}
def buildType = baseVariant.buildType;
if ("debug".equalsIgnoreCase(buildType.name)) {
if (!applicationSuffixAdded && "debug".equalsIgnoreCase(buildType.name as String)) {
if (buildType.applicationIdSuffix) {
projectDescription.debug_package = projectDescription.package + buildType.applicationIdSuffix
projectDescription.debug_package = projectDescription.debug_package + buildType.applicationIdSuffix
applicationSuffixAdded = true
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,21 @@ class FreelinePlugin implements Plugin<Project> {
FreelineUtils.addNewAttribute(project, 'apk_path', defaultApkPath)
}

// find the correct application id
def mergedApplicationId = variant.mergedFlavor.applicationId
if (mergedApplicationId) {
def description = FreelineUtils.readProjectDescription(project)
if (mergedApplicationId != description['debug_package']) {
println "find new application id: ${mergedApplicationId}"
//FreelineUtils.addNewAttribute(project, "debug_package", mergedApplicationId)
if (variant.buildType.applicationIdSuffix) {
FreelineUtils.addNewAttribute(project, "debug_package", mergedApplicationId + variant.buildType.applicationIdSuffix)
} else {
FreelineUtils.addNewAttribute(project, "debug_package", mergedApplicationId)
}
}
}

// add addtional aapt args
def publicKeeperGenPath = FreelineUtils.joinPath(FreelineUtils.getBuildCacheDir(project.buildDir.absolutePath), "public_keeper.xml")
project.android.aaptOptions.additionalParameters("-P", publicKeeperGenPath)
Expand Down

0 comments on commit aa4d9f9

Please sign in to comment.