我有一个Xcode项目,其中有两个目标:一个用于iOS,一个用于tvOS。我正在使用以下命令行命令来构建它:
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引入:
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
- Intermediates.noindex
- Products
- Release-ios
- project.framework
- CocoaLumberjack-iOS
- JSONModel-iOS
- Pods_project_tvOS.framework
构建tvOS目标时,它正在生成both iOS和tvOS版本的依赖项:
Build
- Intermediates.noindex
- Products
- Release-appletvos
- project.framework
- CocoaLumberjack-iOS
- CocoaLumberjack-tvOS
- JSONModel-iOS
- JSONModel-tvOS
- Pods_project_tvOS.framework
我一直在试图弄清楚为什么会这样,因为它导致下游的构建管道中出现其他问题。到目前为止,我已经尝试过:
-xcconfig "..."
修改我的xcodebuild命令(链接到正确的配置文件),但这导致构建失败,声称现在依赖项中存在一个循环:project-tvOS -> CocoaLumberjack-iOS -> project-tvOS
TARGETED_DEVICE_FAMILY
设置为1,2
或3
ONLY_ACTIVE_ARCH
设置为YES
作为测试,我使用Xcode(不使用xcodebuild
命令行工具)和这很好用
xcodebuild
两次,然后使用lipo
合并结果我有一个Xcode项目,其中有两个目标:一个用于iOS,一个用于tvOS。我正在使用以下命令行命令来构建它:xcodebuild -workspace“ /Users/xxx/Code/project.xcworkspace” -scheme“ ...
类似于https://github.com/CocoaPods/CocoaPods/issues/8729,它以与该Apple radar相关的Xcode 10.2开头。