BuildEnvironment是一个项目,它包含了一些我经常在新iOS项目中使用的构建脚本和一小部分代码。它们允许您
我还提供了一个Xcode模板,其中包含这些设置的绝大部分。
要快速开始一个已集成BuildEnvironment的新Xcode项目,您可以使用自定义Xcode模板。要安装,请在您的终端中执行以下操作:
curl -L https://github.com/cegeka/BuildEnvironment/raw/master/Template/install_template.sh |sh
在Xcode中,您将在“Cegeka”组中得到一个名为“Basic Application”的新项目模板。当您通过向导时,它将要求您提供Hockey App ID和Hockey API Token。您也可以在转到您的Target底下的“用户定义设置”中的“构建设置”进行修改。
该项目包含一个Podfile,但您仍需要运行pod install
pod install
模板将设置一切,除了自动部署到HockeyApp。要设置此功能
"${PODS_ROOT}/BuildEnvironment/update_version.sh"
并从“提供构建设置”下拉菜单中选择您的目标。"${PODS_ROOT}/BuildEnvironment/upload_to_hockeyapp.sh"
并从“提供构建设置”下拉菜单中选择您的目标。注意
项目无法构建,直到您手动创建本地化脚本所需的项目结构。要获取更多关于所需结构的详细信息,或要移除本地化支持,请转到本地化部分。
如果您已有项目,仍可以使用构建脚本。
在您的应用程序中,可能需要根据应用程序的构建来使用不同的值。想象一下,您正在创建您的应用程序的测试、接受和生产构建。您可能希望为每个构建与不同的后端进行通信。
您可以按照以下方式设置
BEConfiguration.plist
。添加一个Debug
和Release
属性,类型为字典BEConfig.configuration[@"key_in_configuration_plist"]
您还可以通过转到您的项目设置并在配置部分添加配置的方式添加额外的配置(例如,接受)。之后,您可能需要重新运行pod install
。
您可以通过编辑您的方案来指定要使用的配置。
您还可以复制一个方案,将其设置为接受构建,并确保方案是共享的。然后,您可以将您的CI服务器设置为自动构建此方案。
您可以使用update_version.sh来自动增加您的Info.plist中的CFBundleVersion。此脚本将在版本中放置时间戳。
"${PODS_ROOT}/BuildEnvironment/update_version.sh"
您可以使用upload_to_hockeyapp.sh自动上传构建到HockeyApp(通过在本地或Xcode服务器上运行存档)。
"${PODS_ROOT}"/BuildEnvironment/upload_to_hockeyapp.sh
。如果您想看到此脚本的日志,在顶部添加exec > /tmp/log_hockeyapp.txt 2>&1
。这将将其记录在构建服务器上的/tmp/log_hockeyapp.txt
HOCKEYAPP_API_TOKEN
,它应包含您的API令牌。还需要添加用户定义设置HOCKEYAPP_APP_ID
,其中包含您的应用程序ID。如果您的可供使用,请按照以下步骤操作来自动搭建构建。
要自动在构建过程中检查软件许可证,可以使用check_licenses.sh
。这将检查您的CocoaPods依赖项。如果它发现具有MIT、BSD或Apache之外许可证的依赖项,则构建将失败。
"${PODS_ROOT}"/BuildEnvironment/check_licenses.sh
"${PODS_ROOT}"/BuildEnvironment/check_licenses.sh -l BSD
默认情况下允许MIT、BSD和Apache。"${PODS_ROOT}"/BuildEnvironment/check_licenses.sh -e AFNetworking
您还可以检查您的所有cocoapod依赖项是否过时。将check_outdated.sh
集成到构建中将在依赖项有新版本时生成构建警告。
"${PODS_ROOT}"/BuildEnvironment/check_outdated.sh
此模板自动更新需要本地化的文件。这包括包含源代码和故事板中找到的文本所需的翻译的文件。
要自动更新包含源代码所需的翻译的文件,您可以使用extract_source_translations.sh
。此脚本在代码中查找对NSLocalizedString的调用,收集此类调用中使用的键,并尝试将其与Localizable.strings文件中指定的键进行匹配,如下所示
为了使此脚本工作,项目需要有一个本地化文件,在支持文件目录中的,称为Localization.strings。
要自动更新包含源代码所需的翻译的文件,您可以使用extract_storyboard.sh
。此脚本查找故事板中的字符串,收集这些字符串使用的键,并尝试将其与故事板字符串文件中指定的键进行匹配,如下所示
为了使此脚本工作,项目需要一个本地化的故事板。
要停用上述任何本地化脚本,您可以删除项目中的相应 更新源翻译 和 更新剧本翻译 构建阶段(由模板自动添加)。
由 Cegeka 欧洲应用工厂 开发
BuildEnvironment 适用于 MIT 许可证。请参阅 LICENSE 文件以获取更多信息。