空白应用程序调试构建失败 - /Info.plist 找不到文件
Blank app fails debug build - /Info.plist file not found
在更大的上下文中,我求助于创建一个空白项目和 运行 我的构建命令。
同样的错误:
ionic start myApp blank
cd myApp
ionic cordova run ios --debug --target="iPhone-8" --consolelogs
ionic-app-scripts build --target cordova --platform ios
[11:39:29] ionic-app-scripts 3.2.0
[11:39:29] build dev started ...
[11:39:30] clean started ...
[11:39:30] clean finished in 1 ms
[11:39:30] copy started ...
[11:39:30] deeplinks started ...
[11:39:30] deeplinks finished in 15 ms
[11:39:30] transpile started ...
[11:39:33] transpile finished in 3.16 s
[11:39:33] preprocess started ...
[11:39:33] preprocess finished in 1 ms
[11:39:33] webpack started ...
[11:39:33] copy finished in 3.31 s
[11:39:37] webpack finished in 4.35 s
[11:39:37] sass started ...
[11:39:38] sass finished in 1.27 s
[11:39:38] postprocess started ...
[11:39:38] postprocess finished in 10 ms
[11:39:38] lint started ...
[11:39:38] build dev finished in 8.92 s
[11:39:41] lint finished in 2.65 s
> cordova run ios --debug --target iPhone-8
Building for iPhone 8 Simulator
Building project: /myApp/platforms/ios/myApp.xcworkspace
Configuration: Debug
Platform: emulator
Build settings from command line:
CONFIGURATION_BUILD_DIR =
/myApp/platforms/ios/build/emulator
SDKROOT = iphonesimulator12.0
SHARED_PRECOMPS_DIR =
/myApp/platforms/ios/build/sharedpch
Build settings from configuration file '
/myApp/platforms/ios/cordova/build-debug.xcconfig':
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CODE_SIGN_ENTITLEMENTS = $(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-$(CONFIGURATION).plist
CODE_SIGN_IDENTITY = iPhone Developer
ENABLE_BITCODE = NO
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
OTHER_LDFLAGS = -ObjC
SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
/myApp/platforms/ios/build/emulator/myApp.app/Info.plist file not found.
[ERROR] An error occurred while running subprocess cordova.
cordova run ios --debug --target iPhone-8 exited with exit code 1.
Re-running this command with the --verbose flag may provide more
information.
ionic --version
4.1.2
cordova --version
8.0.0 & @latest 8.1.1
XCode Version 10.0 (10A255) + build tools
macOS 10.13.6 - High Sierra. Mojave on a different machine fails the same.
路径已调整,如果有人想知道...
------------修复------------
连同@DaveAlden 的回答,这就是我如何恢复它以在没有错误的情况下进行 livereload:
ionic cordova platform remove ios
sudo npm install -g ionic@3.20.0
ionic cordova platform add ios
open platform/ios/MyApp.xcworkspace
按照说明回退到旧版构建系统
https://github.com/apache/cordova-ios/issues/407
运行 我的构建脚本,没有 --buildFlag='-UseModernBuildSystem=0'
这个问题是因为 Xcode 10 包含一个当前与 cordova-ios@4
- see here.
不兼容的新构建系统
目前的解决方案是 运行 Cordova 的 --buildFlag='-UseModernBuildSystem=0'
选项指示 Xcode 使用旧的构建系统,例如:
cordova run ios --debug --target "iPhone-8" --buildFlag='-UseModernBuildSystem=0'
更新: 为了方便起见,我将其包装在 shell 脚本中:
#!/bin/bash
# Adds build flag to make cordova-ios@4 work with Xcode 10
cordova "$@" --buildFlag='-UseModernBuildSystem=0'
我将它保存在一个名为 cordova-xcode10
的文件中,确保它在路径中并使其可执行 (chmod a+x cordova-xcode10
),然后我可以这样做:
cordova-xcode10 run ios --target "iPhone-8"
它将与 Xcode 10
一起使用
这个问题是因为Xcode10.
我通过两种方式解决了这个问题。
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
在项目的根目录创建一个 build.json 文件。
在build.json中写下代码。
{
"ios": {
"debug": {
"buildFlag": ["-UseModernBuildSystem=0"]
},
"release": {
"buildFlag": ["-UseModernBuildSystem=0"]
}
}
}
之后您可以运行这些命令而不会出现任何错误。
ionic cordova build ios
ionic cordova run ios
ionic cordova run ios --target="iPhone-6s" -l
这对我有用
Open your workspace file, then File --> WorkSpace Settings
In shared Workspace settings, choose Build System: Legacy Build System.
Then run ionic cordova run -l
更新
我刚刚发现 Cordova IOS 5.0.0 已经发布了。
https://cordova.apache.org/announcements/2019/02/09/cordova-ios-release-5.0.0.html
这对我有用:
cd platforms/ios/cordova && npm install ios-sim@latest
这对我有用:
cordova run ios --debug --target "iPhone-8" --buildFlag='-UseModernBuildSystem=0'
只在你的命令中添加这个标志
cordova run ios --device --buildFlag='-UseModernBuildSystem=0' --verbose
对我来说很好
在更大的上下文中,我求助于创建一个空白项目和 运行 我的构建命令。 同样的错误:
ionic start myApp blank
cd myApp
ionic cordova run ios --debug --target="iPhone-8" --consolelogs
ionic-app-scripts build --target cordova --platform ios
[11:39:29] ionic-app-scripts 3.2.0
[11:39:29] build dev started ...
[11:39:30] clean started ...
[11:39:30] clean finished in 1 ms
[11:39:30] copy started ...
[11:39:30] deeplinks started ...
[11:39:30] deeplinks finished in 15 ms
[11:39:30] transpile started ...
[11:39:33] transpile finished in 3.16 s
[11:39:33] preprocess started ...
[11:39:33] preprocess finished in 1 ms
[11:39:33] webpack started ...
[11:39:33] copy finished in 3.31 s
[11:39:37] webpack finished in 4.35 s
[11:39:37] sass started ...
[11:39:38] sass finished in 1.27 s
[11:39:38] postprocess started ...
[11:39:38] postprocess finished in 10 ms
[11:39:38] lint started ...
[11:39:38] build dev finished in 8.92 s
[11:39:41] lint finished in 2.65 s
> cordova run ios --debug --target iPhone-8
Building for iPhone 8 Simulator
Building project: /myApp/platforms/ios/myApp.xcworkspace
Configuration: Debug
Platform: emulator
Build settings from command line:
CONFIGURATION_BUILD_DIR =
/myApp/platforms/ios/build/emulator
SDKROOT = iphonesimulator12.0
SHARED_PRECOMPS_DIR =
/myApp/platforms/ios/build/sharedpch
Build settings from configuration file '
/myApp/platforms/ios/cordova/build-debug.xcconfig':
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CODE_SIGN_ENTITLEMENTS = $(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-$(CONFIGURATION).plist
CODE_SIGN_IDENTITY = iPhone Developer
ENABLE_BITCODE = NO
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
OTHER_LDFLAGS = -ObjC
SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
/myApp/platforms/ios/build/emulator/myApp.app/Info.plist file not found.
[ERROR] An error occurred while running subprocess cordova.
cordova run ios --debug --target iPhone-8 exited with exit code 1.
Re-running this command with the --verbose flag may provide more
information.
ionic --version
4.1.2
cordova --version
8.0.0 & @latest 8.1.1
XCode Version 10.0 (10A255) + build tools
macOS 10.13.6 - High Sierra. Mojave on a different machine fails the same.
路径已调整,如果有人想知道...
------------修复------------
连同@DaveAlden 的回答,这就是我如何恢复它以在没有错误的情况下进行 livereload:
ionic cordova platform remove ios
sudo npm install -g ionic@3.20.0
ionic cordova platform add ios
open platform/ios/MyApp.xcworkspace
按照说明回退到旧版构建系统 https://github.com/apache/cordova-ios/issues/407
运行 我的构建脚本,没有 --buildFlag='-UseModernBuildSystem=0'
这个问题是因为 Xcode 10 包含一个当前与 cordova-ios@4
- see here.
目前的解决方案是 运行 Cordova 的 --buildFlag='-UseModernBuildSystem=0'
选项指示 Xcode 使用旧的构建系统,例如:
cordova run ios --debug --target "iPhone-8" --buildFlag='-UseModernBuildSystem=0'
更新: 为了方便起见,我将其包装在 shell 脚本中:
#!/bin/bash
# Adds build flag to make cordova-ios@4 work with Xcode 10
cordova "$@" --buildFlag='-UseModernBuildSystem=0'
我将它保存在一个名为 cordova-xcode10
的文件中,确保它在路径中并使其可执行 (chmod a+x cordova-xcode10
),然后我可以这样做:
cordova-xcode10 run ios --target "iPhone-8"
它将与 Xcode 10
一起使用这个问题是因为Xcode10. 我通过两种方式解决了这个问题。
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
在项目的根目录创建一个 build.json 文件。
在build.json中写下代码。
{
"ios": {
"debug": {
"buildFlag": ["-UseModernBuildSystem=0"]
},
"release": {
"buildFlag": ["-UseModernBuildSystem=0"]
}
}
}
之后您可以运行这些命令而不会出现任何错误。
ionic cordova build ios
ionic cordova run ios
ionic cordova run ios --target="iPhone-6s" -l
这对我有用
Open your workspace file, then File --> WorkSpace Settings
In shared Workspace settings, choose Build System: Legacy Build System.
Then run ionic cordova run -l
更新
我刚刚发现 Cordova IOS 5.0.0 已经发布了。 https://cordova.apache.org/announcements/2019/02/09/cordova-ios-release-5.0.0.html
这对我有用:
cd platforms/ios/cordova && npm install ios-sim@latest
这对我有用:
cordova run ios --debug --target "iPhone-8" --buildFlag='-UseModernBuildSystem=0'
只在你的命令中添加这个标志
cordova run ios --device --buildFlag='-UseModernBuildSystem=0' --verbose
对我来说很好