ios打包rn

React Native(简称 RN)是 Facebook 推出的一款跨平台移动应用开发框架,开发者可以基于 React 和 JavaScript 通过一个底层原生组件的桥梁来构建 iOS 和 Android 应用。提供了丰富的组件和 API,开发效率高、效果出众、适用性广,可以帮助开发者大幅度节省开发时间、降低开发难度和开发成本。

那么如何将 React Native 的代码打包成 iOS 项目呢?下面我详细介绍一下具体的操作步骤和流程。

## 前置条件

在开始打包 React Native 项目之前,需要先安装好以下几个工具和环境:

1. Node.js 和 npm

2. Xcode

3. CocoaPods

4. React Native 命令行工具

## 创建项目

使用 React Native 命令行工具创建初始化的 React Native 项目,可以使用如下命令:

```

npx react-native init myproject --template react-native-template-typescript

```

其中 myproject 为项目名称。也可以选择使用其他的模板,例如 react-native-template-redux 、react-native-template-mobx 等。

## 安装依赖

进入项目根目录,执行以下命令安装所需依赖:

```

cd myproject

npm install

```

## 配置 Xcode

用 Xcode 打开自动生成的 iOS 项目,需要设置以下几个参数:

1. Bundle identifier

2. Team

3. Provisioning Profile

如果你已有自己的开发者账号,则可以设置自己的 Bundle identifier 和 Team,并在 Apple 开发者网站上下载对应的 Provisioning Profile。如果没有,则需要先注册开发者账号和申请证书。

## 安装 CocoaPods

使用 CocoaPods 安装和管理 React Native 依赖包,可以大大简化依赖包的安装和升级操作。可以通过以下命令安装 CocoaPods:

```

sudo gem install cocoapods

```

## 更新 Podfile 文件

在 iOS 项目根目录下,打开 Podfile 文件,增加以下内容:

```

platform :ios, '10.0'

use_native_modules!

target 'myproject' do

pod 'React', :path => '../node_modules/react-native', :subspecs => [

'Core',

'CxxBridge',

'DevSupport',

'RCTActionSheet',

'RCTAnimation',

'RCTBlob',

'RCTImage',

'RCTLinkingIOS',

'RCTNetwork',

'RCTSettings',

'RCTText',

'RCTVibration',

'RCTWebSocket',

'RCTPushNotification',

'RCTGeolocation'

]

pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'

pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'

end

```

## 安装依赖包

在 iOS 项目根目录下,执行以下命令安装依赖包:

```

cd ios

pod install

```

执行完毕后,可以看到一个名为 .xcworkspace 的 Xcode 项目文件被生成。

## 运行项目

使用 Xcode 打开生成的 .xcworkspace 文件,然后点击 Xcode 工具栏的 Run 按钮,即可运行 React Native 项目。

## 打包项目

打包 iOS 项目有多种方式,其中两种常用的方式是:

1. 使用 Xcode 打包

2. 使用命令行打包

### 使用 Xcode 打包

使用 Xcode 打包的方式非常简单,只需要按照 Xcode 的操作提示进行操作即可。具体步骤如下:

1. 选择 Product -> Archive 菜单项,Xcode 会自动对工程进行编译和打包;

2. 完成编译和打包后,会自动弹出 Organizer 窗口;

3. 在 Organizer 窗口中,选择导出 iOS App 选项,根据提示设置应用信息(例如应用名称、版本号、Bundle ID、签名等);

4. 导出成功后,会生成一个名为 .ipa 的文件,即为打包好的 iOS 应用。

### 使用命令行打包

使用命令行打包的方式需要先安装 frida-ios-dump 工具,可以通过以下命令进行安装:

```

pip install frida-ios-dump

```

安装成功后,按照以下步骤进行操作:

1. 将手机和电脑连接,确保手机已启动应用并进入了 RN 页面;

2. 在命令行中执行以下命令:

```

frida-ios-dump -o rnapp -v --download -I <应用的 BundleID>

```

其中, rnapp 为输出文件夹名称,应用的 BundleID 为你想要打包的应用的唯一标识符;

3. 等待 frida 完成工作后,在输出文件夹中会出现一个名为 dump.ipa 的文件,即为打包好的应用。

## 总结

以上就是打包 React Native 项目到 iOS 平台的具体操作步骤和流程。通过以上操作,可以方便地将 React Native 项目打包为 iOS 应用,并发布到 App Store 上或直接在本地进行测试。