[英]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)上更改大量文件
值得一提的是,有一個 npm 模塊( https://www.npmjs.com/package/react-native-ci-tools )可以完成上述所有工作; 使用它,讓生活更輕松。
更新文件夾路徑:
我們還需要更改文件夾路徑以匹配新名稱——將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 -
此命令將在 Xcode 中打開您需要更新應用程序包標識符信息的項目
要更新 android 包名稱,請按照以下步驟操作 -
如果您想在 react-native 項目中更改包標識符。 您必須分別為 android 和 ios 更改應用程序標識符。
ios
在 xcode 中選擇根項目,選擇常規選項卡,您可以在身份部分看到捆綁標識符並更改 ios 應用程序的新捆綁標識符
安卓
- 轉到您的 AndroidManifest.xml。
- 只需將光標放在包名稱上,不要選擇它,只需放置它。
- 然后按 shift+F6(window)/F6 (mac) 你會得到一個彈出窗口,填寫新標識符並選擇重命名包。 它會在 android studio 的任何地方發生變化。
即使使用 react-native-app-id,您也必須將文件移動到新文件夾
我結束使用 npm 任務進行升級,首先升級然后運行重命名命令,將 android 文件移動到正確的路徑並重新鏈接以防萬一
在ios/project.pbxproj
編輯與項目關聯的PRODUCT_BUNDLE_IDENTIFIER
。 使用 XCode 安全得多。
我知道這個問題要求在沒有 XCode 的情況下完成,對於熱衷於使用 Xcode 的人,當在您的本機項目中時:
xed ios
在xcode中打開ios文件夾project navigator
)ProjectName
的根ProjectName
General
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¬if_t=group_comment_reply&ref=m_notif
現在最好的計划是在升級時選擇“d”選項以驗證文件,然后再允許被覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.