使用react-native-iap在Xcode打包归档时提示RNIap.modulemap不存在
问题:Xcode归档/Release构建失败,提示找不到RNIap.modulemap(Debug模式正常)
错误信息
/Users/user/Library/Developer/Xcode/DerivedData/put_front-cxlwjnwhdvccvwbcghdsniiuvqfe/Build/Intermediates.noindex/ArchiveIntermediates/put_front/IntermediateBuildFilesPath/put_front.build/Release-iphoneos/put_front.build/DerivedSources/put_vers.c module map file '/Users/anis/Library/Developer/Xcode/DerivedData/put_front-cxlwjnwhdvccvwbcghdsniiuvqfe/Build/Intermediates.noindex/ArchiveIntermediates/put_front/BuildProductsPath/Release-iphoneos/RNIap/RNIap.modulemap' not found
自动生成的put_vers.c内容:
extern const unsigned char ____VersionString[]; extern const double ____VersionNumber; const unsigned char ____VersionString[] __attribute__ ((used)) = "@(#)PROGRAM:put PROJECT:put_front-1" "\n"; const double ____VersionNumber __attribute__ ((used)) = (double)1.;
环境相关
- react-native-iap: 12.10.7
- react-native: 0.71.8
- 平台:iOS、Xcode
- 复现流程:
- 安装react-native-iap
- 执行
cd ios && pod install - 在Xcode中尝试生成归档(或切换到Release模式运行)
- 已尝试无效操作:手动链接库,在Podfile添加
pod 'RNIap', :path => '../node_modules/react-native-iap';但终端执行yarn ios可正常构建,Debug模式模拟器/真机运行无问题。
可行解决方案
1. 彻底清理缓存与重建依赖
- 关掉Xcode
- 删除对应项目的DerivedData:
rm -rf ~/Library/Developer/Xcode/DerivedData/put_front-cxlwjnwhdvccvwbcghdsniiuvqfe - 进入ios目录清理并重装Pods:
cd ios pod deintegrate rm -rf Podfile.lock build pod install - 重新打开Xcode再尝试归档
2. 检查RNIap Pod的配置
- 在Xcode里打开
ios/Pods/Pods.xcodeproj - 找到
RNIaptarget,切换到Build Settings标签 - 搜索
Module Map,确认Module Map File路径是$(SRCROOT)/RNIap.modulemap(要保证这个文件确实存在于Pods/RNIap目录下) - 检查Release配置下的
Product Module Name就是RNIap,没有多余后缀
3. 调整主项目的Module搜索路径
- 打开主项目的Build Settings
- 搜索
Module Search Paths - 在Release配置里,添加
$(BUILD_PRODUCTS_DIR)/RNIap到搜索路径,设置为recursive(递归搜索)
4. 升级react-native-iap版本
当前12.10.7版本可能存在和RN 0.71的适配问题,试试升级到最新兼容版:
yarn upgrade react-native-iap@latest cd ios && pod install
5. 检查版本控制设置
put_vers.c是Xcode自动生成的版本文件,检查主项目Build Settings里的Versioning System是否设为Apple Generic,避免版本文件生成异常干扰依赖查找
内容的提问来源于stack exchange,提问作者Zero0
相关产品推荐
相关产品推荐

