存档失败:Ionic 3 的 Fastlane

Posted

技术标签:

【中文标题】存档失败:Ionic 3 的 Fastlane【英文标题】:Archive failed : Fastlane with Ionic 3 【发布时间】:2018-01-09 11:10:31 【问题描述】:

我第一次尝试在 Testflight 上部署我的 Ionic 3 应用程序。

但是当我运行我的命令时:“sudo fastlane beta”我总是有这个错误:

Check dependencies

Code Signing Error: No profile for team '(TEAM_ID)' matching 'match AppStore (APP_BUNDLE)' found:  Xcode couldn't find any provisioning profiles matching '(TEAM_ID)/match AppStore (APP_BUNDLE)'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor.
Code Signing Error: Code signing is required for product type 'Application' in SDK 'ios 11.1'

** ARCHIVE FAILED **

我真的不知道我该怎么做才能解决这个问题。

我做了什么:

首先,我按照这个来生成我的证书和我的配置文件https://codesigning.guide/ 我没有这个问题。我可以在我的帐户 developerper iOS 上看到我的个人资料。

所以我安装了插件 fastlane Ionic。我像这样编辑了我的 Fastfile:

fastlane_version "2.68.0"
generated_fastfile_id "(FAST LANE ID)"

default_platform :ios

desc "Submit a new Beta Build to Apple TestFlight"
desc "This will also make sure the profile is up to date"
lane :beta do
  match(type: "appstore")
  ionic(platform: 'ios')
  pilot(ipa: ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'])
end

我的应用文件:

app_identifier "(APP_BUNDLE)"
apple_id "(MY APPLE ID)"
team_id "(TEAM_ID)"

但是当我运行 : sudo fastlane beta 时,这一步失败了: ionic cordova compile ios --release --device -- --packageType=app-store --developmentTeam=(TEAM_ID) --provisioningProfile=(PROFILE_GUID)

编辑:我的离子信息:

cli packages: (/Users/ox/Documents/Mobile/ox/node_modules)

    @ionic/cli-utils  : 1.19.0
    ionic (Ionic CLI) : 3.19.0

global packages:

    cordova (Cordova CLI) : 7.1.0 

local packages:

    @ionic/app-scripts : 2.1.0
    Cordova Platforms  : ios 4.5.4
    Ionic Framework    : ionic-angular 3.9.2

System:

    ios-deploy : 1.9.2 
    ios-sim    : 5.1.0 
    Node       : v6.11.3
    npm        : 5.6.0 
    OS         : macOS Sierra
    Xcode      : Xcode 9.1 Build version 9B55 

Environment Variables:

    android_HOME : not set

Misc:

    backend : pro

编辑

我删除并再次添加我的平台 ios: 离子科尔多瓦平台删除ios 离子cordova平台添加ios

我尝试运行 fastlane beta。我保留了我的错误,但有点不同:

Code Signing Error: No profile for team '(TEAM_ID)' matching '(PROFILE_UUID)' found:  Xcode couldn't find any provisioning profiles matching '(TEAM_ID)/(PROFILE_UUID)'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor.
    Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.1'

我在 xcode 中签入,我有这个错误:

【问题讨论】:

你的ionic info 输出是什么?它可以提供重要的环境信息。最好编辑您的问题以添加它。 看起来不错,虽然我发布了一个答案 ionic cordova compile ios 您当前的设置生成的命令实际上看起来不错,release: true 无论如何都是默认设置。无论如何尝试一下,让我知道它是否有效,否则我们将不得不继续寻找...... 你之前对ios项目做过什么奇怪的事情吗?也许用ionic cordova platform remove ios 删除它,然后用ionic cordova platform add ios 再次添加它,然后再次尝试运行车道。 嗯,我不这么认为。我只需要具备推送通知和后台模式的功能。但我也试过没有它们。我将尝试再次删除 iOS 平台。 你不应该正常使用 Xcode(除了你的推送和后台模式 - 但即使你可以通过 Fastlane 做到这一点)。我建议尝试使用ionic start 新创建的新“处女”应用程序,看看这是否适合您。 【参考方案1】:
    你不应该这样做sudo fastlane...!如果需要 root,请尝试使用fastlane beta - 可能您必须重新安装这些工具。此外,推荐的方法是使用bundler 来管理您的 ruby​​ 依赖项 尝试在 Xcode 中执行存档命令,并确保您能够手动构建和签署项目 运行fastlane match 命令以获取您的配置文件(您可能会被要求登录iTunesConnect...) 如果匹配失败 - 请使用参数指定您的团队/应用程序:fastlane action match - 此命令显示您拥有的选项 试试fastlane beta 不要sudo!

【讨论】:

我的旧 Mac 有很多问题。我的公司允许我对其进行更改,并且 fastlane 不再有任何问题。在我的新安装中,我不必使用 sudo。当然,sudo 是魔鬼。感谢您的帮助。【参考方案2】:

如果您想为应用商店构建,您还必须使用ionic() 创建一个release(最好是prod)构建。否则,Xcode 项目会以错误的方式设置为您通过match() 设置的证书。

这应该适合你:

lane :beta do
  match(type: "appstore")
  ionic(
    platform: 'ios',
    prod: true,
    release: true
  )
  pilot(ipa: ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'])
end

另见https://ionic.zone/fastlane/build-your-project-with-ionic-plugin#ios-release-build

【讨论】:

我试过这个,但我遇到了同样的错误。我已经尝试删除并再次添加平台,但没有更好的...

以上是关于存档失败:Ionic 3 的 Fastlane的主要内容,如果未能解决你的问题,请参考以下文章

带有扩展名的应用程序的 Ionic/Cordova iOS 应用程序构建错误 - ** 存档失败 **

使用 Ionic 2/3 的项目存档

由于找不到“Cordova/CDVViewController.h”文件,离子应用程序存档在 xcode 7.2 中失败

在 Swift 3 中存档项目并获得“由于信号分段错误 11 导致命令失败”

Ionic app,错误:..main.ts模块构建失败:错误:ENOENT

Ionic 3 Android Failed Build Manifest 合并失败