如何解决错误“找不到'Cordova / CDVPlugin.h'文件”(在Azure DevOps Xcode生成步骤期间)?

时间:2019-01-09 20:22:15

标签: xcode azure ionic-framework azure-devops

简介:

自动将Ionic应用程序部署到Apple App Store。

环境:

Dev计算机(Macbook)正在运行:

  • 节点10.14.1
  • 科尔多瓦8.1.1
  • 离子4.5.0
  • Xcode 10.1

Azure DevOps构建管道步骤:

  1. npm安装
  2. 离子命令
  3. 安装Apple证书(已禁用)
  4. 安装Apple供应配置文件(已禁用)
  5. xcode build >>错误在这里,现在已解决-请在下面查看我的答案。
  6. 发布

yaml:

npm安装

steps:
- task: Npm@1
  displayName: 'npm install'
  inputs:
    verbose: false

离子命令

variables:
  IonicVersion: '4.5.0'
  CordovaVersion: '8.1.1'
steps:
- task: ms-vsclient.cordova-extension.ioniccommandtask.IonicCommand@1
  displayName: 'Ionic Command cordova build ios'
  inputs:
    ionicCommand: 'cordova build ios'
    ionicArgs: '--prod --release -- --buildFlag=\"-UseModernBuildSystem=0\"'
    ionicVersion: '$(IonicVersion)'
    cordovaVersion: '$(CordovaVersion)'

xcode构建

variables:
  scheme: ''
steps:
- task: Xcode@5
  displayName: 'Xcode build'
  inputs:
    xcWorkspacePath: '**/MyApp.xcodeproj'
    scheme: '$(scheme)'
    xcodeVersion: 10
    destinationPlatformOption: iOS
    destinationSimulators: 'iPhone 6'

发布

    steps:
    - task: ms-vsclient.app-store.app-store-release.AppStoreRelease@1
    displayName: 'Publish to the App Store TestFlight track'
    inputs:
        serviceEndpoint: 'ACTRA Apple Dev Program'
        ipaPath: '$(build.artifactstagingdirectory)/**/*.ipa'

有效的方法...我可以在开发环境中进行构建和部署,步骤如下:

  1. git clone my_app_repo
  2. ionic cordova build ios --prod --release---buildFlag = \“-UseModernBuildSystem = 0 \”
  3. 打开平台/ios/MyApp.xcodeproj
  4. 为通用iOS设备设置活动方案
  5. 通过“文件”>“项目设置...”选择“旧式构建系统”。
  6. 取消选中并重新选中“自动管理签名”
  7. 从下拉菜单中选择Apple开发团队(供应配置文件-
  8. 通过产品>存档>分发应用程序构建和部署

问题/麻烦:

在Azure DevOps管道的构建步骤中,发生以下错误:

  
    

/Users/vsts/agent/2.144.0/work/1/s/platforms/ios/MyApp/Plugins/ionic-plugin-deeplinks/IonicDeeplinkPlugin.h:1:9:“ Cordova / CDVPlugin.h”文件找不到

  

我在ionic cmd步骤之后删除了powershell脚本,以检查文件夹内容,并且文件夹中存在CDVPlugin.h文件:/Users/vsts/agent/2.144.0/work/1/s/platforms/ ios / CordovaLib / Classes / Public

  
    

也许问题在于在构建过程中解析代理或xcode中的路径。似乎xcode无法解析路径。

  

更新

2019年1月10日-将方案从''更改为'MyApp'以解决构建问题,并继续存档。

参考文献:

  1. Build, test, and deploy Xcode apps in Azure Pipelines
  2. Xcode task
  3. Xcode build task

1 个答案:

答案 0 :(得分:0)

通过将scheme变量正确设置为“ MyApp”,解决了我眼前的构建失败问题。我将继续努力解决这个问题(以及我的答案),以达到最终目标,即拥有一个可运行的Azure DevOps构建管道,该管道将MyApp部署到Apple App Store到TestFlight。出色的事情是签名,归档和部署。

最终Xcode构建(和归档)步骤yaml:

variables:
    configuration: 'Release'
    scheme: 'MyApp'
steps:
    - task: Xcode@5
displayName: 'Xcode build archive'
inputs:
    actions: 'build archive'
    configuration: '$(configuration)'
    xcWorkspacePath: '**/MyApp.xcodeproj'
    scheme: '$(scheme)'
    xcodeVersion: 10