Objective c CocoaPods中间文件生成失败,xcodebuild

Objective c CocoaPods中间文件生成失败,xcodebuild,objective-c,xcode5,cocoapods,xcodebuild,libtool,Objective C,Xcode5,Cocoapods,Xcodebuild,Libtool,我试图让xcodebuild与CocoaPods项目一起工作,但遇到了一个问题。我在跑步: xcodebuild -workspace 'MyWorkspace.xcworkspace' -scheme DefaultScheme -configuration Release CODE_SIGN_IDENTITY="Distribution Profile" PRODUCT_NAME="MyProduct" 我得到以下错误: The following build commands faile

我试图让xcodebuild与CocoaPods项目一起工作,但遇到了一个问题。我在跑步:

xcodebuild -workspace 'MyWorkspace.xcworkspace' -scheme DefaultScheme -configuration Release CODE_SIGN_IDENTITY="Distribution Profile" PRODUCT_NAME="MyProduct"
我得到以下错误:

The following build commands failed:
    Libtool /Users/myuser/repos/MyProjectDir/Build/Intermediates/Pods.build/Release-iphoneos/Pods.build/Objects-normal/armv7s/libsupport.a normal armv7s
    Libtool /Users/myuser/repos/MyProjectDir/Build/Intermediates/Pods.build/Release-iphoneos/Pods.build/Objects-normal/arm64/libsupport.a normal arm64
    Libtool /Users/myuser/repos/MyProjectDir/Build/Intermediates/Pods.build/Release-iphoneos/Pods.build/Objects-normal/armv7/libsupport.a normal armv7
构建在xcode中工作良好。我已经在谷歌上搜索到了这个问题,但还没有找到解决办法。有人有什么想法吗

编辑:我还为每个豆荚得到两行,如下所示

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't locate file for: -lPods-AFNetworking
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: -lPods-AFNetworking is not an object file (not allowed in a library)

第二次编辑:如果我省略PRODUCT_NAME参数,效果会非常好。这是怎么回事?

结果是,
xcodebuild
不喜欢将
PRODUCT\u NAME
参数作为最后一个参数。我完全删除了论点,一切都建立起来了。然后,我将
产品名称
移动到
代码签名(IDENTITY
之前),它成功了。所以,我认为它可能是第二次构建的,因为pods资源是构建的,并且位于派生数据文件夹中。为了验证这一点,我去掉了派生数据并再次构建(最后使用
PRODUCT\u NAME
参数),它构建得很好


老实说,我不知道到底是什么问题。也许这会在将来帮助一些人。如果有人有一个真正的解决方案,我很想听听。

不幸的是
xcodebuild
是我使用过的最糟糕的文档工具之一。可能提到的字符就是问题的症结所在,但我永远不知道:/我可以补充的是,一般来说,您应该避免通过命令行传递参数,例如
PRODUCT\u NAME
。创建多个配置并在构建工件时切换它们要好得多。根据我的经验,我知道这些争论有时会导致奇怪的行为。

我也有同样的问题,并找到了问题的根本原因

环境:Xcode 6.1(6A1052c)、OSX 10.10(14A389)和CocoaPods用于CocoaLumberjack

问题 原因是PRODUCT_NAME属性不仅影响cocoapod的build*.app,还影响library*.a文件

在我的场景中,我需要构建许多*.app文件,这些文件具有不同的产品名称,并且在图像资源和设置方面略有不同。因此,我想在一个构建脚本中构建不同的*.app文件,我只需点击一下就可以触发这个过程

如果我们在以下命令中使用*.xcworkspace在xcodebuild的选项中设置PRODUCT_NAME,会发生以下情况:

xcodebuild -workspace $PROJECT_NAME.xcworkspace \
           -scheme $PROJECT_NAME \
           -configuration Distribution \
           CONFIGURATION_BUILD_DIR=$PROJECT_SRC/build \
           PRODUCT_NAME=$NEW_PRODUCT_NAME build
  • xcodebuild生成$NEW\u PRODUCT\u NAME.app
  • xcodebuild构建*.a名为$NEW\u PRODUCT\u name.a的CocoaPods库文件,应为libPods CoCoCoaLumberJack.alibPods.a
  • 在链接器步骤中,项目设置要求通过属性-lPods-lPods cocoalamberjack链接库(在您的场景中,链接-lPods AFNetworking失败)。 由于库文件也受PRODUCT_NAME属性的影响,链接器无法找到*.a文件。
  • 构建失败
  • 我的解决方案 最后,我的解决方案是分别构建项目和CocoaPods库

  • 在项目的src文件夹中
  • 使用以下命令构建CocoaPods库

    xcodebuild -project Pods/Pods.xcodeproj build
    
  • 使用以下命令构建项目,并在搜索路径中添加cocoapod和其他必要的库(不要忘记包含所有必要的库

  • 建造

  • 这些都是为我有一个一键构建脚本相同的二进制文件,但与一些不同的
    图像和设置。希望这能帮助有同样问题的人。

    我现在也面临同样的问题。当我单独构建pods项目时,根项目的构建会失败,因为无法找到pod依赖项,就像您在“(别忘了包含所有必要的库)”中提到的那样。但是我不能把这个带到工作中去。我要把它们包括在哪里?什么是$OTHER_路径“?
    xcodebuild -project $(TARGET_PROJ) \
               -configuration Distribution \
               -target $(TARGET_TAR) \
               PRODUCT_NAME=$(NEW_PRODUCT_NAME) \
               LIBRARY_SEARCH_PATHS="./Pods/build/Release-iphoneos $OTHER_PATH"