首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当只请求iOS和tvOS目标时,xcodebuild同时构建tvOS和tvOS目标

当只请求iOS和tvOS目标时,xcodebuild同时构建tvOS和tvOS目标
EN

Stack Overflow用户
提问于 2019-12-09 18:33:11
回答 1查看 620关注 0票数 2

我有一个Xcode项目,有两个目标:一个用于iOS,一个用于tvOS。我使用以下命令行命令来构建它:

代码语言:javascript
复制
xcodebuild -workspace "/Users/xxx/Code/project.xcworkspace" -scheme "tvOS" -configuration Release -sdk appletvos ONLY_ACTIVE_ARCH=NO BUILD_DIR="/Users/xxx/Library/Developer/Xcode/DerivedData/project-abcdef/Build/Products" BUILD_ROOT="/Users/xxx/Library/Developer/Xcode/DerivedData/project-abcdef/Build/Products" BITCODE_GENERATION_MODE=bitcode ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode"

我的项目有两个依赖项通过CocoaPods与下面的Podfile进行关联:

代码语言:javascript
复制
use_frameworks!

def common()
    pod 'CocoaLumberjack', '~> 3.5'
    pod 'JSONModel', '~> 1.8'
end

target 'iOS' do
    platform :ios, '9.0'
    common()
    pod 'GoogleAds-IMA-iOS-SDK', '~> 3.9'
end

target 'tvOS' do
    platform :tvos, '9.1'
    common()
    pod 'GoogleAds-IMA-tvOS-SDK', '~> 4.2'
end

当我构建iOS目标时,它工作得很好。在build目录中,我看到如下内容:

代码语言:javascript
复制
Build
  - Intermediates.noindex
  - Products
    - Release-ios
       - project.framework
       - CocoaLumberjack-iOS
       - JSONModel-iOS
       - Pods_project_tvOS.framework

当我构建tvOS目标时,它将生成依赖项的( iOS和tvOS版本):

代码语言:javascript
复制
Build
  - Intermediates.noindex
  - Products
    - Release-appletvos
       - project.framework
       - CocoaLumberjack-iOS
       - CocoaLumberjack-tvOS
       - JSONModel-iOS
       - JSONModel-tvOS
       - Pods_project_tvOS.framework

我一直在试图找出为什么会发生这种情况,因为它会导致下游的构建管道出现更多的问题。到目前为止,我已经尝试过:

  • 在building中,我注意到为我没有构建的各种SDK设置了“版本”(例如,有一个默认的Apple版本,或者在iOS目标上有一个默认的tvOS版本)。除了我要构建的SDK之外,我使用空白值覆盖了这些默认版本
  • 在Project > Info下,我注意到CocoaPods添加了“Configuration”,其中有4个文件,如“Pods-Project-tvOS.Relase.xcconfig”。我尝试用-xcconfig "..."修改xcodebuild命令(链接到适当的配置文件),但这导致了构建失败,声称现在存在依赖关系循环:project-tvOS -> CocoaLumberjack-iOS -> project-tvOS
  • 我已经尝试过将TARGETED_DEVICE_FAMILY手动设置为1,23
  • 我尝试过将ONLY_ACTIVE_ARCH设置为YES

作为一个测试,我使用Xcode (不使用xcodebuild命令行工具)和构建,这只是一个很好的。所以我的命令有问题。但是,我不能依赖Xcode来构建这个项目,因为我需要从一个命令自动创建一个胖二进制文件,因此我有一个shell脚本两次调用xcodebuild,然后使用lipo组合结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-10 01:41:02

这看起来像https://github.com/CocoaPods/CocoaPods/issues/8729,它以Xcode 10.2开头,与这个苹果雷达相关。

我们转而使用单平台Podfile运行xcodebuild测试。

另一个可能的解决方法是选择旧的Xcode构建系统。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59254725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档