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)
我已经检查过了
- 证书和构建类型匹配
- config.xml中的WidgetID是正确的
- 证书、配置文件等配置正确
- Ionic 中的安全配置文件配置正确
我使用 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>
我不知道为什么,但可能需要为每个平台定义图标...
我正在尝试为 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)
我已经检查过了
- 证书和构建类型匹配
- config.xml中的WidgetID是正确的
- 证书、配置文件等配置正确
- Ionic 中的安全配置文件配置正确
我使用 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>
我不知道为什么,但可能需要为每个平台定义图标...