iOS基础扫盲

x-code上传gitlab并且自动脚本打包

2019-05-13  本文已影响0人  记忆的北极

一,首先查看下当前项目在gitlab的目录.目录上主要有3个文件是主要的

项目路径

二,可以给PROJECT添加一个新的Configurations, 一般默认的有两个, Debug和Release版本, 我们根据需求添加一个Beta版本.

Configuration的配置

1,在配置项目的Preprocessor Macros
给Beta,Debug等配置添加定义宏ZXJTBETA
Release不加定义宏


Preprocessor配置

2,然后配置请求数据地址,测试地址和正式环境地址.全局请求地址根据Preprocessor的配置改变数据请求地址.

#ifdef ZXJTBETA
#define TESTFLAG 1
#define HTTP_BaseUrl            @"https://teste.csc108.com"
//(201节点)测试_交易地址0
#define HTTP_ApiUrl0            @"https://accounttest2.csc108.com:9801"
#define HTTP_ApiUrl1            @"https://accounttest2.csc108.com:9801"

#else
#define TESTFLAG 0
#define HTTP_BaseUrl            @"https://e.csc108.com"
//生产_交易地址
#define HTTP_ApiUrl0            @"https://sjzqcq.csc108.com:9801"
#define HTTP_ApiUrl1            @"https://sjzqdbdx2.csc108.com:9801"
#endif
配置请求地址

三,文件说明

.gitmodules 是项目依赖工程的配置
.build.sh 更新依赖工程,然后把依赖工程放到项目中
.gitlab-ci.yml 执行.build.sh, 然后打包工程,包含release和beta

四,文件详解

1, .gitmodules文件(git相关知识, 请查询git的modules项目依赖)

[submodule "h5-trade-miniSdk"]
    path = h5-trade-miniSdk
    url = https://mdev.csc.com.cn/mobile-stock-app/h5-trade-miniSdk.git
.gitmodules文件

2, build.sh文件

#!/bin/sh
# 更新 submodule
git submodule add --force https://mdev.csc.com.cn/mobile-stock-app/h5-trade-miniSdk.git
git submodule update --init --recursive
#git submodule init
#git submodule update
# submodule 生成的交易 H5 文件路径(在设置 submodule 时指定的目录名)
TRADE_H5_SOURCE_FILE_PATH="kds_h5"
# 要打开的文件
H5_NEED_CD_FILE_PATH="./h5-trade-miniSdk"  # 赋值给一个默认不存在的
# 2.将 H5 编译生成的文件放入项目中
function getRelateWebOriginResource() {
Build_Config="$1"
H5_NEED_CD_FILE_PATH="./h5-trade-miniSdk"
if [ -d ${H5_NEED_CD_FILE_PATH} ]; then
cd ${H5_NEED_CD_FILE_PATH}
else
echo "找不到${H5_NEED_CD_FILE_PATH}下的相关券商h5文件, 请验证gitmoudules是否有改动过"
exit 1
fi
#if [ "$branch" == "master" ]; then
git pull origin  master
#else
#git fetch;git checkout develop
#git fetch;git checkout feature/add-kechuangban
#git pull
#fi
if [ "$?" -ne "0" ]; then
echo "archive error 停止自动构建"
exit 1
fi
# 如果是 Release 或 Online 打 h5 包传入 prd ,其他的传入 test
if [ Build_Config == "Release" ]; then
sh ./build.sh prd
else
sh ./build.sh test
fi
echo "::kds519目录迁移"
rm -fr ../TradingFrameWork/TradingFrameWork.bundle/WebViewData/kds519
cp -fr ./kds519 ../TradingFrameWork/TradingFrameWork.bundle/WebViewData/kds519
rm -fr ../h5-trade-miniSdk
#cd ..
}
getRelateWebOriginResource $1

3, .gitlab-ci.yml文件

# 需要 yml 中动态指定的打包参数:
#      TARGET_NAME:    券商的名对应的 iOS 项目中 Target,默认使用 KDS_Phone
#      Mobile_Provision_File_Name: 打包证书的描述文件的文件名,默认使用 测试证书 ZLDevelopment0705
#      buildConfig:打包方式(测试、发布等),默认为 DailyBuild
# 以上参数未设置时,则默认打出: 标准版、测试证书、测试包
# yml 中 production、cerFileName、buildConfig 需要和项目的 gitLab 设置-变量 页面下定义的键值保证一致
# 目前暂定为:
#   TARGET_NAME                 : TargetName
#   Mobile_Provision_File_Name  : CerFileName
#   buildConfig                 : BuildMode
#
# 调用:  eg:
# - sh ./auto-package.sh KDS_Phone ZLDevelopment0705 DailyBuild develop
# TODO: 未添加 maser、release 分支的构建
stages:
  - build
build_Release:
  stage: build
  script:
    #- xcodebuild build -project TradingTest.xcodeproj -scheme TradingFrameWork -destination 'platform=iOS Simulator,name=iPhone 8' | xcpretty -s
    #-xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO  -sdk iphoneos  clean build
    #-xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO  -sdk iphonesimulator  clean build
    #-xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO -configuration Release -sdk iphoneos  clean build
     - sh build.sh Release
     - rm -fr ./output
     - mkdir ./output
     - xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO -configuration Release -sdk iphoneos  clean build
     - xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO  -configuration Release -sdk iphonesimulator  build
     - lipo -create ./build/Release-iphoneos/TradingFrameWork.framework/TradingFrameWork ./build/Release-iphonesimulator/TradingFrameWork.framework/TradingFrameWork -output ./output/TradingFrameWork
     - cp -fr ./output/TradingFrameWork ./build/Release-iphoneos/TradingFrameWork.framework/TradingFrameWork
    
  artifacts: 
    name: "TradingFramework" 
    paths:  
      - ./build/Release-iphoneos/*.framework
      
      
      
build_Beta:
  stage: build
  script:
    #- xcodebuild build -project TradingTest.xcodeproj -scheme TradingFrameWork -destination 'platform=iOS Simulator,name=iPhone 8' | xcpretty -s
    #-xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO  -sdk iphoneos  clean build
    #-xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO  -sdk iphonesimulator  clean build
    #-xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO -configuration Release -sdk iphoneos  clean build
     - sh build.sh test
     - rm -fr ./output
     - mkdir ./output
     - xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO -configuration Beta -sdk iphoneos  clean build
     - xcodebuild -target TradingFrameWork ONLY_ACTIVE_ARCH=NO  -configuration Beta -sdk iphonesimulator  build
     - lipo -create ./build/Beta-iphoneos/TradingFrameWork.framework/TradingFrameWork ./build/Beta-iphonesimulator/TradingFrameWork.framework/TradingFrameWork -output ./output/TradingFrameWork
     - cp -fr ./output/TradingFrameWork ./build/Beta-iphoneos/TradingFrameWork.framework/TradingFrameWork
    
  artifacts: 
    name: "TradingFrameworkBeta" 
    paths:  
      - ./build/Beta-iphoneos/*.framework
上一篇 下一篇

猜你喜欢

热点阅读