Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React Native ios 常见错误和解决方法

React Native ios 常见错误和解决方法

作者头像
chuchur
发布于 2022-10-25 06:30:28
发布于 2022-10-25 06:30:28
3.7K00
代码可运行
举报
文章被收录于专栏:禅境花园禅境花园
运行总次数:0
代码可运行

常规错误问题

CFBundleIdentifier", Does Not Exist

这个问题不存在的, 说什么包不完整都是扯. 直接在xcode 里面运行调试. 找错误.一步一步解决,其他错误解决了. 这个问题也就不存在了

warning: directory not found for option

目录文件缺失,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install , pod install , react-native link

如果还是不行,在 Build Settings=> Library Search Paths => 找到这个路径干掉即可

'React/RCTEventDispatcher.h' file not found
'React/RCTViewManager.h' file not found
'React/RCTView.h' file not found

React 没有编译 造成的.选中项目, 点击项目(就是那个方形的 Stop 图标右边) =>Edit Sechme => Build

  • 取消勾选Parallelize Build
  • 在 Tagets 点下面那个加号 ,加入 React(房子图标),然后把他拖到第一,点 Close 或者先编译React 或者是 Pod 里面React 冲突 ,把 pod 里面react 开头的 依赖 干掉, 改为手动依赖. 然后 rm -rf Pods && pod install
  • Libraries => 点击 .xcodeproj =>Build Settings=> Header Search Paths=> 加入 \$(SRCROOT)/../react-native/React
  • +\$(SRCROOT)/../../React
  • +\$(SRCROOT)/../react-native/React
unable to open file in target xcode 10 10.1

In File-> Workspace setting -> select Legasy Build System

  1. pod repo remove master
  2. pod setup
  3. pod install .
module map file '/Users/chuchur/Projects/.../ios/Pods/Headers/Public/SSZipArchive/SSZipArchive.modulemap' not found

这个问题是依赖版本升级之后和老的版本冲突,导致编译不完整

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm -rf Pods && pod install
React Native 'config.h' file not found
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd node_modules/react-native/third-party/glog-0.3.5
../../scripts/ios-configure-glog.sh
library not found for -lstdc++.6

xcode9 升级 xcode 10 缺少必要的库 下载这个包 Libstdc 打开 iPhone-Device.tbd 拷贝到这个目录 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/ 打开 iPhone-Simulator.dylib拷贝到这个目录 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/.tdb拷贝到这个目录 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

https://github.com/cy920820/Libstdc-.6.0.9-files

This error is caused by a @providesModule declaration with the same name across two different files.
jest-haste-map: @providesModule naming collision
This error is caused by hasteImpl returning the same name for different files.

以下 github 的解答 , 但是问题依旧. 新建 rn-cli.config.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const blacklist = require("metro-config/src/defaults/blacklist");
module.exports = {
  resolver: {
    blacklistRE: blacklist([/nodejs-assets\/.*/, /android\/.*/, /ios\/.*/]),
  },
};
  1. Clear watchman watches: watchman watch-del-all.
  2. Delete the node_modules folder: rm -rf node_modules && npm install.
  3. Reset Metro Bundler cache: rm -rf $TMPDIR/metro-bundler-cache-* or npm start -- --reset-cache.
  4. Remove haste cache: rm -rf $TMPDIR/haste-map-react-native-packager-*.

pod 里面 react 开头的 依赖 干掉, 改为手动的. 然后 rm -rf Pods && pod install

Unable to resolve module react-navigation/src/views/CardStack/CardStackStyleInterpolator from /Users/chuchur/Projects/.../Scence/index.js: Module react-navigation/src/views/CardStack/CardStackStyleInterpolator does not exist in the Haste module map

react-navigation 升级版本之后出现的问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import CardStackStyleInterpolator from "react-navigation/src/views/CardStack/CardStackStyleInterpolator";
//改为
import StackViewStyleInterpolator from "react-navigation-stack/dist/views/StackView/StackViewStyleInterpolator";
symbol(s) not found for architecture x86_64

Undefined symbols for architecture x86_64: "_OPENSSL_ia32cap_P", referenced from: _EVP_aes_128_cbc_hmac_sha1 in (e_aes_cbc_hmac_sha1.o) _EVP_aes_256_cbc_hmac_sha1 in (e_aes_cbc_hmac_sha1.o) _aesni_cbc_hmac_sha1_ctrl in (e_aes_cbc_hmac_sha1.o) _EVP_aes_128_cbc_hmac_sha256 in (e_aes_cbc_hmac_sha256.o) _EVP_aes_256_cbc_hmac_sha256 in (e_aes_cbc_hmac_sha256.o) _aesni_cbc_hmac_sha256_cipher in (e_aes_cbc_hmac_sha256.o) _aesni_cbc_hmac_sha256_ctrl in ***(e_aes_cbc_hmac_sha256.o) ...

ld: symbol(s) not found for architecture x86_64

依赖组件不支持 32 或者 64 位平台. 模拟器好好的 , 真实机就出问题. 建议看看依赖组件的正确使用姿势.

property has a previous declaration

Pod 里面和 General => Linked Frameworks and Libraries 里面重复依赖. 干掉一个即可 或者你文件里重复定义了

635 duplicate symbols for architecture x86_64 ... duplicate symbol _x509parse_verify in:

删除 /Users/[user]/Library/Developer/Xcode/DerivedData/ 里面的所有

Failed to create provisioning profile.
  • 链接测试机即可.
  • 修改bundle identifier 标识符即可, 你的手机可能已经安装了一个这样的包,(连接上手机)
'RNSVGLinearGradient' was not found in the UIManager

装一下 react-native-svg 这个库, 然后手动添加一下依赖就可以了

No account for team "QMP96B5DPW". Add a new account in the Accounts preference pane or verify that your accounts have valid credentials.

原因:项目中的teamID未修改。找到修改即可

CpResource xxx.. was not found

原因是要复制的资源找不到了, Projects => Build Phases => Copy Bundle Resources 目录下删除就可以了

Development cannot be enabled while your device is locked.

解决方法是:打开手机设置->通用->还原->还原位置与隐私; 然后会有弹窗提示你是否信任此电脑,点击信任,重启 Xcode 之后,运行项目到手机上

Could not launch,has denied the launch request.

先干掉手机里面已经安装的app,断开连线.关掉Xcode mac打开钥匙串 => 底下的种类=> 证书 找到Apple Worldwide Developer Relations Certication Authority 使用此证书时: 使用系统默认. => 保存

其他

手动添加依赖
  • Xcode 打开项目, Libraries 右键 Add Files to "Your Project Name" 在 node_modules/.../找到 .xcodeproj
  • Project -> Build Phases -> Link Binary With Libraries 加入 Add libBVLinearGradient.a
  • Libraries => 点击 .xcodeproj =>Build Settings=> Header Search Paths=> 加入
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(SRCROOT)/../react-native/React

$(SRCROOT)/../../React
$(SRCROOT)/../react-native/React
更改模拟器

react-native run-ios --simulator "iPhone 7 Plus"

注意事项

执行 react-native link 之后,部分组件 会自动关联 和修改 Podfile文件 比如给你自动加上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
pod 'react-native-webview', :path => '../node_modules/react-native-webview'

然后当你执行 pod install 会造成各种问题. 执行之后 请使用Xcode打开 *.xcworkspace

出现问题请使用xcode 编译调试错误.

开发者的相关问题

Your development team, "", does not support the Push Notifications capability.

No profiles for 'jaadee.JadeKing.com' were found

does not support the Associated Domains and Push Notifications capabilities.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.找到工程文件中xxx.entitlements文件
2.删除.entitlements文件中的aps-environment,运行即可。

Failed to create provisioning profile.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Project=>General=> Bundle Identifier  改个名字即可

快速定位错误

Thread 1: signal SIGABRT

点击左边项目导航栏顶部工具栏中倒数第二个按钮,就是(就是横着像个标签的图标) 然后点左下角的+号,添加一个异常断点"Add exception breakpoint..." 然后重新运行一下,ide 会帮你定位到错误的行

编译打包 ios

在 package.json 中添加编译命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "scripts":{
        "bundle-ios":"node node_modules/react-native/local-cli/cli.js bundle --entry-file index.js  --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle"
    }
}
--entry-file ,ios或者android入口的js名称,比如index.js
--platform ,平台名称(ios或者android)
--dev ,设置为false的时候将会对JavaScript代码进行优化处理。
--bundle-output, 生成的jsbundle文件的名称,比如./ios/bundle/index.ios.jsbundle
--assets-dest 图片以及其他资源存放的目录,比如./ios/bundle

1) Xcode =>  Add Files to "RNIos" => 选择bundle文件,在option中选择Create folder references
2) 设置AppDelegate.m文件

NSURL *jsCodeLocation;
#ifdef DEBUG
     //开发包
     jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
#else
     //离线包
    jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"bundle/index.ios" withExtension:@"jsbundle"];
#endif
本文将持续更新....
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React Native 混合开发(iOS篇)
在React Native的应用场景中,有时候一个APP只有部分页面是由React Native实现的,比如:我们常用的携程App,它的首页下的很多模块都是由React Native实现的,这种开发模式被称为混合开发。
CrazyCodeBoy
2018/09/26
8.7K0
小记React Native与原生通信(iOS端)
emmm…… 先说个题外话,时隔一年,再遇RN,较之以前唯一不同的一点就是遇到的坑终于有人先踩了?本文会通过原生与RN页面相互跳转、方法间的相互调用、以及H5页面调用原生页面进而调用RN页面等方面来阐
谦谦君子修罗刀
2020/04/16
6.9K0
新版React Native 混合开发(iOS篇)
在React Native的应用场景中,有时候一个APP只有部分页面是由React Native实现的,比如:我们常用的携程App,它的首页下的很多模块都是由React Native实现的,这种开发模式被称为混合开发。
CrazyCodeBoy
2020/04/24
6.1K0
React-Native iOS打包
--entry-file ,ios或者android入口的js名称,比如index.ios.js --platform ,平台名称(ios或者android) --dev ,设置为false的时候将会对JavaScript代码进行优化处理。 --bundle-output, 生成的jsbundle文件的名称,比如release_ios/main.jsbundle --assets-dest 图片以及其他资源存放的目录,比如release_ios/
憧憬博客
2020/07/21
1.2K0
React Native之打包
用React Native开发好APP之后,如何将APP发布到市场以供用户使用呢?不管是Android还是ios等原生app走的都是:签名打包—>发布到各store这两大步骤。本文将对Android和ios两大平台打包过程做一个简单的介绍。 Android平台打包 在Android原生的app开发打包过程中,主要有两种发布方式:一种是借助于命令行操作,另外一种是借助于Android Studio进行发布。 Android Studio打包 借助Android studio进行打包的,一次点击build->g
xiangzhihong
2018/02/06
2.1K0
React Native之打包
iOS 嵌入React Native 0.55版本
https://facebook.github.io/react-native/docs/integration-with-existing-apps
井九
2024/10/12
1400
React Native(一):基础
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用。(来自百度百科)
Helloted
2022/06/07
4450
React Native(一):基础
React Native热更新方案
随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使用 Hybrid 技术的公司转向了 React Native 。虽然React Native在目前来说仍有不少的坑,不过对于以应用开发为主的App来说完全可以胜任。 概述 在iOS应用开发中,由于Apple严格的审核标准和低效率,iOS应用的发版速度极慢,这对于大多数团队来说是不能接受的,所以热更新对于iOS应用来说就显得尤其重要。而就在前不久,苹果
xiangzhihong
2018/02/06
9.7K0
React Native热更新方案
新版React Native发布APP之打包iOS应用
用React Native开发好APP之后,如何将APP发布以供用户使用呢?一款APP的发布流程无外乎:签名打包—>发布到各store这两大步骤。本文将向大家分享如何签名打包一款React Native APP。
CrazyCodeBoy
2019/12/10
2.4K0
新版React Native发布APP之打包iOS应用
React Native发布APP之打包iOS应用
React Native发布APP之打包iOS应用 ---- 用React Native开发好APP之后,如何将APP发布以供用户使用呢?一款APP的发布流程无外乎:签名打包—>发布到各store这两大步骤。本文将向大家分享如何签名打包一款React Native APP。 在本文中我将为大家讲解如何打包和发布React Native iOS App。 第一步:导出js bundle包和图片资源 和打包React Native Android应用不同的是,我们无法通过命令一步进行导出React Native
CrazyCodeBoy
2018/05/07
3K0
React Native发布APP之打包iOS应用
RN同构系列:现有的IOS APP如何集成RN
react-native 大家都比较熟悉了,如果是一个全新的项目,直接使用 RN 的脚手架功能初始化项目就可以,直到上架之前,前端的小伙伴可能都不怎么需要关心 native 的代码。
腾讯IVWEB团队
2020/06/24
3.6K0
iOS React Native 混合开发集成React Native
   有时候我们并不是需要全部使用React Native,我们想和原生混合开发,那我们应该怎么办呢。
星宇大前端
2019/01/15
2.3K0
xcode工程集成 React-native步骤
跟着网上博客步骤来集成RN发现了很多坑,但是博客内容里面却没有记录这些坑,百度了很久都没找到解决方案,最后还是在谷歌搜索里面的一篇文章找到解决办法,在此记录下方便别人快速集成RN。
conanma
2021/11/02
2.5K0
React Native bundle打离线包
react-native-cli 自带脚本可以打包 react-native bundle 命令
conanma
2022/03/09
2.9K0
ReactNative报错记录以及原因分析 ReactNative报错记录
如果在android studio启动的时候发现无法访问加载js脚本文件,注意用命令 adb shell input keyevent 82 调出手机调式菜单,然后设置IP地址和端口号(ip地址=本地电脑的ip地址:8081)。
聚优云惠
2019/08/14
5.4K0
ReactNative 常见问题及处理办法(加固混淆)
本文总结了 ReactNative 开发中常见问题及解决方法。从 ScrollView 在 TouchableOpacity 组件内滑动困难到 Xcode 编译路径设置,都有相应解决方案。此外,还介绍了热更新问题、高度获取、强制横屏UI适配、清理缓存等实用技巧。
iOS Magician
2024/01/06
4430
ReactNative 常见问题及处理办法(加固混淆)
使用umi开发react-native应用
自此,开发者可以迅速投入到业务代码的开发,而不用去搭建脚手架,写一堆配置和胶水代码去整合各种框架等等。
conanma
2021/11/02
6.9K0
React-Native入门指南 终章
在facebook React-native的官网可以看到目前支持的组件如下: https://facebook.github.io/react-native/docs/getting-started.html#content
疯狂的技术宅
2019/03/28
1.6K0
React-Native入门指南 终章
React-Native 分包实践
对于很多在使用react-native开发应用的小伙伴们肯定都会遇到一个问题,功能越来越复杂,生成的jsbundle文件越来越大,无论是打包在app内发布还是走http请求更新bunlde文件都是噩梦,这个时候我们应该如何来更新呢?来看看我们的方案。 我们可以在打包的时候直接讲基础文件打包到内部, 在请求线上的业务bundle合并后初始化react-native,对于在rn初始化后 如果还有新业务的话 也可以直接加载业务代码b 通过bridge enqueueApplicationScript注入到j
QQ音乐技术团队
2018/01/30
3.7K0
React-Native 分包实践
React Native android 常见错误和解决方法
这个 BUG 是 Xcode.11 引起的, 可以查看这个问题的提交记录,链接为:https://github.com/facebook/react-native/issues/25138 我们只需要找到 RCTModuleMethod.mm 这个文件 修改
chuchur
2022/10/25
3K0
相关推荐
React Native 混合开发(iOS篇)
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验