version=$(git rev-parse --verify HEAD | cut -c 1-7)
curdate=$(date +"%d.%m.%y")
filesource="//\n// GitVersion.h\n//\n// Created by sig on $curdate.\n//\n\n#ifndef GitVersion_h\n#define GitVersion_h\n\n#define GIT_SHA_VERSION @\"$version\"\n\n#endif"
cd ${SOURCE_ROOT}/${PROJECT_NAME}
echo -e "$filesource" > Sources/GitVersion.h
touch Sources/GitVersion.h
6条答案
按热度按时间sqxo8psd1#
版本号:2.17,版本号:a85b242。
如果你想添加一个像上面这样的漂亮版本,只需按照以下步骤操作:
1.在Xcode中打开
Build Phases
1.按下
Add Build Phase
1.按
Add Run Script Build Phase
。您可以在顶部菜单编辑器中找到它。将脚本行拖到Target Dependencies
之后的位置。1.将Shell行设置为
/bin/sh
1.将下面的脚本设置为脚本字段,不要忘记将Sources修改为您的文件路径,
GitVersion.h
应该在这里。例如:字符串
1.将
GitVersion.h
文件导入Xcode项目1.粘贴这些行:
型
可以在here中找到带有图像和描述优势的完整记录的答案。
mzsu5hc02#
你可以在Schemes中完成它。打开你的scheme(编辑),在scheme中展开Build,点击Pre-Actions,点击+按钮,选择New Run Script Action并编写一些脚本,获取SHA并修改一些头文件,你可以在其中放置SHA(最简单的方法是
#define GIT_SHA @"..."
)并在你的应用程序中使用GIT_SHA
在你可以显示它的地方。vxqlmq5t3#
答案很晚,但对于那些需要获得
Git Commit SHA
的人来说,这里有一个简单的解决方案:选择要获取
Git Commit SHA
的目标。然后转到Build Phase
。1-通过按+按钮创建新运行脚本阶段,然后添加以下脚本:
字符串
记住用plist文件的真实的路径替换
{THE_PATH_TO_PLIST_FILE}
。3-现在转到相同Target的
Info.plist
并添加一个新属性:GIT_VERSION
。脚本将把GitVersion设置为这个属性。4-在代码中从
Info.plist
读取GIT_VERSION
。p3rjfoxz4#
对于斯威夫特
Git log format link
其他Swift标志
运行脚本
字符串
GitVersion.swift
型
ioekq8ef5#
对于Swift项目
来源:https://github.com/ankushkushwaha/AppVersionInXcode
1.添加构建脚本运行脚本
/bin/sh
version=$(git rev-parse --verify HEAD| cut -c 1-7)
fileContent="//不要编辑,//它是机器生成的文件
// AppInfo.swift // import Foundation class AppInfo { let version:String let build:String let gitCommitSHA:String = "$version\”init?(){ guard let version = Bundle.main.infoDictionary?[\“CFBundleShortVersionString"] as?String,let build = Bundle.main.infoDictionary?[\“CFBundleVersion"] as?String else { return nil } self.version = version self.build = build } }”echo“$fileContent”> AppInfo.swift
1.将运行脚本移动/拖动到“编译源代码”上方
1.现在构建你的项目,它将在项目的根文件夹中创建一个文件AppInfo.swift
1.将AppInfo.swift文件拖放到Xcode项目导航器中。
1.使用如下
guard let info = AppInfo()else { return } let infoText =“AppVersion:(info.version)\nBuild:(info.build)\nGit hash:(info.gitCommitSHA)”print(infoText)
mgdq6dx16#
这个链接在我的例子中是有效的,但我想补充的是,添加项目路径和这个自动生成的类所在的文件夹是一件好事。所以在我的例子中,它是:
字符串
下面是一篇关于相对路径的文章:
Relative paths on Xcode scripts