加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – CocoaPods中间文件使用xcodebuild构建失败

发布时间:2020-12-16 10:09:28 所属栏目:百科 来源:网络整理
导读:我正在尝试让 xcodebuild使用 CocoaPods项目并遇到问题.我在跑: xcodebuild -workspace 'MyWorkspace.xcworkspace' -scheme DefaultScheme -configuration Release CODE_SIGN_IDENTITY="Distribution Profile" PRODUCT_NAME="MyProduct" 我收到以下错误: T
我正在尝试让 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中运行良好.我已经用谷歌搜索了这个并且尚未找到解决方案.有人有主意吗?

编辑:我也为每个pod获得两行如下所示.

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参数,它会完美运行.那是怎么回事?

解决方法

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

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

问题

原因是PRODUCT_NAME属性不仅影响构建的* .app,还影响CocoaPods的库* .a文件.

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

如果我们在xcodebuild的选项中使用* .xcworkspace在以下命令中设置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_PRODUCT_NAME.app
> xcodebuild构建名为$NEW_PRODUCT_NAME.a的CocoaPods的* .a libray文件,该文件应为libPods-CocoaLumberjack.a和libPods.a

>在链接器步骤中,项目设置要求通过属性-lPods和-lPods-CocoaLumberjack链接库(在您的方案中,它在链接-lPods-AFNetworking时失败).
由于库文件也受PRODUCT_NAME属性的影响,因此链接器无法找到find * .a文件.

>构建失败

我的解决方案

最后,我的解决方案是单独构建项目和CocoaPods库.

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

xcodebuild -project Pods/Pods.xcodeproj build

>使用以下命令构建项目,并在搜索路径中添加CocoaPods和其他必要的库(不要忘记包含所有必需的库)

xcodebuild -project $(TARGET_PROJ) 
           -configuration Distribution 
           -target $(TARGET_TAR) 
           PRODUCT_NAME=$(NEW_PRODUCT_NAME) 
           LIBRARY_SEARCH_PATHS="./Pods/build/Release-iphoneos $OTHER_PATH"

>建立!

这些对我来说有一个单击构建脚本用于相同的二进制文件,但有一些不同图像和设置.希望这可以帮助那些有同样问题的人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读