ios - 使用 TeamCity 代码设计的 Xcode 8 FaSTLane 构建失败,退出代码为 1

标签 ios teamcity xcode8 macos-sierra codesign

我在 macOS Sierra 上的 Xcode 8.3.2 遇到了一个奇怪的严重问题。我可以使用 faSTLane 或手动执行命令在构建机器上本地构建应用程序。开发和临时构建都可以在本地创建。

 $ fastlane <lane_name>

但是,当从 TeamCity 尝试相同时,它会引发以下错误。
 [exec]/usr/bin/codesign --force --sign 5609CEE02FBF256EDBF60DB28C1A2995A2153B5B --entitlements /Users/<username>/Library/Developer/Xcode/DerivedData/<AppName>-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/IntermediateBuildFilesPath/<AppName>.build/Release-iphoneos/<AppName>.build/<AppName>.app.xcent --timestamp=none /Users/<username>/Library/Developer/Xcode/DerivedData/<AppName>-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/InstallationBuildProductsLocation/Applications/<AppName>.app
 [exec] /Users/<username>/Library/Developer/Xcode/DerivedData/SabaMeeting-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/SabaMeeting/InstallationBuildProductsLocation/Applications/<AppName>.app: unknown error -1=ffffffffffffffff
 [exec] Command /usr/bin/codesign failed with exit code 1
 [exec] 
 [exec] ** ARCHIVE FAILED **
 [exec] 
 [exec] 
 [exec] The following build commands failed:
 [exec]     CodeSign /Users/<username>/Library/Developer/Xcode/DerivedData/SabaMeeting-frpvxgdtafatrrgbjqbbepgfzvak/Build/Intermediates/ArchiveIntermediates/<AppName>/InstallationBuildProductsLocation/Applications/SabaMeeting.app
 [exec] (1 failure)

TeamCity 提取代码甚至执行命令但失败。
构建步骤:使用自定义脚本设置 TeamCity 命令行。
尝试了以下方法但不起作用:
  • Xcode Preferences ->Accounts->Delete already added account and add it again
  • 生成新的分发和开发者证书并安装在 KeyChain 中。新的 Provisioning Profiles 并安装在 Xcode 中。
  • 通过“允许所有应用程序访问此项目”验证对私钥的钥匙串(keychain)访问。将证书从登录移动到系统,并对所有人进行访问控制。
  • 重新安装xcode 8.3.2,重启机器。
  • 已安装 Apple 全局开发者关系证书颁发机构。
  • 应用程序和派生数据目录中不允许使用已验证的资源 fork 、查找器信息或类似的碎屑。 https://developer.apple.com/library/content/qa/qa1940/_index.html
  • 该项目不使用 CocoaPods。
  • 尝试清除 DerivedData。

  • 还有更多的研发。任何帮助将不胜感激。

    最佳答案

    你的车道在你的 fastfile 上看起来如何?请分享它...

    我猜;

    3 通过“允许所有应用程序访问此项目”验证对私钥的钥匙串(keychain)访问。将证书从登录移动到系统,并对所有人进行访问控制。

    Teamcity 可能无法访问您的证书并且失败。

    试试这个;

  • 将证书移回系统登录。
  • 在您的 gym 之前添加以下内容或任何正在构建 .ipa 的 faSTLane 命令。这将让 teamcity 解锁并访问钥匙串(keychain)。

  • 车道 :beta 做 |选项|
      unlock_keychain(path:"login.keychain", password:"yoursystempassword") 
      sh "security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain"   
      gym(scheme: "yourapp", workspace:"probably you dont have a wokrspace so no need")   
    end  
    

    关于ios - 使用 TeamCity 代码设计的 Xcode 8 FaSTLane 构建失败,退出代码为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44403065/

    相关文章:

    iphone - 在 iOS 中的 Orientation 上加载不同的 xib 文件

    javascript - 使用 Team CIty 的 REST API 在构建数组中提取每个构建的更多信息

    continuous-integration - Entity Framework 4.3.1 Migrate.exe 非零退出代码

    ios - 如何查看当前 URLSessionDownloadTask 的恢复能力?

    iOS 快速 : Deint a child ViewController

    ios - Swift - 编辑结构数组的最后一项

    ios - Apple 允许自定义 UIAlertView 吗?

    docker - 如何将 docker 镜像从一个 TeamCity 构建传递到另一个?

    ios - Swift 错误 - 使用未解析的标识符 'kGMSMarkerAnimationPop'

    swift - 将 Sprite Kit View 添加到 UIView Xcode 8.2.1