Cordova无法从CLI构建,但从XCode xcworkspace构建完美

Jam*_*ist 5 xcode ios cocoapods cordova firebase-cloud-messaging

我最近将https://github.com/chemerisuk/cordova-plugin-firebase-messaging添加到我的cordova项目中,该项目具有框架依赖性

    <framework src="Firebase/Core" type="podspec" spec="~> 5.0"/>
    <framework src="Firebase/Messaging" type="podspec" spec="~> 5.2"/>
Run Code Online (Sandbox Code Playgroud)

我最初在Android上测试代码和一切,它就像一个魅力.

但是,在我努力在iOS上测试我的更改时,我在运行cordova run android或任何其他构建命令时很快遇到了一些问题.他们倾向于失败,错误暗指CocoaPods Linking问题.如:

platforms/ios/Pods/FirebaseCore/Firebase/Core/FIRNetwork.m:23:9: 
    fatal error: 'GoogleToolboxForMac/GTMNSData+zlib.h' file not found
#import <GoogleToolboxForMac/GTMNSData+zlib.h>
Run Code Online (Sandbox Code Playgroud)

我找到了各种SO帖子,提到修复搜索路径或修改.m文件以引用相对路径(这是一个可怕的想法和太多的工作).

但这是问题所在,我知道这个项目是正确的.如果我打开我的.xcworkspace并从XCode运行它就可以完美运行!它仅在从命令行运行时出现问题.

Installed platforms:
android 7.1.0
ios 4.5.5

$ cordova -version
8.0.0

Xcode 9.4.1
Build version 9F2000

$ pod --version
1.5.3
Run Code Online (Sandbox Code Playgroud)

我完全不知所措.任何帮助将不胜感激!

我的Podfile以防万一

# DO NOT MODIFY -- auto-generated by Apache Cordova
platform :ios, '8.0'
target 'VeociSTAGE' do
        project 'VeociSTAGE.xcodeproj'
        pod 'Firebase/Core', '~> 5.0'
        pod 'Firebase/Messaging', '~> 5.2'
        pod 'GoogleToolboxForMac', '~> 2.1.4'
end
Run Code Online (Sandbox Code Playgroud)

编辑:

Podfile.lock

PODS:
  - Firebase/Core (5.2.0):
    - Firebase/CoreOnly
    - FirebaseAnalytics (= 5.0.1)
  - Firebase/CoreOnly (5.2.0):
    - FirebaseCore (= 5.0.3)
  - Firebase/Messaging (5.2.0):
    - Firebase/CoreOnly
    - FirebaseMessaging (= 3.0.2)
  - FirebaseAnalytics (5.0.1):
    - FirebaseCore (~> 5.0)
    - FirebaseInstanceID (~> 3.0)
    - "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
    - nanopb (~> 0.3)
  - FirebaseCore (5.0.3):
    - "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
  - FirebaseInstanceID (3.1.0):
    - FirebaseCore (~> 5.0)
  - FirebaseMessaging (3.0.2):
    - FirebaseCore (~> 5.0)
    - FirebaseInstanceID (~> 3.0)
    - GoogleToolboxForMac/Logger (~> 2.1)
    - Protobuf (~> 3.1)
  - GoogleToolboxForMac (2.1.4):
    - GoogleToolboxForMac/Core (= 2.1.4)
    - GoogleToolboxForMac/Defines (= 2.1.4)
    - GoogleToolboxForMac/GeometryUtils (= 2.1.4)
    - GoogleToolboxForMac/KVO (= 2.1.4)
    - GoogleToolboxForMac/Logger (= 2.1.4)
    - "GoogleToolboxForMac/NSData+zlib (= 2.1.4)"
    - "GoogleToolboxForMac/NSDictionary+URLArguments (= 2.1.4)"
    - "GoogleToolboxForMac/NSFileHandle+UniqueName (= 2.1.4)"
    - "GoogleToolboxForMac/NSScanner+JSON (= 2.1.4)"
    - "GoogleToolboxForMac/NSString+HTML (= 2.1.4)"
    - "GoogleToolboxForMac/NSString+URLArguments (= 2.1.4)"
    - "GoogleToolboxForMac/NSString+XML (= 2.1.4)"
    - "GoogleToolboxForMac/NSThread+Blocks (= 2.1.4)"
    - GoogleToolboxForMac/Regex (= 2.1.4)
    - GoogleToolboxForMac/StringEncoding (= 2.1.4)
    - GoogleToolboxForMac/SystemVersion (= 2.1.4)
    - GoogleToolboxForMac/URLBuilder (= 2.1.4)
  - GoogleToolboxForMac/Core (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/DebugUtils (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/Defines (2.1.4)
  - GoogleToolboxForMac/GeometryUtils (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/KVO (2.1.4):
    - GoogleToolboxForMac/Core (= 2.1.4)
    - GoogleToolboxForMac/DebugUtils (= 2.1.4)
  - GoogleToolboxForMac/Logger (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - "GoogleToolboxForMac/NSData+zlib (2.1.4)":
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - "GoogleToolboxForMac/NSDictionary+URLArguments (2.1.4)":
    - GoogleToolboxForMac/DebugUtils (= 2.1.4)
    - GoogleToolboxForMac/Defines (= 2.1.4)
    - "GoogleToolboxForMac/NSString+URLArguments (= 2.1.4)"
  - "GoogleToolboxForMac/NSFileHandle+UniqueName (2.1.4)":
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - "GoogleToolboxForMac/NSScanner+JSON (2.1.4)":
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - "GoogleToolboxForMac/NSString+HTML (2.1.4)":
    - GoogleToolboxForMac/Core (= 2.1.4)
  - "GoogleToolboxForMac/NSString+URLArguments (2.1.4)"
  - "GoogleToolboxForMac/NSString+XML (2.1.4)":
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - "GoogleToolboxForMac/NSThread+Blocks (2.1.4)":
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/Regex (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/StringEncoding (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/SystemVersion (2.1.4):
    - GoogleToolboxForMac/Defines (= 2.1.4)
  - GoogleToolboxForMac/URLBuilder (2.1.4):
    - GoogleToolboxForMac/Core (= 2.1.4)
    - GoogleToolboxForMac/Defines (= 2.1.4)
    - "GoogleToolboxForMac/NSDictionary+URLArguments (= 2.1.4)"
    - "GoogleToolboxForMac/NSString+URLArguments (= 2.1.4)"
  - nanopb (0.3.8):
    - nanopb/decode (= 0.3.8)
    - nanopb/encode (= 0.3.8)
  - nanopb/decode (0.3.8)
  - nanopb/encode (0.3.8)
  - Protobuf (3.6.0)

DEPENDENCIES:
  - Firebase/Core (~> 5.0)
  - Firebase/Messaging (~> 5.2)
  - GoogleToolboxForMac (~> 2.1.4)

SPEC REPOS:
  https://github.com/cocoapods/specs.git:
    - Firebase
    - FirebaseAnalytics
    - FirebaseCore
    - FirebaseInstanceID
    - FirebaseMessaging
    - GoogleToolboxForMac
    - nanopb
    - Protobuf

SPEC CHECKSUMS:
  Firebase: 25ed0412036d7d008568d1fb4d2e9d81ea8a0a2c
  FirebaseAnalytics: b3628aea54c50464c32c393fb2ea032566e7ecc2
  FirebaseCore: a3c87242451633fff8490183898075ce77d168d2
  FirebaseInstanceID: 05d779cbb97bd5bd5c51a38a903fc9cfe1b2454a
  FirebaseMessaging: 6894b8fe0a0cf26c3b13dad729f1131654ae0bdb
  GoogleToolboxForMac: 91c824d21e85b31c2aae9bb011c5027c9b4e738f
  nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
  Protobuf: 0fc0ad8bec688b2a3017a139953e01374fedbd5f

PODFILE CHECKSUM: 6a610b85e4adb104d20d7784dc2566b45be5418c

COCOAPODS: 1.5.3
Run Code Online (Sandbox Code Playgroud)

编辑

这是我刚刚运行的有趣的事情xcodebuild -workspace Project.xcworkspace -scheme Project,它成功构建.我有一种感觉,cordova的目标是.xcodeproj,而不是.xcworkspace.更多的调查来......

编辑 它不是针对xcodeproj而是针对xcworkspace但是在.xcconfig中指定的问题似乎是platforms/ios/cordova/lib/build.js

jce*_*ile 1

这是一个已知的问题

cordova build该问题似乎与使用标志的命令有关-xcconfig,并且该标志由于某种未知原因导致了问题。目前正在调查此事。