3

我正在寻找一个开源的 iPhone 应用程序,我有一些关于进行源代码分发的问题:

  1. 如何使用 XCode 自动创建源存档(或磁盘映像)?我想要一些类似于构建目标的东西,它可以归档源(如果需要,首先清理目标,但如果不需要的话,那就太好了)。我还有一个带有 ruby​​ 脚本的外部 netbeans 项目,用于构建程序需要的 SQL 数据库(但如果需要,可以单独存档)。

  2. 识别构成“源”的文件的最佳方法是什么?是否只是清洁所有目标后留下的任何东西?这种方法的任何警告(我不太相信 IDE 会清理他们似乎制造的所有垃圾——这是否可能包含任何它不应该包含的代码设计内容)?

4

4 回答 4

4

您可以将运行脚本构建阶段添加到任何目标以对构建进行后处理。正确的方法通常是创建一个聚合目标,它首先构建您的构建产品目标,然后在输出上运行脚本。

很难识别所有“源”文件。它通常是 $(SRCROOT) 中的所有内容,但如果您的项目以 Root -> ( src ) ( projfiles ) 方式布局,则 $(SRCROOT) 将仅包含您的项目文件而不包含任何源。您可能必须将至少顶级项目布局的知识编码到脚本中,并在它发生变化时对其进行维护。

即使它是默认设置,如果您要归档源代码,您可能不希望将构建文件夹放在项目文件夹中,因为您经常会获取中间体、项目索引和其他临时文件。在项目的 Get Info 检查器的 General 窗格中,将 Build Products and Intermediates 目录设置为项目目录之外的某个公共位置。这将简化存档源的工作。

而且 Xcode 有一个内置的归档机制,叫做 Snapshots;您可能想要使用它,尽管自动化并不简单。但 Snapshots 确实了解您的所有来源。

于 2008-12-19T05:47:12.230 回答
3

将 SRCROOT 环境变量设置为您希望源存档的位置,cd 到项目目录,然后执行

xcodebuild installsrc build -configuration <configname> -target <targetname>

“installsrc”构建操作将项目源复制到 ${SRCROOT}。

于 2009-05-10T03:45:28.033 回答
0

好吧,到目前为止,我对此没有任何答案,所以我将从另一个方向着手,使用 make 和命令行。我将使用这个问题的答案:

从命令行构建 Qt Xcode 项目

...然后使用标准的“制作”方法来构建应用程序和源分发存档。

于 2008-12-18T18:21:44.673 回答
0

按照建议尝试调用以下脚本的聚合目标:

#!/bin/bash -x

cd "$BUILT_PRODUCTS_DIR"

APPFILE="$PROJECT_NAME.app"

IPAFILE="$PROJECT_NAME.ipa"

if [ "$BUILD_STYLE" = "分布" ]; 然后

rm -f "$APPFILE.zip" && zip -ry "$APPFILE.zip" "$APPFILE" && open .

elif [ "$BUILD_STYLE" = "BetaTesting" ]; 然后

rm -rf "$IPAFILE" iTunesArtwork Payload && \
cp ../../Apple/iTunesArtwork . && \
mkdir Payload && cp -Rp "$APPFILE" Payload && \
zip -r "$IPAFILE" iTunesArtwork Payload && open .

呃,也许这是另一个问题的答案......

于 2009-05-09T16:46:39.647 回答