我刚刚将我的 MacOS 环境从 Ionic CLI 1.7.14 升级到 v5.2.6。这也要求我将 NodeJS 升级到 v10.16.3。我有几个问题,但其中之一是当我构建应用程序时,未创建 platforms/ios/build
目录。
但是,我可以直接从 Xcode 将应用程序部署到我的测试手机 - 但它全都不稳定,缺少图像,后端服务器 api 调用不工作,应用程序 url 链接到其他应用程序页面不工作。即使从 Xcode 部署之后仍然没有构建目录。同样,Safari 网络检查器会打开一个空白窗口...没有元素、控制台信息,什么都没有。
看来我的构建中没有任何错误。以下是 --verbose 输出:
/users/macknife/dev/MyApp> ionic cordova build ios --buildFlag='-UserModernBuildSystem=0' --verbose
ionic:lib Terminal info: { ci: false, shell: '/bin/bash', tty: true, windows: false } +0ms
ionic:lib CLI global options: { _: [ 'cordova', 'build', 'ios' ], help: null, h: null, verbose: true, quiet: null, interactive: true, color: true, confirm: null, json: null, buildFlag: '-UserModernBuildSystem=0', project: null, '--': [] } +5ms
ionic:lib:project Project type from config: Ionic 1 (ionic1) +0ms
ionic:lib:project Project details: { configPath: '/Users/macknife/dev/MyApp/ionic.config.json', errors: [], context: 'app', type: 'ionic1' } +0ms
ionic Context: { binPath: '/usr/local/lib/node_modules/ionic/bin/ionic', libPath: '/usr/local/lib/node_modules/ionic', execPath: '/Users/macknife/dev/MyApp', version: '5.2.6' } +0ms
ionic:lib:integrations:cordova:config Loading Cordova Config (config.xml: '/Users/macknife/dev/MyApp/config.xml', package.json: '/Users/macknife/dev/MyApp/package.json') +0ms
ionic:lib:build build options: { '--': [],
ionic:lib:build engine: 'cordova',
ionic:lib:build platform: 'ios',
ionic:lib:build project: undefined,
ionic:lib:build verbose: false,
ionic:lib:build type: 'ionic1' } +0ms
ionic:lib:telemetry Sending telemetry for command: 'ionic cordova build' [ 'ios',
ionic:lib:telemetry '--verbose',
ionic:lib:telemetry '--interactive',
ionic:lib:telemetry '--color',
ionic:lib:telemetry '--build-flag=-UserModernBuildSystem=0' ] +0ms
ionic:lib:hooks Looking for ionic:build:before npm script. +0ms
ionic:lib:build Looking for ionic:build npm script. +12ms
> ionic-v1 build
ionic:v1-toolkit:lib:gulp Using gulpfile: /Users/macknife/dev/MyApp/gulpfile.js +0ms
ionic:v1-toolkit:lib:gulp Using gulp: /Users/macknife/dev/MyApp/node_modules/gulp/index.js +2ms
ionic:v1-toolkit:lib:gulp Loaded gulp tasks: { default: { fn: [Function], dep: [ 'sass' ], name: 'default' }, sass: { fn: [Function], dep: [], name: 'sass' }, watch: { fn: [Function], dep: [ 'sass' ], name: 'watch' } } +957ms
[10:25:49] Invoking sass gulp task.
ionic:lib:hooks Looking for ionic:build:after npm script. +3s
> cordova build ios --verbose
No scripts found for hook "before_build".
Executing script found in plugin cordova-custom-config for hook "before_prepare": plugins/cordova-custom-config/hooks/restoreBackups.js
cordova-custom-config: Loaded module dependencies
cordova-custom-config: Running restoreBackups.js
cordova-custom-config: Skipping auto-restore of config file backup(s)
Executing script found in plugin cordova-custom-config for hook "before_prepare": plugins/cordova-custom-config/hooks/applyCustomConfig.js
cordova-custom-config: Loaded module dependencies
cordova-custom-config: Running applyCustomConfig.js
cordova-custom-config: Finished applying platform config
Checking config.xml and package.json for saved platforms that haven't been added to the project
Config.xml and package.json platforms are the same. No pkg.json modification.
Package.json and config.xml platforms are different. Updating config.xml with most current list of platforms.
PlatformApi successfully found for platform ios
Checking for saved plugins that haven't been added to the project
Checking for any plugins added to the project that have not been installed in ios platform
No differences found between plugins added to project and installed in ios platform. Continuing...
Generating platform-specific config.xml from defaults for iOS at /users/macknife/dev/MyApp/platforms/ios/MyApp/config.xml
Merging project's config.xml into platform-specific iOS config.xml
Merging and updating files from [www, platforms/ios/platform_www] to platforms/ios/www
copy www/css/ionic.app.css platforms/ios/www/css/ionic.app.css (updated file)
copy www/css/ionic.app.min.css platforms/ios/www/css/ionic.app.min.css (updated file)
copy www/index.html platforms/ios/www/index.html (updated file)
Current launch storyboard CDVLaunchScreen
Not changing launch storyboard setting in info plist.
Wrote out iOS Bundle Version "0.2.90" to /users/macknife/dev/MyApp/platforms/ios/MyApp/MyApp-Info.plist
No need to update build settings for launch storyboard support.
Set IPHONEOS_DEPLOYMENT_TARGET to "9.3".
Did not update build settings for launch storyboard support.
iOS Product Name has not changed (still "MyApp")
Updating icons at platforms/ios/MyApp/Images.xcassets/AppIcon.appiconset/
Updating splash screens at platforms/ios/MyApp/Images.xcassets/LaunchImage.launchimage/
Updating launch storyboard images at platforms/ios/MyApp/Images.xcassets/LaunchStoryboard.imageset/
Updating Storyboard image set contents.json
This app does not have additional resource files defined
Prepared iOS project successfully
Executing script found in hooks directory for hook "after_prepare": hooks/after_prepare/010_add_platform_class.js
Running command: /users/macknife/dev/MyApp/hooks/after_prepare/010_add_platform_class.js /users/macknife/dev/MyApp
add to body class: platform-ios
Command finished with error code 0: /users/macknife/dev/MyApp/hooks/after_prepare/010_add_platform_class.js /users/macknife/dev/MyApp
Executing script found in plugin cordova-custom-config for hook "after_prepare": plugins/cordova-custom-config/hooks/applyCustomConfig.js
cordova-custom-config: Loaded module dependencies
cordova-custom-config: Running applyCustomConfig.js
cordova-custom-config: Finished applying platform config
Executing script found in plugin cordova-plugin-facebook4 for hook "after_prepare": plugins/cordova-plugin-facebook4/scripts/after_prepare.js
Executing script found in plugin cordova-plugin-firebasex for hook "after_prepare": plugins/cordova-plugin-firebasex/scripts/after_prepare.js
Preparing Firebase on iOS
Ionic:
Ionic CLI : 5.2.6 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic1 1.0.0
@ionic/v1-toolkit : 1.0.22
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : ios 5.0.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 32 other plugins)
Utility:
cordova-res : 0.6.0
native-run : 0.2.8
System:
ios-deploy : 1.9.4
ios-sim : 8.0.2
NodeJS : v10.16.3 (/usr/local/bin/node)
npm : 6.11.2
OS : macOS High Sierra
Xcode : Xcode 10.1 Build version 10B61
======================
凭直觉,我删除了自动安装的 Cordova-plugin-ionic-webview
(在构建新应用程序时这似乎是 Ionic CLI 的标准配置)并恢复使用我以前的 web view-plus(是的,很旧,但在这次 CLI 大升级之前我一直在使用它——而且它工作得很好)。我尝试从控制台再次构建,它没有任何错误,但同样没有 platform/ios/build
文件夹 - 但是,我可以从 Xcode 干净地部署我的应用程序 - 所有不稳定的东西都消失了 - 我的应用程序正在运行,我可以再次从 Safari 网络检查器管理应用程序。 ionic-web view 一定是导致所有问题的原因 - 但仍然无法解释构建问题。
最佳答案
这往往是由于同时安装了多个版本的gulp造成的。
尝试同时删除 package-lock.json
文件和 node_modules
文件夹。然后使用 npm i
重新安装依赖项并再次尝试构建您的应用。
关于ios - Ionic cordova 构建 iOS 不创建构建文件夹并出现 sass gulp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702376/