Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何更改;捆绑标识";你是本地人吗?_Ios_Xcode_React Native - Fatal编程技术网

Ios 如何更改;捆绑标识";你是本地人吗?

Ios 如何更改;捆绑标识";你是本地人吗?,ios,xcode,react-native,Ios,Xcode,React Native,在启动一个新的react原生项目时,xcode项目将获得捆绑包标识符“org.reactjs.native.example.XYZApp”。XYZ是我真实项目名称的占位符 有没有办法在本机端更改此捆绑包标识符?当然,我可以在XCode中更改它。但这是不安全的,因为当react native重新创建xcode项目时(这可能随时发生),以及重建项目时,它可以被覆盖 不幸的是没有。事实上,我们今天只是在Facebook上讨论这个问题。 目前最好的计划是在升级时选择“d”选项,以验证文件,然后再允许覆

在启动一个新的react原生项目时,xcode项目将获得捆绑包标识符“org.reactjs.native.example.XYZApp”。XYZ是我真实项目名称的占位符


有没有办法在本机端更改此捆绑包标识符?当然,我可以在XCode中更改它。但这是不安全的,因为当react native重新创建xcode项目时(这可能随时发生),以及重建项目时,它可以被覆盖

不幸的是没有。事实上,我们今天只是在Facebook上讨论这个问题。


目前最好的计划是在升级时选择“d”选项,以验证文件,然后再允许覆盖。

根据您使用的react本机版本,在两个平台(android和ios)上都有大量文件需要更改

要编辑的文件列表: 国际标准化组织
  • [application_build_scheem].plist(这是一个dict/xml文件,其中包含默认情况下使用的键,前提是未向项目添加任何更改(项目的react native cli init类型)
  • 安卓
  • strings.xml(更改应用程序名称键值)
  • manifest.xml(更改包属性)
  • build.gradle(更改应用程序ID值)
  • MainActivity.java(更改java类包)
  • MainApplication.java(更改java类包)
  • 值得一提的是,有一个npm模块()可以实现上述所有功能;使用它可以让生活变得轻松

    更新(2019年3月6日) 更新文件夹路径:


    我们还需要更改文件夹路径以匹配新名称--将
    com.oldName
    更改为
    com.newname.mobile
    ,然后将文件夹路径从
    app/src/java/com/oldName/
    更改为
    app/src/java/com/newname/mobile/

    对于那些希望用简单的方法实现这一点的人,我创建react-native-app id,它将是基本的ally编辑提到的文件。react-native ci工具实际上分叉了我的代码,生成了一个现已过时的react-native应用程序id,该id已修复,无法与最新的react-native一起使用。但是,我的将


    使用起来非常简单,只需
    react native app id com.foo.bar

    即可更新iOS捆绑包id-

    • 从终端或命令提示符导航到react本机项目文件夹,然后进入iOS文件夹
    • 输入命令打开ProjectName.xcodeproj
    此命令将在Xcode中打开项目,您需要在其中更新应用程序的捆绑标识信息

    要更新android软件包名称,请执行以下步骤-

    • 更新“android/app/src/main/java/”文件夹中的文件夹结构 基于您的新包名,例如“com/companyName/appName”
    • 更新MainActivity.java文件中的包名称
    • 更新MainApplication.java文件中的包名称
    • 更新/android/app/src/main/AndroidManifest.xml中的包名 文件
    • 更新/android/app/BUCK文件中的包名
    • 更新/android/app/build.gradle文件中的包名

    如果要更改react native项目中的捆绑包标识符,则必须分别更改android和ios端的应用程序标识符

    ios

    在xcode中选择根项目,选择General选项卡,您可以看到Bundle 标识符转换为标识部分,并更改新的捆绑包标识符 用于ios应用程序

    android

  • 转到您的AndroidManifest.xml
  • 只需将光标放在包名称中,不要选择它,只需放置它即可
  • 然后按shift+F6(窗口)/F6(mac),您将获得一个弹出窗口,填写新标识符并选择重命名软件包。它将更改 来自android studio的所有地方

  • 即使使用react native app id,您也必须将文件移动到新文件夹


    我结束了使用npm任务进行升级,首先升级,然后运行重命名命令,将android文件移动到正确的路径,并重新链接,以防万一

    ios/project.pbxproj
    中编辑与项目关联的
    产品捆绑包\u标识符
    使用XCode更安全。

    我知道,对于那些热衷于使用XCode的人来说,在您的react native项目中,在不使用XCode的情况下这样做的问题是:

  • xed ios
    在xcode中打开ios文件夹
  • 单击左上角的图标(
    项目导航器
  • 单击左侧面板中的根项目
    ProjectName
  • 在中心视图中,单击
    General
  • identity
    下,更改捆绑标识

  • 我有一个更低调的解决方案,我一直在使用。这不是上述解决方案的替代品,但简单地说,这是另一种方法。我只在iOS上测试过,但我认为它也适用于Android

    我注意到,在大多数情况下,创建的项目都会有一个com.xyz.something,类似这样的东西

    org.reactjs.native.example.abcyourprojectname-extras
    
    我意识到,我不必检查每个文件夹(也不必使用Xcode),只需搜索(在Visual Studio代码中,打开项目文件夹)

    这将列出所有具有捆绑包标识符的文件。只需将其更改为您首选的捆绑包标识符,仅此而已。这样,即使明天有任何文件更改或格式更改或其他情况,搜索仍将是一致的做法


    (同样,这是一个低调的解决方案,但似乎对我有效)

    我们是否仍然无法在React项目中的任何位置指定ios捆绑包id?如果我希望Android软件包名称为com.foo.bar.Android,ios捆绑包id为com.foo.bar.ios,该怎么办?提交PR非常简单,只需在process ios/Android.Coul的单个调用中检查一些参数d被称为react native app id com.foo.bar——忽略与此相关的问题
    org.reactjs.native.example