簡體   English   中英

如何更改 React Native 中的“Bundle Identifier”?

[英]How to change the "Bundle Identifier" within React Native?

啟動一個新的 react-native 項目,xcode-project 獲得了 bundle-identifier “org.reactjs.native.example.XYZApp”。 XYZ 是我真實項目名稱的占位符。

有沒有辦法在 react-native 端更改這個包標識符? 當然,我可以在 XCode 中更改它。 但這並不安全,因為它可以在 react-native 重新創建 xcode-project 時被覆蓋,這可能隨時發生,在重建項目時也是如此。

根據您使用的 react-native 版本,必須在兩個平台(android 和 ios)上更改大量文件

要編輯的文件列表:

IOS

  1. [application_build_scheem] .plist(這是一個 dict/xml 文件,其中包含默認使用的鍵,如果沒有向項目添加更改(react-native-cli init 類型的項目)

安卓

  1. strings.xml(更改app_name鍵值)
  2. manifest.xml(更改屬性)
  3. build.gradle(更改applicationId值)
  4. MainActivity.java(更改java類
  5. MainApplication.java(更改java類

值得一提的是,有一個 npm 模塊( https://www.npmjs.com/package/react-native-ci-tools )可以完成上述所有工作; 使用它,讓生活更輕松。

更新 (6/Mar/2019)

更新文件夾路徑:

我們還需要更改文件夾路徑以匹配新名稱——將com.oldName更改為com.newname.mobile ,然后將文件夾路徑從app/src/java/com/oldName/更改為app/src/java/com/newname/mobile/

對於那些想要一種簡單的方法來做到這一點的人,我創建了 react-native-app-id,它基本上會編輯提到的文件。 react-native-ci-tools 實際上分叉了我的代碼以生成現在過時的 react-native-app-id-fixed ,它不適用於最新的 react native。 然而我的會..

https://github.com/kyle-ssg/react-native-app-id

使用就像react-native-app-id com.foo.bar

更新 iOS 捆綁包 ID -

  • 從終端或命令提示符導航到 react-native 項目文件夾,然后進入 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 中選擇根項目,選擇常規選項卡,您可以在身份部分看到捆綁標識符並更改 ios 應用程序的新捆綁標識符

安卓

  1. 轉到您的 AndroidManifest.xml。
  2. 只需將光標放在包名稱上,不要選擇它,只需放置它。
  3. 然后按 shift+F6(window)/F6 (mac) 你會得到一個彈出窗口,填寫新標識符並選擇重命名包。 它會在 android studio 的任何地方發生變化。

即使使用 react-native-app-id,您也必須將文件移動到新文件夾

我結束使用 npm 任務進行升級,首先升級然后運行重命名命令,將 android 文件移動到正確的路徑並重新鏈接以防萬一

ios/project.pbxproj編輯與項目關聯的PRODUCT_BUNDLE_IDENTIFIER 使用 XCode 安全得多。

我知道這個問題要求在沒有 XCode 的情況下完成,對於熱衷於使用 Xcode 的人,當在您的本機項目中時:

  1. xed ios在xcode中打開ios文件夾
  2. 單擊左上角的圖標( project navigator
  3. 單擊左側面板ProjectName的根ProjectName
  4. 在中心視圖中,單擊General
  5. identity ,更改 Bundle 標識符

我有一個更低調的解決方案,我一直在使用。 這不是上述解決方案的替代品,而是簡單的另一種方法。 我只在 iOS 上測試過這個,但我認為它也適用於 Android。

我注意到在大多數情況下,創建的項目會有一個 com.xyz.something 是這樣的。

org.reactjs.native.example.abcyourprojectname-extras

我意識到,而不是檢查每個文件夾(並且不必使用 Xcode),我只需搜索(在 Visual Studio Code 中,打開項目文件夾)

org.reactjs.native.example

這將列出所有帶有包標識符的文件。 只需將其更改為您首選的包標識符,僅此而已。 這樣,即使明天有任何文件更改或格式更改或其他任何事情,搜索仍將是一致的處事方式。

(同樣,這是一個低調的解決方案,但它似乎對我有用)

這是我的解決方案,沒有添加一些外部包。 只需在項目根目錄中運行npx react-native-rename <newName> -b <bundleIdentifier> https://github.com/junedomingo/react-native-rename

不幸的是沒有。 事實上,我們今天剛剛在 react Native Facebook 小組中討論了這個問題。 https://m.facebook.com/groups/586400221495560?view=permalink&id=738954276240153&comment_id=739065029562411&notif_t=group_comment_reply&ref=m_notif

現在最好的計划是在升級時選擇“d”選項以驗證文件,然后再允許被覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM