gpt4 book ai didi

ios - 在不破坏 xcodebuild 存档的情况下将 os x 工具构建为 iOS 项目的一部分?

转载 作者:行者123 更新时间:2023-11-29 02:13:45 27 4
gpt4 key购买 nike

每次构建 iOS 项目时,我都希望它也构建几个 OS X 项目。这些是命令行工具。我不在乎它们是否包含在存档中,我只是想确保它们每次都能正确编译。

它们是用于访问相同库的特定任务的小命令行工具。过去,我构建这些的频率要低得多,因此它们会遭受代码腐烂的困扰。我希望每次构建 iOS 项目时都构建它们,即使我只是在 Xcode 中构建。

为此,我尝试将项目拖到我的 iOS 项目中并将它们设置为依赖项。

这在 IDE 中工作正常,但是当我尝试通过 xcodebuild 构建时:

xcrun xcodebuild -sdk iphoneos -workspace AppName.xcworkspace \
-scheme AppName archive

我收到如下错误:

=== BUILD TARGET dslfi OF PROJECT dslfi WITH CONFIGURATION Release ===

Check dependencies
target specifies product type 'com.apple.product-type.tool', but there's no such
product type for the 'iphoneos' platform

** ARCHIVE FAILED **

The following build commands failed:
Check dependencies
(1 failure)

有什么方法可以在每次构建时继续构建这些,同时仍然满足 xcodebuild 的要求?

最佳答案

  1. 您可以将任意数量的目标(iOS 应用程序、静态库、控制台应用程序等)添加到同一个项目中。
  2. 然后你应该创建另一个目标 - *aggregate* target
  3. 然后你有选择:

3.1 进入聚合目标的scheme设置,添加其他目标: targets您可以在其中指定要对特定目标执行的操作

3.2 您可以选择聚合目标并转到build设置并添加其他目标作为该目标的依赖项。

选项 3.1 似乎是您需要的选项:您可以添加任意数量的目标来构建。您可以指定另一个运行目标。所以你会有类似的东西:

targets:
target 1 - iOS app
target 2 - other app
target 3 - other app
target 4 - aggregate target

scheme configuration for target 4
build section:
target 1
target 2
target 3
run section:
executable: target 1 (iOS app)

完成后,您可以使用您的方案进行构建xcodebuild -scheme your_scheme [...其他选项...] archive


更新

您可以跳过聚合目标的创建。您可以直接创建新方案和您想要的配置,而无需涉及聚合目标。

更新2

确保分享您的方案,以便能够将其保存在源代码管理中。

更新 3

如果您的目标不直接相互依赖(据我了解),则不带总体目标的选项是实现此目标的更可取的方法。 This is the main purpose for schemes.

A scheme is a collection of settings that specify which targets to build, what build configuration to use, and the executable environment to use when the product specified by the target is launched. When you open an existing project (or create a new one), Xcode automatically creates a scheme for each target.

关于ios - 在不破坏 xcodebuild 存档的情况下将 os x 工具构建为 iOS 项目的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com