美文网首页
iOS自动化打包详解

iOS自动化打包详解

作者: 黄成瑞 | 来源:发表于2022-07-06 11:48 被阅读0次

    一、操作步骤
    1.在现有的项目中配置证书及描述文件

    a.选择Project
    b.选择Signing & Capabilities - Signing
    c.取消勾选automatically manage signing
    d.配置Bundle Identifier
    e.配置Provisioning Profile
    

    2.在项目的根根目录下创建一个文件夹,命名为auto-publish,项目结构如下:


    文件目录

    3.依据上面的步骤,分别创建Plist、add-hocOptionsPlist、add-hoc、IPA_Files、add-hoc-Archive
    4.在add-hocOptionsPlist文件中粘贴以下代码并依据项目本身的一些配置进行修改

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>provisioningProfiles</key>
      <dict>
        <key>com.xh.cendeg</key>
        <string>abec3ade-fi90-109fm3-9081-nfjew9902n</string>
      </dict>
      <key>teamID</key>
      <string>8CNJQWNFI</string> // 这个是你的
      <key>method</key>
      <string>enterprise</string>
      <key> compileBitcode</key>
      <false/>
    </dict>
    </plist>
    

    5.在add-hoc-Archive文件中粘贴如下代码,并修改为自己项目对应的配置

    
    packaging(){
     
    #ProjectName Scheme Configuration Workspace不能留空格
    #***********配置项目
    #工程名称(Project的名字)
    ProjectName=XhDemoModuleExample
    #scheme名字 -可以点击Product->Scheme->Manager Schemes...查看
    Scheme=XhDemoModuleExample
    #Release还是Debug
    Configuration=Debug
    #打包日期
    ArchiveDate=`date +%Y%m%d_%H%M`
    #工程路径 也就是xxx.xcworkspace的路径 在.sh文件的上一级目录
    Workspace=../
    #build路径 编译成.xcarchive的路径
    BuildDir=./Build
    #plist文件名,默认放在工程文件路径的位置
    PlistName=./Plist/add-hocOptionsPlist.plist
    #打包类型 是AppStore类型的 还是add-hoc类型的
    #ipa包的路径
    ArchivePath=./add-hoc/IPA_Files
    #蒲公英账号的 uKey
    U_key=315bd134a0c9b9828hg928d8d245a1ba38
    #蒲公英账号的APPKEY
    APP_KEY=b35fde4c96d9098g42cf59fa27edb80d
    #ipa包的路径文件
    filePath=${ArchivePath}/${ProjectName}-${ArchiveDate}/XhDemoModuleExample.ipa
     
    #创建构建和输出的路径
    mkdir -p ${BuildDir}
    #构建 导出包 所用的路径
    mkdir -p ${ArchivePath}
     
    echo '**** 开始清理工程  ****'
    xcodebuild clean -workspace  ${Workspace}/${ProjectName}.xcworkspace -scheme ${Scheme} -configuration ${Configuration}  -UseNewBuildSyetem=NO
     
    echo '测试数据'${PlistName}
    echo '**** 清理工程完毕  ****'
    #pod 相关配置
     
    #更新pod配置
    #pod install
     
    echo "打包的工程"${ProjectName}.xcworkspace
    echo '**** 开始编译打包工程   ****' ${Configuration}
    #构建
    xcodebuild archive \
    -workspace ${Workspace}/${ProjectName}.xcworkspace  \
    -scheme ${Scheme} \
    -configuration ${Configuration} \
    -archivePath ${BuildDir}/${ProjectName}.xcarchive -quiet \
    clean \
    build
     
    echo '**** 编译打包工程完毕  ****'
     
    echo '******  开始导出IPA ******'
     
    echo '导出的文件路径和名称'BuildDir/${ProjectName}.xcarchive
    #生成ipa
    xcodebuild -exportArchive \
    -archivePath ${BuildDir}/${ProjectName}.xcarchive \
    -exportPath ${ArchivePath}/${ProjectName}-${ArchiveDate} \
    -exportOptionsPlist ${PlistName}
    echo '******  导出IPA成功 ******'
    open ${BuildDir}
    echo '******  打开打包的目录成功 ******'
     
    echo '******  删除编译的.xcarchive ******'
    if [ -d "${BuildDir}" ]; then
    rm -rf "${BuildDir}"
    echo 'build文件夹删除成功'
    fi
     
    echo "IPA包的路径打印"${filePath}
     
    #echo "****** 开始上传IPA包到蒲公英 ******"
    #if [ -e "${filePath}" ]; then
    #echo "进入上传"
    #curl -F "file=@${filePath}" \
    #-F "uKey=${U_key}" \
    #-F "_api_key=${APP_KEY}" \
    #"http://www.pgyer.com/ap/app/upload"
    #echo "****** IPA包上传到蒲公英成功 ******"
    #else
    #echo "IPA包不存在 上传蒲公英失败"
    #fi
    }
    packaging "XhDemoModuleExample" "XhDemoModuleExample"  "Release"  "/Users/xxx/Documents/Project/My/ReactNative/react-native-xh-demo-module/example/ios/XhDemoModuleExample" "./TestBuild" "app-storeOptionsPlist.plist"
    

    6.上面的步骤操作完成后就可以开始打包了,执行如下操作

    cd 到 auto-publish
    执行 sh  add-hoc-Archive.sh
    

    参考文章:
    https://blog.csdn.net/ioszhanghui/article/details/91375973

    相关文章

      网友评论

          本文标题:iOS自动化打包详解

          本文链接:https://www.haomeiwen.com/subject/lxfybrtx.html