Xcode 9无法使用pod

时间:2017-06-27 13:01:04

标签: swift xcode cocoapods alamofire code-signing

尝试在Xcode 9 beta 2中构建我的Swift 4项目时,会发生一些代码签名错误,之后我的应用程序的构建将停止。

Xcode中显示的错误:

/usr/bin/codesign --force --sign -  --preserve-metadata=identifier,entitlements '/Users/nickgaens/Library/Developer/Xcode/DerivedData/Emprova_Swift-bbvmoytlhlbqpueyftstselvwhdj/Build/Products/Debug-iphonesimulator/Emprova GPS Swift.app/Frameworks/Alamofire.framework'
/Users/nickgaens/Library/Developer/Xcode/DerivedData/Emprova_Swift-bbvmoytlhlbqpueyftstselvwhdj/Build/Products/Debug-iphonesimulator/Emprova GPS Swift.app/Frameworks/Alamofire.framework: No such file or directory

Screenshot of Xcode error

您可能会注意到,--sign参数后跟一个-字符。

我的设置:

  • Xcode 9 beta 2(9M137d)及其捆绑的Swift 4版本
  • Cocoapods v1.2.1 with Podfile
platform :ios, '10.0'

target 'Emprova GPS Demo Swift' do
  use_frameworks!

  pod 'Alamofire', '~> 4.5.0'
  pod 'AlamofireNetworkActivityIndicator', '~> 2.2.0'
  pod 'KeyClip'
  pod 'Localize-Swift', '~> 1.7.1'
  pod 'FMDB'

end

target 'Emprova GPS Swift' do
  use_frameworks!

  pod 'Alamofire', '~> 4.5.0'
  pod 'AlamofireNetworkActivityIndicator', '~> 2.2.0'
  pod 'KeyClip'
  pod 'Localize-Swift', '~> 1.7.1'
  pod 'FMDB'

end

  • 我没有更改任何添加的pod文件的单个字母。
  • 我打开Pods.xcodeproj检查并仔细检查Alamofire pod / target的Build Settings - Code Signing Identitiy,但设置为Don't Code Sign
  • 我已经检查了我的钥匙串访问应用程序,看看Apple Worldwide Developer Relations Certification Authority是否未过期(它不是)并且被标记为可信(它是)。
  • 我已经多次清空DerivedData目录(~/Library/Developer/Xcode/DerivedData)并执行Clean(通过Cmd+KCmd+Alt+Shift+K都无济于事。
  • 我已尝试将Xcode'命令行工具'(Preferences - Locations - Command Line Tools)设置为Xcode 8.3.3 (8E3004b)Xcode 9.0 (9M137d),但无济于事

在花了几个小时搜索解决方案后,完全没有想法了。有没有人知道为什么Xcode 9不再构建我的项目?

另外,为了完整起见,请链接到我在Alamofires GitHub页面上的问题:#2183

1 个答案:

答案 0 :(得分:3)

我发现了什么错!在欢迎屏幕上选择Xcode时,Xcode继续使用.xcodeproj文件打开我的项目,但是Cocoapods需要使用.xcworkspace文件!之后Xcode的欢迎屏幕上的两个条目之间存在视觉区别:difference between Xcode workspace and project on Welcome screen

打开工作区会在Xcode的Project Navigator中显示两个项目:一个用于我的应用,另一个用于Pods,其中包含所有已安装的窗格。构建应用程序不再显示奇怪的构建错误。