Tôi muốn hiển thị git SHA hiện tại khi dự án của tôi được xây dựng trong Ứng dụng của tôi. Một cách hay để làm điều này trong một dự án iOS với nỗ lực tối thiểu là gì?Thêm git commit SHA vào ứng dụng iOS
Trả lời
Bạn có thể làm điều đó trong Đề án. Mở chương trình của bạn (sửa), mở rộng Build trong sơ đồ của bạn, click vào Pre-Actions, nhấn vào nút +, chọn New Run Script Action và viết một số kịch bản được SHA và sửa đổi một số tập tin tiêu đề, nơi bạn có thể đặt SHA (cách dễ nhất là #define GIT_SHA @"..."
) và sử dụng GIT_SHA
trong ứng dụng của bạn ở một nơi mà bạn có thể hiển thị nó.
Phiên bản 2.17. Xây dựng a85b242.
Nếu bạn muốn thêm một phiên bản khá như thế này ở trên, chỉ cần làm theo các bước sau:
- mở
Build Phases
trong Xcode - Nhấn
Add Build Phase
- Nhấn
Add Run Script Build Phase
. Bạn có thể tìm thấy điều này trong trình đơn trên cùng Trình biên tập. Kéo tập lệnh vào vị trí sauTarget Dependencies
. - Set Shell dòng để
/bin/sh
Đặt kịch bản dưới đây để lĩnh vực Script. Đừng quên thay đổi Nguồn vào đường dẫn đến tệp của bạn, trong đó
GitVersion.h
phải là. Ví dụ: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
nhập
GitVersion.h
file vào Xcode dự ánDán những dòng này:
NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; NSString *version = [info objectForKey:@"CFBundleShortVersionString"]; NSString *app_version = [NSString stringWithFormat:@"Version %@. Build %@.", version, GIT_SHA_VERSION]; NSLog(@"app_version : %@", app_version);
tài liệu đầy đủ câu trả lời với những hình ảnh và mô tả lợi thế có thể là được tìm thấy here.
Tại sao bỏ phiếu phủ định về điều này? – Boon
- 1. git commit directory
- 2. Git commit bash script
- 3. git commit -a confused
- 4. Cách git hoàn nguyên cam kết sử dụng SHA
- 5. git commit - format?
- 6. Tìm SHA dài từ SHA ngắn cho git diff
- 7. Tại sao không git commit -a thêm tập tin mới?
- 8. git pull dựa trên SHA
- 9. Thêm ngắt dòng vào git commit -m từ dòng lệnh trên Windows
- 10. git add. vs git commit -a
- 11. GIT Log or Commit Monitor
- 12. git: sử dụng "commit --cleanup = whitespace" với "rebase --interactive"
- 13. Tạo một BitBucket git commit hook?
- 14. Nhập tệp pfx vào ứng dụng iOS
- 15. git: tìm (các) commit lớn nhất
- 16. Tìm commit nơi tệp đã được thêm
- 17. Git-Tfs: Một thay đổi TFS cho mỗi Commit Git?
- 18. rắc rối trong việc sử dụng "git commit -a" lệnh
- 19. Git hoàn tác lần commit cuối cùng
- 20. Thêm OAuth2 vào Dự án iOS
- 21. iOS: Thêm nút Thích trên Facebook vào ứng dụng iPhone gốc
- 22. Ưu điểm, sự cố, ví dụ về cách thêm một UIWindow khác vào ứng dụng iOS?
- 23. Có ứng dụng web "thêm vào màn hình chính" trên Android (như trong iOS)
- 24. Thêm Trợ giúp vào Ứng dụng Cacao
- 25. Thêm Google Analytics vào ứng dụng
- 26. Thêm tệp JAR vào ứng dụng Android
- 27. Thêm dữ liệu bản đồ vector vào ứng dụng iOS iOS. Thời gian thực đồ họa vector rendering
- 28. Pre Commit Hook cho JSLint trong Mercurial và Git
- 29. Khi nào tôi cần thực hiện "git pull", trước hoặc sau "git add, git commit"?
- 30. Làm thế nào để SHA băm trong ca cao/iOS
Phần “viết một số tập lệnh” là phần không quan trọng. Câu trả lời của bạn về cơ bản là _ “làm cách nào để làm cho Xcode làm điều gì đó tại thời gian biên dịch” _ khi câu hỏi về cơ bản là _ “làm thế nào để tôi làm cho Xcode tại thời gian biên dịch nhận được Git SHA hiện tại và làm cho nó có thể truy cập được tới mã Objective-C/Swift” _. –