在设置react-native项目时使用特定的包名称

Ann*_*zer 14 react-native

使用react-native init MyAppAndroid和iOS 创建反应原生应用程序时,包名称会自动设置为com.myapp.

com.organisation.propject.app在开发后期更改Android软件包名称(特别是如果你需要更长的东西)是非常繁琐的,我想知道在设置项目时是否有办法设置软件包名称react-native init

Mic*_*nov 20

注意:它仅在RN 0.37中工作,可能只有一个或两个版本,在0.40+中删除了此功能.

您需要指定一个--package选项:

$ react-native init MyApp --package=com.organization.project.app
Run Code Online (Sandbox Code Playgroud)

  • 在 RN 3.1.0 中,未知选项 `--package' (3认同)
  • @ShukarullahShah是的:[不能设置包名#12721](https://github.com/facebook/react-native/issues/12721) (2认同)
  • 它对我不起作用。如果我像这样使用 $react-native init MyApp --package=com.organization.myapp 那么它会创建像 com.myapp 这样的包名称 (2认同)
  • 这不适用于“react-native”:“0.64.2” (2认同)

cob*_*boy 7

下面的内容对我有用。将 替换为您自己的应用程序名称,将 替换"Foo App"为您自己的程序包名称org.newpackage.app

NEW_APP_NAME="Foo App"
NEW_PACKAGE_NAME=org.newpackage.app
OLD_PACKAGE_NAME=org.reactjs.native.example
npx react-native init rndemo && \
  cd rndemo && \
  npx react-native-rename "${NEW_APP_NAME}" -b ${NEW_PACKAGE_NAME} && \
  rm -rf ios/Pods && \
  pod install --project-directory=./iOS && \
  grep -rl ${OLD_PACKAGE_NAME} * | \
    xargs sed -i '.bak' "s/${OLD_PACKAGE_NAME}/${NEW_PACKAGE_NAME}/g"
Run Code Online (Sandbox Code Playgroud)

我创建了一个要点来执行此操作,以交互方式提示输入应用程序名称和包名称。要点稍微复杂一点,因为(在上面的示例中)它最初会创建应用程序fooapp而不是rndemo.

解释:

  1. 创建一个反应本机应用程序。rndemo暂时称为;我们需要知道它的名称,以便我们可以更改它。
  2. 运行react-native-rename将新项目重命名为您指定的名称;这也让我们可以替换包名称。
  3. 删除已安装的可可豆荚并重新安装它们(这样它们就会选择新的文件夹位置等)。
  4. 搜索默认包名称org.reactjs.native.example并将其替换为您的新包名称。目前这只会找到ios/FooApp.xcodeproj/project.pbxproj. 旧project.pbxproj文件将以“.bak”扩展名保存。这一步可能会更好,find . -name project.pbxproj -exec .....但这足以满足我的需求。