-
使用Offline砸殼過(guò)的ipa示范
-
簡(jiǎn)單使用到到命令介紹
codesign -d Offline.app #查看可執(zhí)行文件路徑
codesign -d -v Offline.app #查看更詳細(xì)的信息
codesign -d -vv Offline.app #查看更詳細(xì)的信息,包含簽名信息
codesign -fs “證書(shū)串” --no-strict --entitlements=權(quán)限文件.plist APP包 #簽名.app包
codesign -fs “證書(shū)串” 目標(biāo)文件.framework #簽名Frameworks目錄下的可執(zhí)行文件
codesign --force --verify --verbose --sign "證書(shū)串" 目標(biāo)文件.dylib #dylib 簽名
security find-identity -v -p codesigning #查看本地可用的證書(shū)
security cms -D -i embedded.mobileprovision #查看描述文件
chmod -R 777 二進(jìn)制文件 #給二進(jìn)制可執(zhí)行文件權(quán)限
Zip -ry 壓縮后輸出文件名 要壓縮的文件 #壓縮文件
-
創(chuàng)建一個(gè)Xcode iOS項(xiàng)目
主要是獲取embedded.mobileprovision描述文件
編譯 -- 真機(jī)調(diào)試 -- 才能生成描述文件


有效期只有6天,拷貝embedded.mobileprovision描述文件到Offline.app目錄下


修改需要簽名文件夾里面的Info.plist文件,將之前Xcode里面的BundleID替換到Info.plist文件對(duì)應(yīng)的地方


修改Info.plist文件后保存

-
創(chuàng)建權(quán)限文件
security cms -D -i embedded.mobileprovision #查看描述文件
復(fù)制紅框內(nèi)代碼

com + N 選擇創(chuàng)建 XX.plist文件

切換模式編輯plist文件

復(fù)制紅框內(nèi)代碼粘貼到plist文件

切換回來(lái)的模式


拷貝文件,.plist文件 可以重命名,建議不要有空格
我把Property List.plist重命名為 re.plist

-
準(zhǔn)備簽名
-
簽名注意-免費(fèi)證書(shū)不能簽名的東西
第三方庫(kù)簽名不了,注意檢查第三方庫(kù),沒(méi)有就過(guò)濾掉,有就刪除
例如:Pluglns目錄下的文件
Offline.app/XXX.app下包含有第三方庫(kù) 把整個(gè)XXX.app刪除
-
可簽名
Frameworks目錄下有.framework可執(zhí)行文件必須一個(gè)一個(gè)簽名
codesign -fs “證書(shū)串” 目標(biāo)文件.framework #簽名Frameworks目錄下的可執(zhí)行文件
dylib 文件簽名
codesign --force --verify --verbose --sign "證書(shū)串" 目標(biāo)文件.dylib #dylib 簽名
-
查看證書(shū)串

security find-identity -v -p codesigning #查看本地可用的證書(shū)
-
開(kāi)始簽名.app

codesign -fs “證書(shū)串” --no-strict --entitlements=權(quán)限文件.plist APP包 #簽名.app包
這里算把Offline.app簽名完成了
新創(chuàng)建Payload目錄,把Offline.app放進(jìn)去
然后Payload目錄壓縮,壓縮后文件后綴名重命名為ipa
Zip -ry 壓縮后輸出文件名 要壓縮的文件 #壓縮文件
-
安裝簽名好的ipa


安裝的手機(jī) ID 必須是和證書(shū)的一樣,否則會(huì)提示設(shè)備不一,等待安裝完成,安裝完成后手機(jī)桌面會(huì)顯示安裝好的圖標(biāo)
-
安裝報(bào)錯(cuò)解決
The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).
注意BundleID 包名不能有非法數(shù)字開(kāi)頭
重新檢查編寫(xiě)的權(quán)限文件.plist 是否有錯(cuò)誤
-
制作越獄版ipa
只需要對(duì)砸殼的二進(jìn)制可執(zhí)行文件重新簽名就可以了
codesign -fs “證書(shū)串” 可執(zhí)行文件 #簽名二進(jìn)制可執(zhí)行文件

前提需要安裝有AppSync Unified插件(第一次安裝需要重啟才生效)
不簽名可能會(huì)安裝失敗或者打開(kāi)閃退
.app 目錄下的embedded.mobileprovision描述文件刪除
Payload
-----xxx.app
壓縮后,后綴名重命名為ipa