问题标签 [agvtool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - 在优胜美地 agvtool 上使用 Jenkins 构建的 Xcode 无法正常工作
昨天,由于各种问题,我将我的 Jenkins 服务器更新为 Yosemite,现在我使用 agvtool 为应用程序设置内部版本号/营销版本的构建不再正确更新内部版本号/营销版本。我安装了命令行工具,在构建项目时没有收到错误或警告,只是版本号没有更新。
在我将构建服务器更新为优胜美地之前,这一切正常。
ios - 在 Xcode 中构建之前运行一个 shell 脚本
在构建/归档之前,我需要为我的项目调整构建和版本号。
我尝试了多种方法,但到目前为止无济于事。
我用脚本添加了一个目标来更新数字,并将其作为第一个依赖项添加到我的主要目标。但是因为我有多个依赖项,因为我的应用程序中有扩展,并且所有依赖项都由 Xcode 并行执行(或至少以随机顺序),所以这不起作用。
我在我的方案中添加了一个预操作,结果相同。Xcode 在继续构建之前不会等待我的预操作完成(我添加了一个 sleep 100 来测试)。
由于我正在更改内部版本号,因此脚本可以在其他任何内容开始之前完成至关重要,但还有一个副作用:由于 plist 文件在构建相关文件时已被更改,因此构建甚至停止目标。
更困难的是,我想用它agvtools
来设置我的版本和内部版本号。这显然会启动我无法控制的后台进程来更改 plist。
免责声明:我已经搜索了其他答案,没有帮助。
ios - 将 agvtool 与一个目录中的多个 .xcodeproject 文件一起使用
我曾尝试使用 agvtool 进行 ios 构建版本控制。当目录中有一个 .xcodeproj 文件时,它工作得很好。在我的例子中,我们的项目结构是这样的,它在一个目录中有 4 个 .xcodeproj 文件。在此目录中触发 agvtool 命令时,它会引发错误消息,“agvtool 不适用于同一目录中的多个项目”。任何人都知道如何使 agvtool 使用此文件夹结构?
xcode - 使用 agvtool 进行自动版本管理
Xcode 11 改变了处理版本的方式。
到目前为止,我有两个目标,Dev 和 Prod,每个目标都有一个单独的版本。Prod 版本将完全是手动的,Dev 将是自动化的:
- 在构建期间,将运行一个脚本,然后该脚本将获取 git 标签。一个标签将包含有关最新开发版本的信息。如果它较新,它将更新 Info.plist 中的版本,仅用于 Dev 目标
- 当 Dev 将使用脚本部署(创建 ipa、辞职以进行内部分发、上传)时,构建版本将增加。然后将更新包含版本信息的远程标签
通过这种方式,每个人的开发版本都会自动同步,并且管理多个开发版本会很容易。Prod 的更新频率相对较低,因此可以手动管理。
但是,在 Xcode 11 中,每当版本(或构建)在 General 选项卡中更新时,条目Info.plist
将替换为$(CURRENT_PROJECT_VERSION)
and $(MARKETING_VERSION)
,Current Project Version
并且Marketing Version
使用 build settings 选项卡中的 and 代替。
到目前为止,我PlistBuddy
将Info.plist
使用agvtool
. 但是,它有两个问题:
- 如果它作为运行脚本阶段运行,则会导致构建过程取消
- 它无法处理两个目标的单独版本(所以我不能只自动管理 Dev,而让 Prod 一个人呆着)
我知道理论上我仍然可以Info.plist
用于版本控制,但是一旦有人在“常规”选项卡中手动更改版本,整个事情就会变得一团糟(根据经验,我知道这会发生)。
我有两个问题:
- 我对流程的理解正确吗?
- 仍然可以使用
agvtool
类似于我以前的版本管理系统吗?
xcode - agvtool 报告“找不到 Foo.xcodeproj/../NO”
我用来agvtool
提高我的内部版本号。在我最近重构的 Xcode 13.0 (13A233) 项目中,但出现了一个奇怪的错误:
找不到“Foo.xcodeproj/../NO”
例如
我只有这三个目标,Foo
,FooKit
和FooTests
,但它正在寻找另一个名为NO
.
我环顾四周,没有看到任何无关的Info.plist
文件。我猜测有一些东西被设置或错误NO
地作为潜在目标,但我还没有弄清楚它在哪里。该选项如何准确地确定哪些文件需要更新?.pbxproj
Info.plist
agvtool
-all
Info.plist