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

时间:2016-10-27 09:55:21

标签: react-native

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

在开发后期更改Android软件包名称(特别是如果您需要更长的内容,如com.organisation.propject.app)非常繁琐,我想知道在使用{设置项目时是否有办法设置软件包名称{1}}?

3 个答案:

答案 0 :(得分:16)

注意:它仅适用于RN 0.37,可能只有一个或两个版本,在0.40+中删除了此功能。

您需要指定--package选项:

$ react-native init MyApp --package=com.organization.project.app

答案 1 :(得分:2)

以下对我有用。用您自己的应用名称代替 "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"

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

说明:

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

答案 2 :(得分:0)

对于最近的 react-native 版本,如果您使用的是 react-native cli,请使用以下命令更改用户:

npx react-native init testApp --package=com.organizationname.app

对于博览会,您可以使用:

expo init testApp --android-package com.organizationname.app --ios-bundle-identifier com.organizationname.app