gpt4 book ai didi

ios - 注册来自 collabd 的消息,例如 XCSBuildService 以接收 Xcode Bots 集成号

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:16 24 4
gpt4 key购买 nike

在 Xcode Bots 构建过程中,每次运行都会分配一个集成编号。此数字不会显示在构建日志中,但可以方便地创建返回到 CI 环境或企业应用程序商店中构建的单个 Xcode Bots 的 http 链接。

/Library/Server/Xcode/Logs/xcsbuildd.log 我发现 XCSBuildServicecollabd 获取消息/事件包含集成编号的结构。

有没有办法在自己的 (OSX) 程序中注册同一事件并接收此消息/事件?


到目前为止,我发现获取 Xcode Bots 集成号的唯一丑陋方法是解析 xcsbuildd.log 文件,缺点是我无法确定最新的集成号是否与当多个构建并行执行时,我当前的构建。此日志文件也位于一个读保护文件夹/文件中,因此我必须更改权限(呃!)或使用 sudo(我真的不想那样做)!?

示例:

sudo grep -r "integration =" /Library/Server/Xcode/Logs/xcsbuildd.log | tail -1 | cut -d'=' -f 2| cut -d';' -f 1 |tr -d '\040\011\012\015'

给我从空格中删除的最新集成号 ...

编辑:刚刚发现,如果您实际上在方案中包含以下脚本作为 Build-post-action,它将创建一个文件 (例如/Library/Server/Xcode/Data/BotRuns/Cache/22016b1e-2f91-4757-b3b8 -322233e87587/source/integration_number.txt) 使用集成编号,无需 sudo。 Xcode Bots 似乎序列化了不同的构建,因此它们不会并行执行,因此可以使用文件中创建的集成号。

grep -r "integration =" /Library/Server/Xcode/Logs/xcsbuildd.log | tail -1 | cut -d'=' -f 2| cut -d';' -f 1 |tr -d '\040\011\012\015' >  ${PROJECT_DIR}/integration_number.txt

最佳答案

对于获取集成版本号的具体情况,我添加了一个简单的答案 here .

重复一遍(并避免将此作为单行答案否决):


我在我的 Xcode 项目中使用 Shell Script Build Phase 实现了这一点。在我的例子中,我使用集成号来设置我构建的产品的内部版本。我的脚本如下所示:

if [ "the$XCS_INTEGRATION_NUMBER" == "the" ]; then
echo "Not an integration build…"
xcrun agvtool new-version "10.13"
else
echo "Setting integration build number: $XCS_INTEGRATION_NUMBER"
xcrun agvtool new-version "$XCS_INTEGRATION_NUMBER"
fi

请注意,XCS_INTEGRATION_NUMBER 默认存在于 Xcode Server 构建环境中。如果您想模拟集成构建(出于此脚本的目的),您只需将其作为自定义变量添加到build设置中即可。

关于ios - 注册来自 collabd 的消息,例如 XCSBuildService 以接收 Xcode Bots 集成号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875979/

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