iOS 的 Cordova 应用构建失败 ** 存档失败 **

Corodva app build fails for iOS ** ARCHIVE FAILED **

我正在尝试为 iOS 构建我的 cordova 应用程序作为基于 Ionic AppFlow 的云构建。 Android 构建工作正常。这是控制台输出:

Running with gitlab-runner 10.2.0~beta.147.gbd1f3fcb (bd1f3fcb)
  on ip-10-2-129-245 (dc549c99)
Creating new VM...
Running on Ionics-Mac-4.local via ip-10-2-129-245...
Cloning repository...
Cloning into 'builds/skico/sc-candidate-app-cordova'...
Checking out 16fe59ae as master...
Updating/initializing submodules...
$ fetch-updates || true
Checking for build process updates...
$ build-ios
Setting up project pipeline...
Running build process...
+--------------------------------------------+---------+----------------------------+
|                                   Used plugins                                    |
+--------------------------------------------+---------+----------------------------+
| Plugin                                     | Version | Action                     |
+--------------------------------------------+---------+----------------------------+
| fastlane-plugin-update_project_codesigning | 0.2.0   | update_project_codesigning |
+--------------------------------------------+---------+----------------------------+

[12:27:03]: Sending anonymous analytics information
[12:27:03]: Learn more at https://docs.fastlane.tools/#metrics
[12:27:03]: No personal or sensitive data is sent.
[12:27:03]: You can disable this by adding `opt_out_usage` at 
.........

+---------------------+---------------------------+
|                  Build Summary                  |
+---------------------+---------------------------+
| Job ID              | 6756030                   |
| Node.js version     | v10.16.0                  |
| Cordova CLI version | 9.0.3 (cordova-lib@9.0.2) |
| npm version         | 6.9.0                     |
| macOS version       | 10.14.5                   |
| Xcode version       | Xcode 10.2.1              |
|                     | Build version 10E1001     |
+---------------------+---------------------------+

[12:27:08]: --------------------------------
[12:27:08]: --- Step: detect_native_type ---
[12:27:08]: --------------------------------
[12:27:08]: Checking if cordova or capacitor project
[12:27:08]: Cordova project detected
[12:27:08]: -------------------------
[12:27:08]: --- Step: get_web_dir ---
[12:27:08]: -------------------------
[12:27:08]: webDir is `www`
[12:27:08]: ---------------------------------
[12:27:08]: --- Step: add_git_credentials ---
[12:27:08]: ---------------------------------
[12:27:08]: Writing git-credentials files
[12:27:08]: git-credentials successfully added to project
[12:27:08]: -------------------------------
[12:27:08]: --- Step: modify_config_xml ---
[12:27:08]: -------------------------------
[12:27:08]: No custom native config detected.
[12:27:08]: -----------------------------
[12:27:08]: --- Step: create_keychain ---
[12:27:08]: -----------------------------
[12:27:08]: $ security list-keychains -d user
[12:27:08]: ▸ "/Users/ionic/Library/Keychains/login.keychain-db"
[12:27:08]: ----------------------------
[12:27:08]: --- Step: download_certs ---
[12:27:08]: ----------------------------

[12:16:54]: ▸ Compiling NSDictionary+CordovaPreferences.m
[12:16:58]: ▸ Compiling CDVWhitelist.m
[12:16:58]: ▸ Compiling NSMutableArray+QueueAdditions.m
[12:16:58]: ▸ Compiling NSDictionary+CordovaPreferences.m
[12:16:58]: ▸ Compiling CDVWhitelist.m
[12:16:58]: ▸ Compiling CDVViewController.m
[12:16:58]: ▸ Compiling CDVUserAgentUtil.m
[12:16:58]: ▸ Compiling CDVURLProtocol.m
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:60:9: 'ALAssetsLibraryAssetForURLResultBlock' is deprecated: first deprecated in iOS 9.0 - Use fetchAssetsWithLocalIdentifiers:options: on PHAsset to fetch assets by local identifier (or to lookup PHAssets by a previously known ALAssetPropertyAssetURL use fetchAssetsWithALAssetURLs:options:) from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset* asset) {
[12:16:58]: ▸         ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:63:69: 'defaultRepresentation' is deprecated: first deprecated in iOS 9.0 - Use PHImageRequestOptions with the PHImageManager from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetRepresentation* assetRepresentation = [asset defaultRepresentation];
[12:16:58]: ▸                ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:64:142: 'UTI' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager for a PHAsset to request image data from the Photos framework and check the dataUTI passed to your result handler instead [-Wdeprecated-declarations]
[12:16:58]: ▸ NSString* MIMEType = (__bridge_transfer NSString*)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)[assetRepresentation UTI], kUTTagClassMIMEType);
[12:16:58]: ▸ ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:65:82: 'size' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager to request image data for a PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ Byte* buffer = (Byte*)malloc((unsigned long)[assetRepresentation size]);
[12:16:58]: ▸ ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:66:133: 'size' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager to request image data for a PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ NSUInteger bufferSize = [assetRepresentation getBytes:buffer fromOffset:0.0 length:(NSUInteger)[assetRepresentation size] error:nil];
[12:16:58]: ▸ ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:66:62: 'getBytes:fromOffset:length:error:' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager to request image data for a PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ NSUInteger bufferSize = [assetRepresentation getBytes:buffer fromOffset:0.0 length:(NSUInteger)[assetRepresentation size] error:nil];
[12:16:58]: ▸ ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:60:63: 'ALAsset' is deprecated: first deprecated in iOS 9.0 - Use PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset* asset) {
[12:16:58]: ▸ ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:63:17: 'ALAssetRepresentation' is deprecated: first deprecated in iOS 9.0 - Use PHImageRequestOptions with the PHImageManager from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetRepresentation* assetRepresentation = [asset defaultRepresentation];
[12:16:58]: ▸            ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:74:9: 'ALAssetsLibraryAccessFailureBlock' is deprecated: first deprecated in iOS 9.0 - Use the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError* error) {
[12:16:58]: ▸            ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:79:9: 'ALAssetsLibrary' is deprecated: first deprecated in iOS 9.0 - Use PHPhotoLibrary from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetsLibrary* assetsLibrary = [[ALAssetsLibrary alloc] init];
[12:16:58]: ▸                ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:79:60: 'ALAssetsLibrary' is deprecated: first deprecated in iOS 9.0 - Use PHPhotoLibrary from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ ALAssetsLibrary* assetsLibrary = [[ALAssetsLibrary alloc] init];
[12:16:58]: ▸            ^
[12:16:58]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:80:24: 'assetForURL:resultBlock:failureBlock:' is deprecated: first deprecated in iOS 9.0 - Use fetchAssetsWithLocalIdentifiers:options: on PHAsset to fetch assets by local identifier (or to lookup PHAssets by a previously known ALAssetPropertyAssetURL use fetchAssetsWithALAssetURLs:options:) from the Photos framework instead [-Wdeprecated-declarations]
[12:16:58]: ▸ [assetsLibrary assetForURL:url resultBlock:resultBlock failureBlock:failureBlock];
[12:16:58]: ▸            ^
[12:16:58]: ▸ Compiling CDVUIWebViewNavigationDelegate.m
[12:16:58]: ▸ Compiling CDVUIWebViewEngine.m
[12:16:58]: ▸ Compiling CDVUIWebViewDelegate.m
[12:16:58]: ▸ Compiling CDVTimer.m
[12:16:58]: ▸ Compiling CDVPluginResult.m
[12:16:58]: ▸ Compiling CDVPlugin.m
[12:16:58]: ▸ Compiling CDVPlugin+Resources.m
[12:16:58]: ▸ Compiling CDVLogger.m
[12:16:58]: ▸ Compiling CDVLocalStorage.m
[12:16:58]: ▸ Compiling CDVJSON_private.m
[12:16:58]: ▸ Compiling CDVInvokedUrlCommand.m
[12:16:58]: ▸ Compiling CDVIntentAndNavigationFilter.m
[12:16:58]: ▸ Compiling CDVHandleOpenURL.m
[12:16:58]: ▸ Compiling CDVGestureHandler.m
[12:16:58]: ▸ Compiling CDVConfigParser.m
[12:16:58]: ▸ Compiling CDVCommandQueue.m
[12:16:58]: ▸ Compiling CDVCommandDelegateImpl.m
[12:16:58]: ▸ Compiling CDVAppDelegate.m
[12:16:58]: ▸ Compiling CDVViewController.m
[12:17:00]: ▸ Compiling CDVUserAgentUtil.m
[12:17:00]: ▸ Building library libCordova.a
[12:17:00]: ▸ Compiling CDVURLProtocol.m
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:60:9: 'ALAssetsLibraryAssetForURLResultBlock' is deprecated: first deprecated in iOS 9.0 - Use fetchAssetsWithLocalIdentifiers:options: on PHAsset to fetch assets by local identifier (or to lookup PHAssets by a previously known ALAssetPropertyAssetURL use fetchAssetsWithALAssetURLs:options:) from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset* asset) {
[12:17:00]: ▸ ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:63:69: 'defaultRepresentation' is deprecated: first deprecated in iOS 9.0 - Use PHImageRequestOptions with the PHImageManager from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetRepresentation* assetRepresentation = [asset defaultRepresentation];
[12:17:00]: ▸                ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:64:142: 'UTI' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager for a PHAsset to request image data from the Photos framework and check the dataUTI passed to your result handler instead [-Wdeprecated-declarations]
[12:17:00]: ▸ NSString* MIMEType = (__bridge_transfer NSString*)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)[assetRepresentation UTI], kUTTagClassMIMEType);
[12:17:00]: ▸ ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:65:82: 'size' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager to request image data for a PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ Byte* buffer = (Byte*)malloc((unsigned long)[assetRepresentation size]);
[12:17:00]: ▸ ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:66:133: 'size' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager to request image data for a PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ NSUInteger bufferSize = [assetRepresentation getBytes:buffer fromOffset:0.0 length:(NSUInteger)[assetRepresentation size] error:nil];
[12:17:00]: ▸ ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:66:62: 'getBytes:fromOffset:length:error:' is deprecated: first deprecated in iOS 9.0 - Use requestImageDataForAsset:options:resultHandler: on PHImageManager to request image data for a PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ NSUInteger bufferSize = [assetRepresentation getBytes:buffer fromOffset:0.0 length:(NSUInteger)[assetRepresentation size] error:nil];
[12:17:00]: ▸ ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:60:63: 'ALAsset' is deprecated: first deprecated in iOS 9.0 - Use PHAsset from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset* asset) {
[12:17:00]: ▸ ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:63:17: 'ALAssetRepresentation' is deprecated: first deprecated in iOS 9.0 - Use PHImageRequestOptions with the PHImageManager from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetRepresentation* assetRepresentation = [asset defaultRepresentation];
[12:17:00]: ▸            ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:74:9: 'ALAssetsLibraryAccessFailureBlock' is deprecated: first deprecated in iOS 9.0 - Use the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError* error) {
[12:17:00]: ▸            ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:79:9: 'ALAssetsLibrary' is deprecated: first deprecated in iOS 9.0 - Use PHPhotoLibrary from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetsLibrary* assetsLibrary = [[ALAssetsLibrary alloc] init];
[12:17:00]: ▸                ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:79:60: 'ALAssetsLibrary' is deprecated: first deprecated in iOS 9.0 - Use PHPhotoLibrary from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ ALAssetsLibrary* assetsLibrary = [[ALAssetsLibrary alloc] init];
[12:17:00]: ▸            ^
[12:17:00]: ▸ ⚠️  /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/CordovaLib/Classes/Public/CDVURLProtocol.m:80:24: 'assetForURL:resultBlock:failureBlock:' is deprecated: first deprecated in iOS 9.0 - Use fetchAssetsWithLocalIdentifiers:options: on PHAsset to fetch assets by local identifier (or to lookup PHAssets by a previously known ALAssetPropertyAssetURL use fetchAssetsWithALAssetURLs:options:) from the Photos framework instead [-Wdeprecated-declarations]
[12:17:00]: ▸ [assetsLibrary assetForURL:url resultBlock:resultBlock failureBlock:failureBlock];
[12:17:00]: ▸            ^
[12:17:00]: ▸ Compiling CDVUIWebViewNavigationDelegate.m
[12:17:00]: ▸ Compiling CDVUIWebViewEngine.m
[12:17:00]: ▸ Compiling CDVUIWebViewDelegate.m
[12:17:00]: ▸ Compiling CDVTimer.m
[12:17:00]: ▸ Compiling CDVPluginResult.m
[12:17:00]: ▸ Compiling CDVPlugin.m
[12:17:00]: ▸ Compiling CDVPlugin+Resources.m
[12:17:00]: ▸ Compiling CDVLogger.m
[12:17:00]: ▸ Compiling CDVLocalStorage.m
[12:17:01]: ▸ Compiling CDVJSON_private.m
[12:17:01]: ▸ Compiling CDVInvokedUrlCommand.m
[12:17:01]: ▸ Compiling CDVIntentAndNavigationFilter.m
[12:17:01]: ▸ Compiling CDVHandleOpenURL.m
[12:17:01]: ▸ Compiling CDVGestureHandler.m
[12:17:01]: ▸ Compiling CDVConfigParser.m
[12:17:01]: ▸ Compiling CDVCommandQueue.m
[12:17:01]: ▸ Compiling CDVCommandDelegateImpl.m
[12:17:01]: ▸ Compiling CDVAppDelegate.m
[12:17:01]: ▸ Building library libCordova.a
[12:17:02]: ▸ Running script '[CP] Check Pods Manifest.lock'
[12:17:02]: ▸ Running script 'Copy www directory'
[12:17:03]: ▸ Compiling CDVLaunchScreen.storyboard
[12:17:08]: ▸ Compiling MainViewController.xib
[12:17:09]: ▸ ** ARCHIVE FAILED **
[12:17:09]: ▸ The following build commands failed:
[12:17:09]: ▸ CompileAssetCatalog /Users/ionic/Library/Developer/Xcode/DerivedData/s-gponuhqwbnfygkcatdvqkdodeepi/Build/Intermediates.noindex/ArchiveIntermediates/s/InstallationBuildProductsLocation/Applications/s.app /Users/ionic/builds/skico/sc-candidate-app-cordova/platforms/ios/s/Images.xcassets
[12:17:09]: ▸ (1 failure)

我已经检查过了

我使用 XCode 10 作为构建工具。

一切都无济于事。

还有什么可能导致错误的原因?

(我无法 post 整个输出,如果您需要其他部分,请告诉我)

编辑:这是我的 package.json:

{
  "name": "app",
  "version": "0.0.0",
  "main": "index.js",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --host 0.0.0.0",
    "build": "ng build",
    "webbuild": "ng build --configuration web",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@agm/core": "^1.0.0-beta.7",
    "@angular/animations": "^8.1.0",
    "@angular/common": "~8.1.0",
    "@angular/compiler": "~8.1.0",
    "@angular/core": "~8.1.0",
    "@angular/forms": "~8.1.0",
    "@angular/platform-browser": "~8.1.0",
    "@angular/platform-browser-dynamic": "~8.1.0",
    "@angular/pwa": "^0.803.20",
    "@angular/router": "~8.1.0",
    "@angular/service-worker": "~8.1.0",
    "@aspnet/signalr": "^1.1.4",
    "@fortawesome/angular-fontawesome": "^0.2.0",
    "@fortawesome/fontawesome-pro": "^5.8.2",
    "@fortawesome/fontawesome-svg-core": "^1.2.19",
    "@fortawesome/pro-light-svg-icons": "^5.9.0",
    "@fortawesome/pro-regular-svg-icons": "^5.9.0",
    "@fortawesome/pro-solid-svg-icons": "^5.9.0",
    "@ng-bootstrap/ng-bootstrap": "^5.0.0",
    "body-scroll-lock": "^2.6.4",
    "bootstrap": "^4.3.1",
    "cordova-android": "^8.1.0",
    "cordova-browser": "^6.0.0",
    "cordova-plugin-device": "^2.0.3",
    "cordova-plugin-ionic": "^5.4.5",
    "cordova-plugin-ionic-webview": "^4.1.3",
    "core-js": "^3.2.1",
    "gulp": "^4.0.2",
    "moment": "^2.24.0",
    "ng5-slider": "^1.2.4",
    "ngx-slimscroll": "^7.1.0",
    "onesignal-cordova-plugin": "^2.8.1",
    "perfect-scrollbar": "^1.4.0",
    "rxjs": "~6.5.3",
    "simplebar": "^4.1.0",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.801.0",
    "@angular-devkit/build-ng-packagr": "~0.801.0",
    "@angular/cli": "~8.1.0",
    "@angular/compiler-cli": "~8.1.0",
    "@angular/language-service": "~8.1.0",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "@types/googlemaps": "^3.30.19",
    "codelyzer": "^5.0.0",
    "gulp-concat": "^2.6.1",
    "gulp-git": "^2.9.0",
    "gulp-run": "^1.7.1",
    "gulp-sass": "^4.0.2",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "ng-packagr": "^5.1.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tsickle": "^0.35.0",
    "tslint": "~5.15.0",
    "typescript": "~3.4.3",
    "yargs": "^13.2.4",
    "cordova-plugin-whitelist": "^1.3.4"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {},
      "cordova-plugin-device": {},
      "onesignal-cordova-plugin": {},
      "cordova-plugin-ionic": {
        "APP_ID": "--app-id=\"foo\" \",
        "CHANNEL_NAME": "Production",
        "UPDATE_METHOD": "none",
        "MAX_STORE": "2",
        "MIN_BACKGROUND_DURATION": "30",
        "UPDATE_API": "https://api.ionicjs.com"
      },
      "cordova-plugin-ionic-webview": {}
    },
    "platforms": [
      "browser",
      "android"
    ]
  }
}

...以及控制台输出的最后几位:

Your `export_method` in gym is defined as `development`
[13:56:24]: which might cause problems when signing your application
[13:56:24]: Are you sure want to build and export for development?
[13:56:24]: Please make sure to define the correct export methods when calling
[13:56:24]: gym in your Fastfile or from the command line
[13:56:24]: 
[13:56:24]: 
[13:56:24]: Looks like fastlane ran into a build/archive error with your project
[13:56:24]: It's hard to tell what's causing the error, so we wrote some guides on how
[13:56:24]: to troubleshoot build and signing issues: https://docs.fastlane.tools/codesigning/getting-started/
[13:56:24]: Before submitting an issue on GitHub, please follow the guide above and make
[13:56:24]: sure your project is set up correctly.
[13:56:24]: fastlane uses `xcodebuild` commands to generate your binary, you can see the
[13:56:24]: the full commands printed out in yellow in the above log.
[13:56:24]: Make sure to inspect the output above, as usually you'll find more error information there

通过从 config.xml 中删除图标定义修复了错误:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.s.app" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>s</name>
    <description>
        Foo
    </description>

    <!-- THE FOLLOWING LINE CAUSED THE ERROR -->
    <!-- <icon src="resources/icon.png" /> -->

    <author email="info@s.com" href="https://www.s.com">
        sGmbH
    </author>
    <content src="index.html" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
</widget>

我不知道为什么,但可能需要为每个平台定义图标...