You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何获取包名?新手开发者求助

在React Native中获取包名(iOS为Bundle ID)的方法

方法一:使用第三方库(最简便,推荐新手)

用react-native-device-info这个成熟的工具库,一步搞定跨平台获取需求:

  • 安装依赖:
    npm install react-native-device-info
    # 或使用yarn
    yarn add react-native-device-info
    
  • 在代码中导入并调用:
    import DeviceInfo from 'react-native-device-info';
    
    const bundleId = DeviceInfo.getBundleId();
    console.log('包名/Bundle ID:', bundleId);
    
    该方法同时支持Android和iOS,会自动返回对应平台的包名或Bundle ID。

方法二:Android原生实现(无需第三方库)

如果不想依赖外部库,可自行编写原生模块获取:

  1. 在Android项目的MainApplication.java或自定义Native Module中添加获取包名的方法:
    @ReactMethod
    public void getPackageName(Promise promise) {
        String packageName = getApplicationContext().getPackageName();
        promise.resolve(packageName);
    }
    
  2. 在React Native代码中调用:
    import { NativeModules } from 'react-native';
    
    NativeModules.MyCustomModule.getPackageName()
      .then(packageName => console.log('Android包名:', packageName))
      .catch(error => console.error(error));
    

方法三:iOS原生实现(无需第三方库)

iOS端可通过原生代码直接获取Bundle ID:

  1. 在iOS项目的AppDelegate.m或自定义Native Module中添加方法:
    RCT_EXPORT_METHOD(getBundleId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
        NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier];
        resolve(bundleId);
    }
    
  2. 在React Native代码中调用:
    import { NativeModules } from 'react-native';
    
    NativeModules.MyCustomModule.getBundleId()
      .then(bundleId => console.log('iOS Bundle ID:', bundleId))
      .catch(error => console.error(error));
    

内容的提问来源于stack exchange,提问作者Android dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:36:31