ios - 如何更改应用的捆绑ID和应用名称

标签 ios xcode firebase cocoapods plist

我正在开发Swift中的iOS应用程序。我已经下载了Firebase Google Plist文件,目前正在应用中使用Firebase AuthFireDatabase模块。我想将我的应用程序的名称和bundleID从Firebase“Special Sauce”中的当前名称更改为bundleID .com.specialsauce.Special Sauce ,更改为一个新的Firebase名称“Sauce”,其bundleID为 .com。 pizza.Sauce

如何使用当前安装的当前Firebase Google Plist文件和所有最初安装的所有Firebase Pod(我使用Cocoapods安装Firebase)来实现此目的?

最佳答案

我找不到在Firebase中更改应用程序名称的方法,因此我删除了Firebase Google Plist文件,并使用所需的首选名称启动了新应用程序。我还必须更改实际的iOS应用程序名称和bundleID。

在开始此操作之前,请确保在副本上执行此操作,并且已对原始文件进行了备份,因为如果出现任何问题,您将很容易解决。您还想确保在更改名称之前知道项目中最初包含了哪些Pod,因为您将在步骤6中将其全部删除,然后在步骤8中将其重新添加。

开始的目标是将我的应用程序的bundleID从 com.specialsauce.Special Sauce 更改为 com.pizza.Sauce ,这会自动为我提供所需的名称。步骤1-4仅在Xcode中更改应用程序的名称和bundleID。如果您也想在Firebase中进行更改,请按照步骤5进行操作...

如果我的应用程序的bundleID为com.specialsauce。 Special Sauce,我想将最后一部分(应用程序的实际名称)更改为com.specialsauce。 Sauce的第一步是如何更改最后一部分:Special Sauce改为Sauce,这也将为我提供一个新的应用程序名称。

  • 我遵循了这些YouTube指导,其中100%都可以使用change app's name & last part of bundleID

  • 现在,我的应用程序的bundleID为 com.specialsauce.Sauce ,Xcode中应用程序的新名称为“Sauce”。

    如果我想从com更改中间部分。 specialsauce。调味成com。 pizza。介绍第二步和第三步是如何更改中间部分:specialsaucepizza
  • 我进入了应用程序所在的主项目文件夹,将其打开,右键单击蓝色 .xcodeproj 文件enter image description here

    (不是白色的.xcworkspace cocoapod文件),请选择显示软件包内容 enter image description here

    然后双击并打开白色项目。pbxpoj 文件enter image description here

  • (不是project.xcworkspace文件)。
  • 在那里,我按了'command + f'来搜索具有旧名称(specialsauce)的任何东西,并将它们更改为我的新名称(pizza)。一切更改后,我保存并关闭了文件。

  • 我的应用的新bundleID现在为 com.pizza。调味

    假设所有文件都在同一路径(例如mainFolder / XcodeProjectName / allYourFiles)中,那么您应该看不到任何红色项目文件。但是,由于名称更改,您的Pod文件将变为红色,并且您将必须删除它们并重新安装,这在第6步中已说明。
  • 如果您从developers.apple.com获得了iOS证书(即消息传递证书),则项目导航器中可能会出现一些红色错误文件。如果您的项目中有yourAppsName.entitlements证书,则由于名称更改,您将不得不将其删除。转到项目导航器>单击最顶部的Blue Icon>中央控制台左侧,确保您的Target下(不是Project)>选择Build Settings>在搜索框中输入code_signing,您会看到Code Signing Entitlements出现>转到在它的右侧,单击whatName / yourAppName.entitlements,然后将其删除。删除它之前,您可以按左侧的Code Signing Entitlements(代码签名权利),您会看到一个向下箭头,按此箭头将显示调试和Release,并在它们的右侧具有相同的whatName / yourAppName.entitlements。删除第一个后,所有3个都应消失。
  • 要在Firebase中更改应用程序的名称和bundleID,我打开了Xcode项目,找到了Firebase Google Plist文件并将其从项目中删除。我删除了它,因为它仍然使用旧名称。步骤7您将另一个拖回。顺便说一句,无需构建,因为一旦删除文件,您将无法再连接到Firebase。

  • 在开始第6步并从Podfile中删除pod之前,请注意,您需要将它们复制并粘贴到某处,因为在生成新的Podfile之后,您将必须在步骤8中再次添加它们。同样,这非常重要,如果您正在使用Xcode 8.3.3中的旧Pod文件,但是在Xcode 9中更改了bundleID,则必须查找并安装与项目相关的当前Xcode 9 Pod。我只说这是因为这对我尝试将旧的Pod从Xcode 8.3.3重新安装到Xcode 9.1来说是一个头疼的问题。
  • 在进行上述更改之前,我必须删除仍与原始应用程序的名称/ bundleID绑定的所有pod文件。我打开终端,导航到项目所在的文件夹,然后按照此特定顺序执行以下步骤,以删除所有旧的cocoapod文件。我将在下面使用这些说明的链接。

    $ sudo gem install cocoapods-deintegrate

    $ sudo gem install cocoapods-deintegrate cocoapods-clean

    $ rm -rf〜/库/开发人员/ Xcode / DerivedData

    $ 吊舱取消集成

    $ 豆荚清洁

    $ rm Podfile

    $ pod缓存清理-全部

  • 一旦运行了所有命令,cocapods便会从系统中彻底清除,但每次尝试构建项目时,我都会不断获取这些奇怪的3个崩溃日志。原来,我必须重新安装删除的所有可可豆荚。
  • 在执行此操作之前,我去了Firebase,并使用新的项目名称和新的bundleID启动了一个新应用程序,下载了新的.plist文件,并将其拖回到项目中。
  • 然后我打开终端,导航到我的应用所在的文件夹,执行“pod init”,打开Podfile并粘贴到我从第6步中删除的所有pod中,运行“pod install”,然后完成安装,我按建立一切都很好。

  • 我在Xcode和Firebase中更改了我的iOS应用的名称和bundleID!

    这是我上面运行的从我的应用程序擦除所有cocoapod文件的命令的链接。请记住,一旦它们消失,您仍然会遇到构建错误,因为您将不得不使用“pod init”和“pod install”再次重新安装Pod。

    cocoapods deintegrate

    how to remove cocoa pods from a project

    在第二个链接中,我使用了DevGangsta的答案删除了pod文件。获得最高票数的第一个答案对我不起作用。

    更新

    在调试器中更改bundleId之后,对于某些数据模型(例如yourAppName.-temp-caseinsensitive-rename),您可能会看到一个奇怪的名称。您正在专门寻找这个确切的短语-temp-caseinsensitive-rename
    按照this answer进行修复或this answer \

    确保在此更新步骤之后执行clean build(shift + cmmd + k)。出于某种原因,资产文件夹会定期丢失,但是一旦我进行了干净的构建,一切都会正常运行

    关于ios - 如何更改应用的捆绑ID和应用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38977900/

    相关文章:

    iphone - #ifdef 条件未按我希望的方式工作

    iphone - 切换 View 时黑屏

    iOS 动画虚线矩形边框

    ios - Phonegap Build,新的BackgroundJS插件

    ios - 软件导致连接中止。回复中返回错误 :Connection invalid

    angularjs - Angular : ng-bind-html removing ng directives from HTML data fetched from Firebase

    firebase - Flutter Cloud Firestore返回结果

    javascript - 使用 javascript 将产品数据从 Firestore 加载到网页

    ios - iOS 应用程序可以在后台获取 UIPasteboardChangedNotification 吗?

    ios - Xcode 6 中的图标/启动图像表去了哪里?