React Native iOS 踩坑集合

611 阅读1分钟

集成到现有iOS项目

1、yarn全局版本号不一致,报错如下

error This project's package.json defines "packageManager": "yarn@3.6.4". However the current global version of Yarn is 1.22.22. 和预期版本号不一致

// 1.22.22 替换为你本地版本号
```npm pkg set packageManager="yarn@1.22.22"

2、pod install 不过 post_install undefine end_with

实际为缺少PrivacyInfo.xcprivacy 内容如下,可以自行创建对应文件

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NSPrivacyAccessedAPITypes</key>
	<array>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>C617.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>CA92.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>35F9.1</string>
			</array>
		</dict>
	</array>
	<key>NSPrivacyCollectedDataTypes</key>
	<array/>
	<key>NSPrivacyTracking</key>
	<false/>
</dict>
</plist>

3、yarn 失败,缺少metro.config

解决方案:package.json 增加 metro.config依赖,然后创建metro.config.js配置

  // 依赖配置
  "dependencies": {
    ...
    "@react-native/metro-config": "0.74.83" // 这里填写你的目标版本号
  }
  
 // metro.config.js
 const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');

/**
 * Metro configuration
 * https://reactnative.dev/docs/metro
 *
 * @type {import('metro-config').MetroConfig}
 */
const config = {};

module.exports = mergeConfig(getDefaultConfig(__dirname), config);