这个问题不存在的, 说什么包不完整都是扯. 直接在xcode
里面运行调试. 找错误.一步一步解决,其他错误解决了. 这个问题也就不存在了
目录文件缺失,
npm install , pod install , react-native link
如果还是不行,在 Build Settings=> Library Search Paths => 找到这个路径干掉即可
React 没有编译 造成的.选中项目, 点击项目(就是那个方形的 Stop 图标右边) =>Edit Sechme => Build
Parallelize Build
React
或者是 Pod
里面React
冲突 ,把 pod
里面react
开头的 依赖 干掉, 改为手动依赖. 然后 rm -rf Pods && pod install
In File
-> Workspace setting
-> select Legasy Build System
这个问题是依赖版本升级之后和老的版本冲突,导致编译不完整
rm -rf Pods && pod install
cd node_modules/react-native/third-party/glog-0.3.5
../../scripts/ios-configure-glog.sh
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
hasteImpl
returning the same name for different files.以下 github 的解答 , 但是问题依旧. 新建 rn-cli.config.js
const blacklist = require("metro-config/src/defaults/blacklist");
module.exports = {
resolver: {
blacklistRE: blacklist([/nodejs-assets\/.*/, /android\/.*/, /ios\/.*/]),
},
};
watchman watch-del-all
.node_modules
folder: rm -rf node_modules && npm install
.rm -rf $TMPDIR/metro-bundler-cache-*
or npm start -- --reset-cache
.rm -rf $TMPDIR/haste-map-react-native-packager-*
.把 pod
里面 react
开头的 依赖 干掉, 改为手动的. 然后 rm -rf Pods && pod install
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 mapreact-navigation 升级版本之后出现的问题
import CardStackStyleInterpolator from "react-navigation/src/views/CardStack/CardStackStyleInterpolator";
//改为
import StackViewStyleInterpolator from "react-navigation-stack/dist/views/StackView/StackViewStyleInterpolator";
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) ...
依赖组件不支持 32 或者 64 位平台. 模拟器好好的 , 真实机就出问题. 建议看看依赖组件的正确使用姿势.
Pod 里面和 General => Linked Frameworks and Libraries 里面重复依赖. 干掉一个即可 或者你文件里重复定义了
删除 /Users/[user]/Library/Developer/Xcode/DerivedData/
里面的所有
bundle identifier
标识符即可, 你的手机可能已经安装了一个这样的包,(连接上手机)装一下 react-native-svg
这个库, 然后手动添加一下依赖就可以了
原因:项目中的teamID
未修改。找到修改即可
原因是要复制的资源找不到了, Projects => Build Phases => Copy Bundle Resources 目录下删除就可以了
解决方法是:打开手机设置->通用->还原->还原位置与隐私; 然后会有弹窗提示你是否信任此电脑,点击信任,重启 Xcode
之后,运行项目到手机上
先干掉手机里面已经安装的app
,断开连线.关掉Xcode
mac
打开钥匙串 => 底下的种类=> 证书 找到Apple Worldwide Developer Relations Certication Authority
使用此证书时: 使用系统默认. => 保存
$(SRCROOT)/../react-native/React
$(SRCROOT)/../../React
$(SRCROOT)/../react-native/React
react-native run-ios --simulator "iPhone 7 Plus"
执行 react-native link
之后,部分组件 会自动关联 和修改 Podfile
文件 比如给你自动加上
...
pod 'react-native-webview', :path => '../node_modules/react-native-webview'
然后当你执行 pod install
会造成各种问题. 执行之后 请使用Xcode
打开 *.xcworkspace
出现问题请使用xcode
编译调试错误.
No profiles for 'jaadee.JadeKing.com' were found
does not support the Associated Domains and Push Notifications capabilities.
1.找到工程文件中xxx.entitlements文件
2.删除.entitlements文件中的aps-environment,运行即可。
Failed to create provisioning profile.
Project=>General=> Bundle Identifier 改个名字即可
Thread 1: signal SIGABRT
点击左边项目导航栏顶部工具栏中倒数第二个按钮,就是(就是横着像个标签的图标) 然后点左下角的+号,添加一个异常断点"Add exception breakpoint..." 然后重新运行一下,ide 会帮你定位到错误的行
在 package.json 中添加编译命令
{
"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