<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      iOS 基于XCode12 腳本封裝靜態(tài)鏈接庫(kù)文件 .a

      1. 創(chuàng)建工程 勾線 iOS -> Static Library 命名 first 

      2. 工程里自動(dòng)生成的first.h first.m 文件 手動(dòng)刪除  添加新的自己的打包文件:

           這里添加HFTest.h,HFTest.m

      3. Target Build Setting  里搜索  Excluded Architectures,

          設(shè)置Release 為 Any iOS Simulator SDK:arm64 目的:為模擬器去掉架構(gòu)arm64

         原因:Xcode12之前:編譯模擬器靜態(tài)庫(kù)支持i386  x86_64兩架構(gòu);編譯真機(jī)靜態(tài)庫(kù)支持armv7 arm64兩架構(gòu)。現(xiàn)在Xcode12編譯的模擬器靜態(tài)庫(kù)也支持了arm64,導(dǎo)致出現(xiàn)真機(jī)庫(kù)和模擬器庫(kù)不能合并的問題。

         會(huì)報(bào)錯(cuò)“fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: /Users/song/Documents/LiSourse/2021Demo/Second/Build/Release-iphoneos/libSecond.a and /Users/song/Documents/LiSourse/2021Demo/Second/Build/Release-iphonesimulator/libSecond.a have the same architectures (arm64) and can't be in the same fat output file” ?? 

      4. 露出指定的頭文件,這里是HFTest.h

         Target->Build Phases -> Copy Files-> 添加HFTest.h 文件

      5. 創(chuàng)建腳本, 運(yùn)行腳本即可

          腳本功能 代替了 手動(dòng)切換 release 環(huán)境 手動(dòng) 編譯 并合并 release 環(huán)境下 真機(jī)靜態(tài)鏈接庫(kù)文件libfirst.a和模擬器libfirst.a 的過程

          實(shí)現(xiàn)了 在release 環(huán)境下 自動(dòng)編譯build  并合并出libfirst.a 

           添加腳本Script.sh ??腳本目錄和xxxx.xcodeproj要在同一個(gè)目錄 

         在腳本同級(jí)目錄運(yùn)行腳本即可 :

         sh Script.sh

         

      #!/bin/sh
      
      #  Script.sh
      #  Second
      #
      #  Created by HF on 2021/7/9.
      #  
       
      #注意:腳本目錄和xxxx.xcodeproj要在同一個(gè)目錄,如果放到其他目錄,請(qǐng)自行修改腳本。
      #要build的target名
       
      #要build的target名
      target_Name=Second
      echo "target_Name=${target_Name}"
       
      #工程名
      project_name=$target_Name
      echo "project_name=${project_name}"
      
      #打包模式 Debug/Release 默認(rèn)是Release
      development_mode=Release
      
      
      #當(dāng)前腳本文件所在的路徑 $(pwd)
      SCRIPT_DIR=$(pwd)
      echo "======腳本路徑=${SCRIPT_DIR}======"
      
      #工程路徑
      #PROJECT_DIR=${SCRIPT_DIR} 和下面寫法也樣
      PROJECT_DIR=$SCRIPT_DIR
      echo "======工程路徑=${PROJECT_DIR}======"
      
      #build之后的文件夾路徑
      build_DIR=$SCRIPT_DIR/Build
      echo "======Build路徑=${build_DIR}======"
      
      #真機(jī)build生成的頭文件的文件夾路徑
      DEVICE_DIR_INCLUDE=${build_DIR}/${development_mode}-iphoneos/include/${project_name}
      
      
      
      #真機(jī)build生成的.a文件路徑
      DEVICE_DIR_A=${build_DIR}/${development_mode}-iphoneos/lib${project_name}.a
      echo "======真機(jī).a路徑=${DEVICE_DIR_A}======"
      
      #模擬器build生成的.a文件路徑
      SIMULATOR_DIR_A=${build_DIR}/${development_mode}-iphonesimulator/lib${project_name}.a
      echo "======模擬器.a路徑=${SIMULATOR_DIR_A}======"
      
      
      #目標(biāo)文件夾路徑(也就SDK的文件:.a文件 和 頭文件)
      INSTALL_DIR=${build_DIR}/Products/${project_name}
      echo "======SDK的文件夾路徑=${INSTALL_DIR}======"
      
      #目標(biāo)頭文件的文件夾路徑
      INSTALL_DIR_Headers=${build_DIR}/Products/${project_name}/Headers
      echo "======頭文件的文件夾路徑=${INSTALL_DIR}======"
      
      #目標(biāo).a路徑
      INSTALL_DIR_A=${build_DIR}/Products/${project_name}/lib${project_name}.a
      echo "======目標(biāo).a路徑=${INSTALL_DIR}======"
      
      
      #判斷build文件夾是否存在,存在則刪除
      #rm -rf 命令的功能:刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄
      if [ -d "${build_DIR}" ]
      then
      rm -rf "${build_DIR}"
      fi
      
      
      #判斷目標(biāo)文件夾是否存在,存在則刪除該文件夾
      if [ -d "${INSTALL_DIR}" ]
      then
      rm -rf "${INSTALL_DIR}"
      fi
      
      #創(chuàng)建目標(biāo)文件夾
      mkdir -p "${INSTALL_DIR}"
      
      
      
      echo "======盒子已經(jīng)準(zhǔn)備好了,開始生產(chǎn).a 并合成裝到盒子里吧======"
      
      #build之前clean一下
      xcodebuild -target ${target_Name} -configuration ${development_mode} -sdk iphonesimulator clean
      
      xcodebuild -target ${target_Name} -configuration ${development_mode} -sdk iphoneos clean
      
      #模擬器build
      xcodebuild -target ${target_Name} -configuration ${development_mode} -sdk iphonesimulator
      
      #真機(jī)build
      xcodebuild -target ${target_Name} -configuration ${development_mode} -sdk iphoneos
      
      
      #復(fù)制頭文件到目標(biāo)文件夾
      #使用-R參數(shù)可實(shí)現(xiàn)遞歸功能,即所有子目錄中的文件與目錄均拷貝
      cp -R "${DEVICE_DIR_INCLUDE}" "${INSTALL_DIR_Headers}"
      
      
      #合成模擬器和真機(jī).a包
      lipo -create "${DEVICE_DIR_A}" "${SIMULATOR_DIR_A}" -output "${INSTALL_DIR_A}"
      
      echo "======合成結(jié)束======"
      
      
      
      # -f 判斷文件是否存在
      if [ -f "${INSTALL_DIR_A}" ]
      then
      echo "======驗(yàn)證合成包是否成功======"
      lipo -info "${INSTALL_DIR_A}"
      fi
      
      
      #打開目標(biāo)文件夾
      open "${INSTALL_DIR}"
       

       6.把目標(biāo)文件夾里面的靜態(tài)庫(kù)和頭文件 資源文件可以放在項(xiàng)目里 import  頭文件然后調(diào)用

         

       

       

       

      參考:
      1.http://www.rzrgm.cn/wgb1234/p/14258036.html

      2.http://www.rzrgm.cn/richard-youth/p/14447991.html?ivk_sa=1024320u

      3.https://blog.csdn.net/shifang07/article/details/89177545

      posted on 2021-07-09 16:05  ACM_Someone like you  閱讀(334)  評(píng)論(0)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 色爱av综合网国产精品| 亚洲精品乱码久久久久久中文字幕| 亚洲色丰满少妇高潮18p| jk白丝喷浆| 农村肥熟女一区二区三区| 亚洲人成网站18禁止无码| 成人网站免费观看永久视频下载 | 乱码精品一区二区三区| 国产福利精品一区二区| 国产成人亚洲精品青草天美| 嫩草研究院久久久精品| 成人拍拍拍无遮挡免费视频| 开心色怡人综合网站| 久久午夜色播影院| 狠狠躁夜夜躁人人爽蜜桃| 国产片一区二区三区视频| 日韩av不卡一区二区在线| 欧美肥老太交视频免费| 免费无码成人AV片在线| 中文字幕乱码十国产乱码| 亚洲国产精品久久久久秋霞| 国产目拍亚洲精品二区| 91青青草视频在线观看| 国产综合久久亚洲综合| 时尚| 久久天天躁夜夜躁狠狠 ds005.com | 国产精品中文字幕在线| 亚洲熟妇丰满多毛xxxx| 国产熟女一区二区三区蜜臀| 99久久精品一区二区国产| 亚洲精品无码高潮喷水A| 视频一区视频二区视频三| 亚洲国产综合性亚洲综合性| 欧美日韩高清在线观看| 日韩一区二区三区女优丝袜 | 人妻蜜臀久久av不卡| 九九综合九色综合网站| 国产一区二区三区不卡观| 欧美高清狂热视频60一70| 久艹视频免费看| 99久久免费精品国产色|