如何在Compose Multiplatform中修改包名与应用名?
针对JetBrains官方模板创建的Compose Multiplatform项目,以下是修改默认包名com.myapplication和应用名My Application的具体步骤:
一、修改包名
1. 重命名Common模块的包结构
在Android Studio中找到common/src/commonMain/kotlin/com/myapplication路径,右键点击myapplication文件夹,选择Refactor -> Rename,输入新的包名(比如com.mynewapp),勾选「Rename directories」和「Search in comments and strings」,点击Refactor完成全局重命名。
2. 更新Android模块配置
- 打开
android/build.gradle.kts,找到defaultConfig块,修改applicationId为新包名:defaultConfig { applicationId = "com.mynewapp" // 其他配置保持不变 } - 检查
android/src/main/AndroidManifest.xml,确认package属性已更新为新包名,同时确保<activity>标签的android:name路径正确(比如.MainActivity或完整包名路径)。
3. 更新iOS模块配置
- 直接打开
ios/Runner.xcodeproj,在Xcode的项目设置General标签下,修改「Bundle Identifier」为新包名; - 或者手动编辑
ios/Runner/Info.plist,找到CFBundleIdentifier字段,将值改为新包名。
4. 校验全局引用
检查所有模块的代码文件,确保导入语句、类引用的包名已全部更新(Android Studio的Refactor工具一般会自动处理,若有遗漏手动修正即可)。
二、修改应用名
1. Android模块
打开android/src/main/res/values/strings.xml,修改app_name字段的内容:
<string name="app_name">My New App</string>
如果项目包含多语言资源文件,需同步修改对应语言目录下的strings.xml。
2. iOS模块
- 在Xcode中打开
ios/Runner.xcodeproj,在项目设置General标签下修改「Display Name」为新应用名; - 或者编辑
ios/Runner/Info.plist,更新CFBundleDisplayName和CFBundleName的值为新应用名。
3. Common模块(若有硬编码)
如果Common模块的Compose UI或业务代码中直接使用了原应用名,需手动替换为新名称。
注意事项
修改完成后,建议执行**File -> Invalidate Caches...**并重启Android Studio,避免Gradle缓存导致的异常;iOS模块修改Bundle Identifier后,需确认签名配置与新Identifier匹配,防止打包或运行报错。
内容的提问来源于stack exchange,提问作者Shoaib Kakal

