我想自动化向我的 iOS 应用程序添加新目标的过程,并编写一个脚本来加快整个过程。有没有办法复制 Xcode iOS 应用程序目标,然后重命名它,添加特定于该目标的新图标,更改捆绑包 ID、应用程序名称等,最后构建应用程序?我尝试过使用 AppleScript 来实现此目的,但没有成功。
我现在使用的解决方法是创建一个额外的目标(使用 Xcode GUI)并在构建期间(每次我想要构建应用程序时)对其进行自定义。这种方法的最大缺点是目标的配置不会保存在任何地方,并且必须为应用程序的每个构建指定目标的参数。这可能会导致不可重复的构建和其他无法调试的问题。这就是为什么我正在寻找一种方法或工具,它允许我从命令行脚本复制和配置新目标
在Mac OS X中是否可以在多个版本的命令行工具之间安装和切换?我想知道是否可以使用,xcode-select但是命令行工具安装程序没有选择安装目标的选项。我尝试通过手动重命名Library/Developer/CommandLineTools然后将其传递给来创建多个安装xcode-select。该命令成功,但是当我尝试访问gcc时得到:
gcc: error: unable to find Xcode installation from active developer path "/Library/Developer/CommandLineTools_9.0.0", use xcode-select to change
安装整个XCode时似乎有可能,但是我不需要XCode并更愿意不安装它。我需要的只是命令行工具。
我正在开发一个 C 应用程序,我希望它具有合理的可移植性。它可以在 Linux 上使用 gcc 和 clang 以及在 Windows 上使用 MSVC 构建。访问 Mac 后,我尝试使用命令行工具进行构建。
它无法编译,因为我的代码声明了一个函数,isnumber而 Apple 的ctype.h头文件也声明了一个 (non standard?) isnumber。我可以重命名我的函数,这样它就不会发生冲突,但是有没有办法通过禁用或忽略所有或特定的 Apple 添加到标准标头来避免这种情况?例如,是否有编译器选项或预处理器编译指示来忽略它们?
我isnumber不知道检查字符类。下面是重现该问题的代码 - 它可以用 clang/Linux 和 MSVC/Windows 编译,但不能在 Mac 上编译( - 它不是实际代码)。
#include <ctype.h>
#include <stdio.h>
char *isnumber(void);
int main(void)
{
char *opt = "A";
if (isupper(*opt))
printf("THE IS NUMBER IS: %s\n", isnumber());
else
printf("The IS number is: %s\n", isnumber());
return 0;
}
char *isnumber(void)
{
return "IS-123";
} …Run Code Online (Sandbox Code Playgroud) 我的设置是 2021 MBP,配备 M1 Pro 处理器、macOS 12.5 和 Xcode 13.4.1。我正在使用 NativeScript 构建一个应用程序,但无法发布该应用程序,因为每次我转到product> archiveXcode 时都会显示“Python 命令需要命令行工具”。当我同意安装时,它看起来就像已安装,但随后又重新开始。
我重置了 Mac 并重新安装了 macOS,因此使用了全新的设置。首先,我遵循 NativeScript 文档( https://docs.nativescript.org/environment-setup.html#macos-ios )的建议并运行sudo ln -s $(which python3) /usr/local/bin/python,它为 python 2.x 创建了一个别名。然后做了python3 -m pip install --upgrade pip和python3 -m pip install six。测试了我的配置ns doctor ios- 它抱怨缺少 python 和 Xcode 对话框提示我安装 python。单击安装,完成,运行ns doctor ios并重新开始。
虽然 macOS 12.5 似乎附带了 python3,但是没有一个选项对我有用。
后来发现一篇文章,作者建议使用pyenv. 所以我走了这条路,全局安装它并将 env 设置到我的 shell 中。重新测试并得到同样的错误。
Xcode-select -p结果是 …