我有一个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目录中,我看到如下内容:
Build
- Intermediates.noindex
- Products
- Release-ios
- project.framework
- CocoaLumberjack-iOS
- JSONModel-iOS
- Pods_project_tvOS.framework当我构建tvOS目标时,它将生成依赖项的( 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或3ONLY_ACTIVE_ARCH设置为YES作为一个测试,我使用Xcode (不使用xcodebuild命令行工具)和构建,这只是一个很好的。所以我的命令有问题。但是,我不能依赖Xcode来构建这个项目,因为我需要从一个命令自动创建一个胖二进制文件,因此我有一个shell脚本两次调用xcodebuild,然后使用lipo组合结果。
发布于 2019-12-10 01:41:02
这看起来像https://github.com/CocoaPods/CocoaPods/issues/8729,它以Xcode 10.2开头,与这个苹果雷达相关。
我们转而使用单平台Podfile运行xcodebuild测试。
另一个可能的解决方法是选择旧的Xcode构建系统。
https://stackoverflow.com/questions/59254725
复制相似问题