React Native iOS构建脚本执行报错info.plist不存在求助
问题根因
你的脚本执行时找不到目标Info.plist文件,核心原因有2个:
- 脚本内
plutil命令直接使用相对路径info.plist,但脚本是在组件自身的node_modules/geo-location-jimmy/scripts/目录上下文执行,默认工作目录下不存在该文件 - 多数React Native项目的iOS配置文件名为首字母大写的
Info.plist,且存放路径为ios/[项目名]/Info.plist,而非根目录下的小写info.plist
修复方案
1. 优化脚本逻辑
不要在组件安装脚本中执行yarn add命令,组件依赖直接声明到你组件的package.json的dependencies字段即可,重复安装会导致用户侧依赖版本冲突。修改后的完整脚本如下:
#!/bin/bash set -e set -x # 定位项目根目录下的iOS Info.plist,排除build目录下的冗余文件 PLIST_PATH=$(find ./ios -name "Info.plist" | grep -v "build" | head -n 1) if [ -z "$PLIST_PATH" ]; then echo "Error: 未找到iOS项目的Info.plist文件,请确认iOS目录存在" exit 1 fi # 插入位置权限声明 plutil -insert NSLocationWhenInUseUsageDescription -string 'Location permission when in use' "$PLIST_PATH" echo "configured iOS settings"
2. 补充路径兼容逻辑
如果你的组件需要支持多种项目结构,可以在脚本中增加路径判断逻辑,优先读取用户配置的plist路径,没有配置时再走默认查找逻辑。
3. 验证大小写匹配
如果用户的文件系统是大小写敏感的,小写的info.plist会直接触发找不到文件的报错,统一使用首字母大写的Info.plist匹配即可。
内容的提问来源于stack exchange,提问作者Jimmy Noujaim
相关产品推荐
相关产品推荐

