導航:首頁 > 源碼編譯 > ios打包編譯命令

ios打包編譯命令

發布時間:2024-12-28 10:00:52

1. ios 如何打包app

1、用xcode真機編譯一下程序。
2、在左側最下面有xxxxx.app文件,右鍵「show in finder」
3、將finder中的這個.app文件拖拽到itunes圖標上
4、打開itunes,選擇應用程序(不是手機的應用程序)就能看到這個程序了
5、右鍵該圖標「show in finder」,就找到這個app的ipa包了。

2. iOS 靜態庫和動態庫打包framework流程(純swift版/swift、OC混編版)

選擇 iOS -- Framework&Library , 點擊 next

如果打包文件中使用了第三方庫,建議pod管理,並告知用戶使用pod安裝,避免用戶重復導入。跟平時開發邏輯一樣,打開 .xcworkspace 工程。

操作完之後工程目錄顯示

把打包需要的文件添加到項目中。 如果想要這個類或類裡面的方法被外面使用,需要配合pubic修飾供外面使用

由於以上獲取的framework只能在對應的版本上運行(即真機只能在設備上運行模擬器版本只能在模擬器上面運行使用),所以需要合並framework版本。
合並framework版本:
sudo lipo -create (此處請填寫真機AppVest文件路徑) (此處填寫模擬器AILLSDK文件路徑) -output 自定義合成文件存儲路徑(合成文件的名字AILLSDK)

因為真機版本和模擬器版本的framework都存在arm64架構,導致架構重復,不出意外,會提示合並失敗。如下

處理合並失敗的問題

最後,將 XX.framework(真機或者模擬器framework都可)文件夾 拷貝出來,替換AILLSDK(本文使用的)為剛才合並的新文件。
查看替換後的framework支持全部真機模擬器架構。

我在合並binary文件之後,僅拷貝出 Release-iphoneos 文件夾下的 XXX.framework ,並替換掉AILLSDK二進制文件。導入項目中使用模擬器運行,報錯,顯示找不到架構。

解決方案

拷貝所有的moles到

再替換掉AILLSDK二進制文件,導入項目,如果framework中內含第三方庫,需要在所在的工程中使用pod載入,否則會提示編譯失敗。
至此,編譯成功。🎉🎉🎉🎉🎉

不管是在framework封裝的內部,內部swift類調用內部的OC類,還是內部的OC類使用內部的swift類,還是外部工程swift類使用framework內部OC類,還是外部工程OC類使用framework內部swift類。原理是一致的,以下來介紹下:

在 AILLSDK.h(你自己創建framework時候生成的.h文件) 中添加import導入
#import <AILLSDK/OC類名.h>

在oc的 .m 或 .h 文件中,導入 #import <AILLSDK/AILLSDK-Swift.h> , 也就是 你自己framework名-Swift.h

3. 使用mac進行ios幾種命令行打包方式

自動打包的方式有如下幾種:
一、使用xcodebuild進行打包
參考apple文檔:https://developer.apple.com/library/prerelease/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html
xcodebuild -project "${TARGET}.xcodeproj" -target ${TARGET} CODE_SIGN_IDENTITY="${IDENTITY}" clean //將project clean下

xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive //進行archive,生成xcarchive文件
xcodebuild -exportArchive -exportFormat IPA -archivePath MyMobileApp.xcarchive -exportPath MyMobileApp.ipa -exportProvisioningProfile 'MyMobileApp Distribution Profile'
確實是可以生成.ipa,但是可能會導致不能安裝,https://developer.apple.com/library/prerelease/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html , 鏈接是apple的官方文檔,文檔大概的意思將 xcarchive文件作為.ipa方式進行導出, 為什麼不能在ios設備上安裝?
二、原生xcodebuild、xcrun進行打包,需要詳細了解,可以看下這個鏈接 http://www.jianshu.com/p/1229476fbce4
具體打包指令和第一種方法區別不大,不同代碼如下:
xcodebuild -scheme Zxh -configuration ${buildConfiguration} clean //對代碼進行clean
xcodebuild -project Zxh.xcodeproj -scheme Zxh -configuration ${buildConfiguration} -destination generic/platform=ios archive -archivePath ${buildPath} //進行build,相當於在xcode裡面進行command+b,生成.app文件
#xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/Zxh.app -o ${ipaName}.ipa --sign "iPhone Distribution:(打包證書)" //根據.app文件生成的ipa文件導出到指定目錄
三、xctool進行自動打包

參考網頁地址:http://www.tuicool.com/articles/uIZRZjy
1、確保安裝了xctool

沒有安裝xctool,可以用brew安裝,沒有安裝brew的,可以通過搜索安裝brew,然後執行如下操作安裝xctool

安裝命令:sudo brew install xctool
介紹下xctool命令:
xctool 是FaceBook開源的一個命令行工具,用來替代蘋果的xcodebuild工具。
先附上打包用的參考代碼,如下:
#
cd AutoProject //進入項目目錄

#
buildDay=$(date +%Y%m%d) //獲取當前日期
buildTime=$(date +%Y%m%d%H%M) //獲取當前時間
profile=」xxxx」 //設置打包配置文件
#
buildConfiguration=」QA」 //build時用的證書
buildPath=」../ArchiveProction/QA/${buildDay}/Auto_QA_${buildTime}.xcarchive」 //build後歸檔的文件目錄
ipaName=」../ipa/QA/${buildDay}/Auto_QA_${buildTime}.ipa」 //打好包放置位置
#
xctool -scheme AutoProject -configuration ${buildConfiguration} clean //clean下工程
xctool -scheme AutoProject -configuration ${buildConfiguration} archive -archivePath ${buildPath} //對項目進行Archive, 將xcarchive文件導出到指定目錄
xcodebuild -exportArchive -exportFormat IPA -archivePath ${buildPath} -exportPath ${ipaName} - exportProvisioningProfile 「$profile」 //生成的ipa文件導出到指定目錄, 此處依然使用的是xcodebuild進行打包, 待優化

閱讀全文

與ios打包編譯命令相關的資料

熱點內容
大金空調怎麼判斷變頻壓縮機壞 瀏覽:255
安卓手機如何注冊傳說對決 瀏覽:951
自學應聘程序員 瀏覽:917
linux設置根目錄 瀏覽:89
java向量空間模型 瀏覽:841
哪個app訂餐便宜 瀏覽:672
有什麼app可能存聊天記錄 瀏覽:468
強國app中的紀錄片在哪裡 瀏覽:714
dell伺服器可用什麼樣硬碟 瀏覽:636
javanewbyte 瀏覽:309
晶元app哪個好 瀏覽:751
文件夾名稱laptop怎麼去掉 瀏覽:247
單片機中斷應用 瀏覽:622
搜狗app哪個好用 瀏覽:452
中信銀行還完貸款什麼時候給解壓 瀏覽:233
ug自學編程入門 瀏覽:612
英語口語900句pdf 瀏覽:565
javabyte拼接 瀏覽:481
加密應用在哪裡找vivo 瀏覽:290
python讀寫圖像 瀏覽:289