真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios開發(fā)xcode,iOS開發(fā)Xcode查看代碼修改記錄

iOS開發(fā)中常用命令工具(xcode-select、lipo、xcrun等)

當(dāng)安裝多個(gè)xcode的版本,使用該工具使用指定的版本。

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)負(fù)責(zé)任的成都網(wǎng)站制作公司!

-p 或者 --print-path 查看當(dāng)前開發(fā)者目錄,也即是xcode的版本目錄。print the path of the active developer directory

-s path 或 --switch path 選擇xcode的版本

--install 安裝

--version 查看版本

--reset 恢復(fù)默認(rèn)

sudo rm -rf /Library/Developer/CommandLineTools 強(qiáng)制刪除安裝目錄下的文件

是管理Fat File的工具, 可以查看cpu架構(gòu), 提取特定架構(gòu),整合和拆分庫文件。

Mac OS X下二進(jìn)制可執(zhí)行文件的動(dòng)態(tài)鏈接庫是dylib文件。所謂dylib,就是bsd風(fēng)格的動(dòng)態(tài)庫?;究梢哉J(rèn)為等價(jià)于windows的dll和linux的so。mac基于bsd,所以也使用的是dylib。

Linux下用 ldd 查看,蘋果系統(tǒng)用 otool 。

otool命令介紹

MobSF

Mach-O 文件格式解析

xcodebuild :通過工程文件,生成app文件。

xcrun :通過app文件,來生成ipa文件(包含了簽名的過程)。

通過app文件生成ipa文件

libtool是一個(gè)通用庫支持腳本(/usr/bin/libtool),將使用動(dòng)態(tài)庫的復(fù)雜性隱藏在統(tǒng)一、可移植的接口中。

可以在不同平臺上創(chuàng)建并調(diào)用動(dòng)態(tài)庫,我們可以認(rèn)為libtool是gcc的一個(gè)抽象,也就是說,它包裝了gcc或者其他的任何編譯器,用戶無需知道細(xì)節(jié), 只要告訴libtool說我需要要編譯哪些庫即可,并且,它只與libtool文件打交道,例如lo、la為后綴的文件。

libtool工具的使用

庫是一單獨(dú)的文件,里面包含了按照特定的結(jié)構(gòu)組織起來的其它的一些文件(稱做此庫文件的member)。原始文件的內(nèi)容、模式、時(shí)間戳、屬主、組等屬性都保留在庫文件中。

詳細(xì)命令參見, 菜鳥網(wǎng)絡(luò)-ar命令

可以用來創(chuàng)建、修改庫,也可以從庫中提出單個(gè)模塊。

lipo libAFNetworking.a -thin arm64 -output lib-arm64.a 生成Arm64包

ar -t lib-arm64.a 輸出包含的.o文件 和 otool -L libAFNetworking.a 一樣。

ar -x lib-arm64.a 解壓出包里面的.o文件

在iOS開發(fā)中,常常用來分析二進(jìn)制和靜態(tài)庫文件。

列出 .o .a .so 中的符號信息,包括諸如符號的值,符號類型及符號名稱等。所謂符號,通常指定義出的函數(shù),全局變量等等。

iOS開發(fā)中,可以用來查看.a靜態(tài)庫所有打包進(jìn)去的.o文件和函數(shù)接口信息,幫助我們定位崩潰信息。

例如: nm -u libAFNetworking.a 列出某個(gè).o文件的接口信息。

二進(jìn)制查看命令,將文件顯示為16進(jìn)制字符串表示形式。

例如: xxd libYTKNetwork.a | grep "net" 查看YTKNetwork.a文件里面包含net字符串的,幫助我們分析一些二進(jìn)制文件。

DWARF文件初探——提取輕量符號表

Mac系統(tǒng)下lipo, ar, nm等工具的使用簡介

美團(tuán) iOS 工程 zsource 命令背后的那些事兒

Linux工具參考篇

iOS 靜態(tài)庫沖突 兩個(gè)不同的.o 文件沖突 ,靜態(tài)庫分離

iOS開發(fā)知識體系之《腳本自動(dòng)化打包--xcodebuild》

iOS腳本自動(dòng)化打包方案--xcodebuild

本文主要xcodebuild腳本自動(dòng)化打包并上傳到蒲公英或者AppStore,廢話不多說,直接上干貨!

先了解一下xcodebuild打包需要的一些指令

-workspace XXX.xcworkspace

XXX.xcworkspace需要編譯工程的工作空間名稱,如果工程不是.xcworkspace的,可以不需要-workspace XXX.xcworkspace這段話

-scheme XXX

XXX是工程名稱,-scheme XXX是指定構(gòu)建工程的名稱

-configuration Release

填入打包的方式是Debug或Release,就跟在Xcode中編譯前需要在Edit scheme的Build configuration中選擇打出來的包是Debug還是Release包一樣,-configuration就是配置編譯的Build configuration

-archivePath ./myArchivePath

配置生成.xcarchive的路徑, ./表示生成在當(dāng)前目錄下,myArchivePath是生成的.Archive文件名稱

ODE_SIGN_IDENTITY=證書

配置打包的指定證書,如果該工程的Xcode已經(jīng)配置好了證書,那么不加入這段話也可以,打包出來的證書就是Xcode中配置好的。

PROVISIONING_PROFILE=描述文件UUID

配置打包的描述文件,同上,Xcode已經(jīng)配置好了就不用在填入這段話了

CONFIGURATION_BUILD_DIR

配置編譯文件的輸出路徑,如果需要用到.xcarchive文件內(nèi)部的dSYM等文件,可以使用改字段指定輸出路徑。

如果工程是勾選了Automatically manage signing,那么就不用在配置ODE_SIGN_IDENTITY和PROVISIONING_PROFILE,今天這里講到的Automatically manage signing自動(dòng)配置證書,手動(dòng)配置的就不多說了,有興趣的話可以自己研究。

xcode工程配置自動(dòng)獲取證書,如下圖:

打包所需要文件

配置打包的ExportOptions.plist文件,可以在任意一個(gè)Xcode工程中新建一個(gè)ExportOptions.plist文件。dev和adHoc和AppStore的配置文件內(nèi)容不一樣,可以先手動(dòng)打包后看下plist文件的樣式,這里提供一個(gè)樣例:

這里method對應(yīng)的value為打包對應(yīng)的環(huán)境,有development、ad-hoc、app-store、enterprise根據(jù)打包環(huán)境來配置不同的值

編譯腳本命令

xcodebuild archive -workspace XXX.xcworkspace -scheme XXX -configuration Release -archivePath ./myArchivePath CONFIGURATION_BUILD_DIR ./dir ODE_SIGN_IDENTITY=證書 PROVISIONING_PROFILE=描述文件UUID

導(dǎo)出ipa包命令

xcodebuild -exportArchive -archivePath ./myArchivePath.xcarchive -exportOptionsPlist ./ExportOptions.plist -exportPath ./out

-archivePath ./myArchivePath.xcarchive指定需要打包的.xcarchive路徑,./myArchivePath.xcarchive表示在當(dāng)前終端路徑下的myArchivePath.xcarchive文件

-exportOptionsPlist ./ExportOptions.plist指定打包需要的ExportOptions.plist配置文件路徑

-exportPath ./out指定打包輸出的路徑, ./out表示打包結(jié)果輸出在終端的當(dāng)前路徑下的out文件家中。如果沒有out文件夾會自動(dòng)創(chuàng)建一個(gè)

腳本操作

首先:cd到需要自動(dòng)打包的工程下

然后:在終端中輸入touch xcodebuild.sh創(chuàng)建xcodebuild.sh腳本文件

然后:雙擊打開腳本寫入下面 腳本內(nèi)容(請確保所有版本的plist配置文件都寫好了)

最后:在終端中輸入./xcodebuild.sh運(yùn)行腳本,按照步驟完成打包選擇(如果運(yùn)行的時(shí)候出現(xiàn)Permission denied,請先在終端中執(zhí)行chmod a+x *.文件的后綴名后,在運(yùn)行,相當(dāng)于提高腳本文件的權(quán)限)

腳本內(nèi)容

此腳本包含了自動(dòng)上傳蒲公英的選擇操作,根據(jù)輸入指令來執(zhí)行具體操作

腳本實(shí)現(xiàn)

具體詳細(xì)腳本見GitHub地址: 如果好用記得給star,謝謝!

如腳本打包執(zhí)行遇到問題可留言溝通!

iOS開發(fā)之帶你玩轉(zhuǎn)Xcode自動(dòng)管理證書

每個(gè)iOS開發(fā)者都是被折翼過翅膀的天使,都曾被證書配置折磨的痛苦不止,好不容易學(xué)會了手動(dòng)管理證書,結(jié)果蘋果霸霸來了一個(gè)Automatically manage signing,又會陷入一圈的懵逼中,還真是不讓我們輕松,下面跟著我來將“充滿霧霾”的身心放空,不埋怨,不抱怨,畢竟蘋果霸霸也是好意嘛!接下來,讓這篇文章帶你理解自動(dòng)配置證書如輕拂過額頭的一縷清風(fēng)一般,吹過就驅(qū)散了你心中的“霧霾”。

到此,我想你已經(jīng)能夠理解Xcode自動(dòng)管理證書的過程了,如果還不夠理解,建議 靜下心 來再看一遍保證其意自現(xiàn)!

1:自動(dòng)管理證書的原則是根據(jù)你創(chuàng)建的APP ID來匹配證書和配置文件,也可以理解成根據(jù)你的Bundle ID來匹配,比較手動(dòng)管理還是方便很多,同時(shí)也不易出錯(cuò),理解證書的管理過程讓你在配置的時(shí)候輕松一笑面對,不再打錯(cuò)配置文件的包,不再混淆證書配置之間的關(guān)系,這點(diǎn)還是非常重要的,你要理解證書配置的來龍去脈,而不是每次配置好后自己仍不知所以然,雖然成功了,但是難免出錯(cuò)。

2:如果你發(fā)現(xiàn)Xcode自動(dòng)配置的APP ID不是你想要的配置文件時(shí)候,因?yàn)槟阋粋€(gè)APP ID可以對應(yīng)多個(gè)配置文件,所以它雖然APP ID是對的,配置文件不一定對,這個(gè)時(shí)候,你去文件夾刪除所有配置文件,然后再配置就可以了!

我是Qinz,希望我的文章對你有幫助。

iOS開發(fā)之Assets添加Xcode9新增條目item

這個(gè)問題主要是因?yàn)槔享?xiàng)目不是用Xcode9創(chuàng)建的,然后Xcode9出來之后我們升級到了Xcode9,但是打開項(xiàng)目Assets.xcassets,里面的AppIcon并沒有"App Store iOS 1024pt"這個(gè)item,另外如果使用的是LaunchImage而不是LunchScreen作為啟動(dòng)圖的話,LaunchImage里面也不會有"iPhone X Portrait iOS11+"這個(gè)item,所以我們就需要添加。

③更改Contents.json文件內(nèi)容,按照對應(yīng)格式添加即可:

AppIcon需要添加的內(nèi)容:

LaunchImage需要添加的內(nèi)容:

注意:

1filename這個(gè)字段的名字一定要跟你的圖片資源的名字相匹配,是圖片名字的全稱包括后綴名,也包括@2x或者@3x。

2添加這段內(nèi)容要注意前后的格式,如果你是添加在這個(gè)"images"這個(gè)數(shù)組的最后一個(gè)元素,那么與上一個(gè)元素之間就需要用","隔開;如果是中間添加那么就需要在前后都需要加","隔開,保持格式一致。

④把對應(yīng)的圖片資源拖到Contents.json文件同級目錄下即可。然后刷新下AppIcon和LaunchImage就能看到對應(yīng)的item了。

注意:

以上添加完之后還是要用Xcode9來打包,如果用Xcode8打包的話,會將原來指定的Icon或者LauchImage圖片變成unsigned,所以還是要用Xcode9打包!

如果有任何其他問題,評論區(qū)里面留言,以上?。?!

iOS開發(fā)Xcode報(bào)錯(cuò)匯總

pod登錄庫里報(bào)出的錯(cuò)誤,因?yàn)榘丫娈?dāng)成了錯(cuò)誤

解決方案: build Setting 里的 Treat Warnings as Errors 改成 NO

解決方案:在 Build Setting 里的 Framework Search Paths 下添加 $(inherited) 配置項(xiàng)

解決方案:在對應(yīng)的報(bào)錯(cuò)文件里,如 "PMUISKeletonAdapter" 項(xiàng)目的 Build Phases-Headers-Public 里添加對應(yīng)報(bào)錯(cuò)的文件

解決方案:刪除緩存, DerivedData 里緩存文件清空或者clear

組件互相持有導(dǎo)致

解決方案: podfile 里刪除一個(gè)持有關(guān)系。或者不同時(shí)引用這兩個(gè)組件,只引用其中一個(gè)。

找不到庫導(dǎo)致(前提是項(xiàng)目里能搜索到)

解決方案:在Other Linker Flags里添加對應(yīng)的庫

找不到MPGroupService庫里的MPMXXX文件里的CPMGroupMgr類

解決方案:添加對應(yīng)的類文件或者相關(guān)的pod庫。

OBJC_METACLASS意思是報(bào)錯(cuò)類重復(fù),OBJC_IVAR是指定屬性重復(fù)

解決方案:刪除其中一個(gè),如果是pod庫可以找找有沒有刪除相同的引用文件,能解決沖突的pod版本,如果沒有只能刪除其中一個(gè)pod庫。


分享標(biāo)題:ios開發(fā)xcode,iOS開發(fā)Xcode查看代碼修改記錄
新聞來源:http://weahome.cn/article/dssshds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部