Кажется, эта ошибка очень специфична для каждого случая, потому что я пробовал все, что описано в этом посте: Печать: Запись, ":CFBundleIdentifier", не существует
Я также пробовал почти все в этом посте, я остановился на 22 мая 2018 года, где auxilioivy дает рекомендацию для символической ссылки: https://github.com/facebook/react-native/issues/7308
Прежде чем сделать символическую ссылку, я обращаюсь ко всем вам.
Обновление моего React Native не вариант.
У меня есть следующее:
"react": "16.2.0",
"react-native": "0.53.3",
"react-native-xcode-packager": "^0.1.0",
"detox": {
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/NFIBEngage.app",
"build": "xcodebuild -workspace ios/NFIBEngage.xcworkspace -configuration Debug -scheme NFIBEngage -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 6"
}
},
Ошибка относится к моему ios/AppName-tvOS/Info.plist
:
<key>CFBundleIdentifier</key>
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
Фактическая ошибка говорит следующее:
fatal error: 'SplashScreen.h' file not found
#import "SplashScreen.h"
^~~~~~~~~~~~~~~~
1 error generated.
** BUILD FAILED **
The following build commands failed:
CompileC build/Build/Intermediates.noindex/NFIBEngage.build/Debug-iphonesimulator/PROD.build/Objects-normal/x86_64/AppDelegate.o NFIBEngage/AppDelegate.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Installing build/Build/Products/Debug-iphonesimulator/NFIBEngage.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The bundle identifier of the application could not be determined.
Ensure that the application's Info.plist contains a value for CFBundleIdentifier.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/NFIBEngage.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist
Ошибка заставки относится к этой строке в AppDelegate.m
:
#import "SplashScreen.h"
но я не знаю, как это связано. Я использую симулятор для XCode 10.1 и High Sierra OSX. Также, если я перейду к Файл -> Настройки проекта:
И на вкладке «Дополнительно» у меня есть:
Последнее, что я пробовал, следуя одной из рекомендаций здесь: https://github.com/facebook/react-native/issues/21382
дал мне это:
cd ios
➜ ios git:(release/3.6.2_build) ✗ pod install
zsh: command not found: pod
По наитию я подумал, что попробую удалить и переустановить react-native-splash-screen после того, как переустановил ту же версию, а затем запустил react-native link react-native-splash-screen
Я больше не получаю ошибку о заставке, вместо этого я получаю эту ошибку: caused by: sentry reported an error: You do not have permission to perform this action. (http status: 403)
Может ли это означать, что ошибка экрана-заставки устранена, и теперь я занимаюсь чем-то другим, например, проблемой токена аутентификации Sentry?
Означает ли указанная выше ошибка, что мне нужен auth.token
? Если да, то отличается ли он от токена безопасности?
@ hyb175, спасибо за эту подсказку. Я начал изучать его, но не с этим вопросом.
И просто к вашему сведению, если вам интересно, cocopods — это инструмент управления пакетами для собственных зависимостей ios, который имеет команду pod
, поэтому, если вы не используетеcocopods для управления своими зависимостями ios, pod
здесь не актуален.
@ hyb175, нет, никогда не использовал Cocopods для управления пакетами, хотя я видел здесь ссылку на него PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
, когда искал, на что это <key>CFBundleIdentifier</key> <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
ссылалось.
@ hyb175, по наитию, я подумал, что попробую удалить и переустановить react-native-splash-screen
после того, как я переустановил ту же версию, а затем запустил react-native link react-native-splash-screen
Я больше не получаю ошибку о заставке, вместо этого я получаю эту ошибку: caused by: sentry reported an error: You do not have permission to perform this action. (http status: 403)
Может ли это быть ошибка заставки устранена, и теперь Я занимаюсь чем-то другим, например, проблемой с токеном аутентификации Sentry?
Итак, по подсказкам, которые я получил от коллеги, который прокомментировал здесь, я нашел эту статью: https://medium.com/handlebar-labs/how-to-add-a-splash-screen-to-a-react-native-app-ios-and-android-30a3cec835ae
Я решил удалить [email protected]
и переустановить его так:
npm install [email protected]
react-native link react-native-splash-screen
Конечно, ошибка заставки исчезла.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
часто является результатом неудачной сборки. Как вы указали в своем вопросе, проблема связана со строкой в AppDelegate.m, куда он импортирует#import "SplashScreen.h"
. Узнайте, где должен быть этот файл и почему инструмент сборки xcode не может его найти.