自動(dòng)化持續(xù)集成實(shí)踐

自動(dòng)化持續(xù)集成實(shí)踐

打包命令

#clean 緩存目錄
rm -rf /Users/用戶/Library/Developer/Xcode/DerivedData/*
rm -rf ./build/*

#clean 工程
xcodebuild -quiet clean -workspace HybridStandard.xcworkspace -scheme HybridStandard-$envIOS -sdk iphoneos -configuration Release

#生成xcarchive文件
xcodebuild archive -quiet -workspace HybridStandard.xcworkspace -scheme HybridStandard-$envIOS -archivePath ./build/HybridStandard.xcarchive -sdk iphoneos -configuration Release

#簽名后生成ipa包
xcodebuild -quiet -exportArchive -allowProvisioningUpdates -archivePath ./build/HybridStandard.xcarchive -exportPath ./build/HybridStandard -exportOptionsPlist HybridStandard/HybridStandard-$envIOS-Info.plist

參考:https://blog.csdn.net/qq_32152027/article/details/60769001

exportOptions.plist文件中的可選配置參數(shù)如下:

compileBitcode : Bool

For non-App Store exports, should Xcode re-compile the app from bitcode? Defaults to YES.

embedOnDemandResourcesAssetPacksInBundle : Bool

For non-App Store exports, if the app uses On Demand Resources and this is YES, asset   
packs are embedded in the app bundle so that the app can be tested without a server to   
host asset packs. Defaults to YES unless onDemandResourcesAssetPacksBaseURL is specified.

iCloudContainerEnvironment

For non-App Store exports, if the app is using CloudKit, this configures the   
"com.apple.developer.icloud-container-environment" entitlement. Available options:   
Development and Production. Defaults to Development.

manifest : Dictionary

For non-App Store exports, users can download your app over the web by opening your   
distribution manifest file in a web browser. To generate a distribution manifest, the   
value of this key should be a dictionary with three sub-keys: appURL, displayImageURL,   
fullSizeImageURL. The additional sub-key assetPackManifestURL is required when using on demand resources.

method : String

Describes how Xcode should export the archive. Available options: app-store, ad-hoc,   
package, enterprise, development, and developer-id. The list of options varies based on   
the type of archive. Defaults to development.

onDemandResourcesAssetPacksBaseURL : String

For non-App Store exports, if the app uses On Demand Resources and   
embedOnDemandResourcesAssetPacksInBundle isn't YES, this should be a base URL specifying   
where asset packs are going to be hosted. This configures the app to download asset   
packs from the specified URL.

teamID : String

The Developer Portal team to use for this export. Defaults to the team used to build the archive.

thinning : String

For non-App Store exports, should Xcode thin the package for one or more device   
variants? Available options: <none> (Xcode produces a non-thinned universal app),   
<thin-for-all-variants> (Xcode produces a universal app and all available thinned   
variants), or a model identifier for a specific device (e.g. "iPhone7,1"). Defaults to <none>.

uploadBitcode : Bool

For App Store exports, should the package include bitcode? Defaults to YES.

uploadSymbols : Bool

For App Store exports, should the package include symbols? Defaults to YES.

問(wèn)題匯總

1、xcodebuild編譯找不到頭文件問(wèn)題

/Users/jenkins/workspaces/ios/ios.micro-finance/Pods/BlocksKit/BlocksKit/MessageUI/MFMailComposeViewController+BlocksKit.m:6:9: fatal error: 'A2DynamicDelegate.h' file not found
#import "A2DynamicDelegate.h"
        ^~~~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from /Users/jenkins/workspaces/ios/ios.micro-finance/Pods/AFNetworking/UIKit+AFNetworking/AFImageDownloader.m:26:
/Users/jenkins/workspaces/ios/ios.micro-finance/Pods/AFNetworking/UIKit+AFNetworking/AFImageDownloader.h:28:9: fatal error: 'AFHTTPSessionManager.h' file not found
#import "AFHTTPSessionManager.h"
        ^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from /Users/jenkins/workspaces/ios/ios.micro-finance/Pods/Cordova/CordovaLib/Classes/Private/Plugins/CDVGestureHandler/CDVGestureHandler.m:20:
/Users/jenkins/workspaces/ios/ios.micro-finance/Pods/Cordova/CordovaLib/Classes/Private/Plugins/CDVGestureHandler/CDVGestureHandler.h:20:9: fatal error: 'CDVPlugin.h' file not found
#import "CDVPlugin.h"
        ^~~~~~~~~~~~~
1 error generated.
In file included from /Users/jenkins/workspaces/ios/ios.micro-finance/Pods/IQKeyboardManager/IQKeyBoardManager/IQKeyboardReturnKeyHandler.m:24:
/Users/jenkins/workspaces/ios/ios.micro-finance/Pods/IQKeyboardManager/IQKeyBoardManager/IQKeyboardReturnKeyHandler.h:24:9: fatal error: 'IQKeyboardManagerConstants.h' file not found
#import "IQKeyboardManagerConstants.h"
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
** BUILD FAILED **

解決方法:

1、點(diǎn)擊項(xiàng)目→Build Settings→Search Paths→Header Search Paths(如果Search Paths下面沒(méi)有Header Search  Paths,請(qǐng)注意選擇類型為All)
2、在Header Search Paths下的Debug和Release中加入"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" 

2、查看打包后的簽名信息命令

$codesign -vv -d build/HybridStandard/PayLoad/HybridStandard-Dev.app
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容