iOS ipa重簽名 、resign
iOS ipa重簽名 (個人版、企業版APP均可)
下面是個人之前使用過的方式,介紹比較詳細
注意: 在開始重籤之前你先要有一個企業證書或者個人開發者證書(個人或者公司均可)(蘋果開發證書)
重簽名:可以讓用個人開發者賬號打出來的包,不用上架Appstore即可將其安裝到iOS裝置上(前提條件是你得有一個開發者證書)。
風險提示:這種重簽名方法僅供個人有興趣的開發者去玩玩,不提倡用於商用,提倡使用Appstore上傳發布到你的應用,重簽名只能算是黑科技,蘋果所不提倡的東西,如果APP使用量過大的話,企業證書有被封停的風險。當然,如果你使用的是個人開發者賬號,則只能在添加了UUID
蘋果在iOS8.1.3系統以後加強了對ipa安裝包簽名的驗證,主要區別在於ipa唯一標識在原有Bundle Identifier的基礎上增加了證書ID,也就說安裝包和手機上已安裝APP的Bundle Identifier即使一致,如果兩者簽名的證書ID不相同,那麼安裝包也無法正常安裝。
圖中方框裡字串就是證書ID(鑰匙串中我的證書),升級後的ipa標識就是證書ID+BundleID,只有兩者完全匹配,安裝包才能覆蓋安裝,否則就會提示安裝失敗。解決辦法就是解除安裝安裝包,重新安裝!
如果這個地方找不到證書ID,可登入到蘋果開發者中心https://developer.apple.com
其中Prefix就是證書ID
目前,重簽名主要用於企業證書重簽名個人證書釋出的ipa包,包括各種助手及企業內測包的釋出等。在重簽名前,讓我們先看看一個完整的ipa包有哪些與證書相關的東西!將ipa包字尾名改為zip,解壓之後,會發現一個資料夾Payload(如果是個人證書打包還會包含Symbols資料夾),payload資料夾下面的XXX.app資料夾中有_CodeSignature簽名資料夾和embedded.mobileprovision
_CodeSignature
-> ipa包簽名檔案
embedded.mobileprovision
-> 證書配置檔案
so,替換上面兩個檔案就解決了ipa重簽名的主要問題。
替換_CodeSignature
裡面的簽名檔案需要用到一個檔案entitlements.plist
的授權檔案。所以我們要建立一個entitlements.plist檔案,具體格式如下:
xml格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>xxxxxxxxxx.com.xxx.xxx</string>
<key>com.apple.developer.team-identifier</key>
<string>xxxxxxxxxx</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>xxxxxxxxxx.com.xxx.xxx</string>
</array>
</dict>
</plist>
其中xxxxxxxxxx.com.xxx.xxx
要換成ipa標識(就是證書ID+BundleID),其中xxxxxxxxxx
就是你的證書ID,後面部分是bundleID
注意:get-task-allow一定要填NO(false)(否則安裝一定失敗),還有bundleID一定要與新的embedded.mobileprovision
相對應,不然會導致簽名失敗。
準備工作都做好了 ,是開始我們重簽名的真正的步驟了:
1、解壓你所要簽名的ipa包(解壓后里麵包含Payload(如果是個人證書打包還會包含Symbols資料夾))
unzip xxx.ipa
2、刪除Payload中xxx.app裡面的_CodeSignature資料夾
rm -rf Payload/xxx.app/_CodeSignature
3、拷貝embedded.mobileprovision(新的必須改名為embedded)到Payload
中xxx.app
裡面
cp embedded.mobileprovision Payload/xxx.app
4、建立entitlements.plist,並用該檔案進行重簽名
codesign -f -s "iPhone Distribution: xxxxxxxxxx" --entitlements entitlements.plist Payload/xxx.app
其中"iPhone Distribution: xxxxxxxxxx"
是證書名, 在鑰匙串中能找到
5、修改xxx.app下面的info.plist裡面的bundleIdentifier
為你自己的bundleIdentifier
6、打包
zip -r xxx.ipa Payload
(如果之前資料夾包含Symbols資料夾,該資料夾與Payload資料夾一起打包)
7、安裝到手機進行驗證
xcode、iTunes、各種手機助手、或者一些第三方託管平臺(比如蒲公英等)
codesign命令
1. 重簽名
codesign -f -s "iPhone Distribution: xxxxxxxxxx" --entitlements entitlements.plist Payload/xxx.app
2. 檢視當前MAC電腦中的安裝的開發者證書:
security find-identity -v -p codesigning
3. 檢視簽名信息
codesign -vv -d Payload/xxx.app
可以看到如下資訊:
identifier ———>bundleID
iPhone Distribution :XXX ———>證書名
TeamIdentifier ———>證書ID(即 App ID Prefix )
4. 驗證簽名是否成功
codesign —verify Payload/xxx.app
我自己這邊看到的結果是這樣的,重簽名是成功的。
PS: !!!
如果你的APP中使用到了keychains的存取,APP在寫入keychains時報錯並導致APP奔潰日誌:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item
.
導致crash的原因是keychains
的資料僅共享於同公司(企業賬號),別的公司(賬號)訪問不了你公司產品的keychain,所以重簽名的bundeID必須與原來的一致。即你重簽名所用的entitlements.plist
中的bundleID要與原待簽名的APP的bundleID一致。
下面兩種做法均可以避免改問題
1、直接在Payload/xxx.app/info.plist中修改bundle identifier
為與entitlements.plist中
配置的bundleID
一致
2、如果你不想改變你的bundleID,在你重簽名所用到的企業證書需要去配置一個新的AppID,對該AppID配置App ID Suffix(Bundle ID)
為待簽名的App的bundleID,根據這個appID重新建立釋出檔案.mobileProversion
檔案。
如有疑問,可聯絡[email protected]
或者在下面留言
參考:
點選檢視參考1
點選檢視參考2
相關推薦
iOS ipa重簽名 、resign
iOS ipa重簽名 (個人版、企業版APP均可) 下面是個人之前使用過的方式,介紹比較詳細 注意: 在開始重籤之前你先要有一個企業證書或者個人開發者證書(個人或者公司均可)(蘋果開發證書) 重簽名:可以讓用個人開發者賬號打出來的包,不用上架A
iOS 企業級 IPA 重簽名
-s 企業證書 工具 sig 圖片 inf image git 重新安裝 最近公司客戶要求, 他們希望自己打包 IPA, 他們不提供p12和描述文件給我們, 於是我們只能用自己的證書打包好後, 做相應的處理, 然後在將 IPA 包給客戶, 讓他們用自己的證書重簽名,下面是企
iOS非越獄逆向——ipa重簽名
在iOS逆向開發時需要把下載的ipa檔案安裝到iOS裝置上,才能進行動態分析,才能更好的玩別人的App。但是有經驗的同學是知道的,下載的ipa(AppStore 和自己釋出的除外) 檔案是不能直接安裝到自己的iPhone (未越獄)上的。為什麼?因為蘋果爸爸作了
iOS逆向必備絕技之ipa重簽名
2018開篇,這回要講的是iOS重簽名,網上重簽名的工具太多了,我試用了一下,都還挺好使。但是,你不知道,我是個喜歡裝逼的人嗎?用工具怎麼夠酷呢?對,裝逼得用終端。接下來的操作都是在終端中進行,開始你的裝逼之旅吧! 一、重簽名準備工作: 找到開發者
ipa重簽名
using dem vision tin PE 文檔 ted paths 刪除 為什麽要研究重簽名問題?將程序打包成ipa包後,ipa包中會包含Provisioni
ipa重簽名的四種方式
一 開發者除錯安裝app到手機的簽名過程 1. Mac電腦生成公鑰M和私鑰M 2. 公鑰M傳給蘋果伺服器,蘋果伺服器的私鑰A對公鑰M進行加密生成證書返回給xcode 3. Xcode下載profile等描述檔案,用公鑰M對app進行加密生成app簽名,然後把app
iReSign對ipa重簽名
有些情況下,我們需要對.ipa檔案進行重新簽名,下面做簡單介紹。 2.開啟IReSign.app 根據下圖指示填寫必要內容 這裡需要注意,描述檔案需要自己提前下載好,而且保證描述問卷調查 app ID與填寫的 app ID相同 3.簽名後,桌面會出現一個新的.ipa檔案
ios 逆向重簽名
現在我們開始來進行重簽名。 第一步:先將ipa包進行解壓。 選中ipa包,右鍵 -> 開啟方式 -> 解壓,如下圖所示: 第二步:替換 embedded.mobileprovision檔案。 我們需要將自己打包中的embedded.mobileprov
IOS 打包、安裝、重簽名 .app & .ipa
打包與簽名方法 Xcode 工具可以直接打包,不累贅; xcrun 命令打包: 1,清理: /usr/bin/xcodebuild -target targetName clean 2,編譯: /usr/bin/xcodebuild -target
iOS證書及ipa包重簽名探究
iOS證書學習推薦部落格程式碼簽名探析,本文重點在於介紹ios8.1.3系統ipa包重簽名(如企業證書)無法安裝的問題。蘋果在iOS8.1.3系統以後加強了對ipa安裝包簽名的驗證,主要區別在於ipa唯一標識在原有Bundle Identifier的基
iOS ipa包進行重新簽名
home all url info http 技術分享 resign 重新 image 1.安裝brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma
逆向-002-iOS重簽名
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Yuanti SC" } 在Windows環境下會有,靜默安裝。通過iOS應用重簽名(安裝app到手機上),蘋果簽名機制,防止未授權的應用進行安裝 ①獲取應用ipa ②Codesign重簽名 ③
APK反編譯、重編譯、簽名、檢視原始碼
1.反編譯與重編譯 工具:apktool 下載地址:https://ibotpeaches.github.io/Apktool/ 環境:Java 7 (JRE 1.7) 安裝步驟:參考官網(也可以不安裝,直接使用java -jar apktool.jar 命令) ,具體如下圖所示反編譯命令:ja
APK反編譯、重打包、簽名之apktool實現
1.下載apktool https://download.csdn.net/download/qq_25844803/10842372 (點一下,爽一年,我是渣渣輝) 2.準備環境 將解壓出來的apktool.bat和apktool.jar放到同一個資料夾下(如:C:\apkto
iOS 重簽名工具+時間控制器
2018年11月11日 10:44:49 qq_39860936 閱讀數:10 標籤: iOS ios
iOS逆向----手動重簽名(重簽名工具的原理)
首先搞一個脫殼的IPA包,可以從PP助手等應用中下載現成的,也可以自己砸一個。。關於砸殼可以看這篇文章,我們把這個IPA命名為test.ipa,把APP命名為test.app(命名只是為了以下方便閱
Mac通過iResign重簽名ipa未越獄安裝越獄程式軟體
注意:因為iresign只能在Mac上使用,所以前提必須有一臺 Mac 或者 安裝了OS X的虛擬機器。windows安裝OS X虛擬機器的教程網上很多,這裡不做贅述。 首先還要贅述一下,越獄當然一了百了,但是首先不是剛裝了系統的手機越獄很容易失敗,再到了IOS9的時候不
iOS HOOK 注入與重簽名
起因是在蝦神的公眾號上看到一篇文章 《Pokemon Go 鎖區破解》,正好周圍幾個小夥伴正在玩這遊戲,便仔細研究了下所謂的破解鎖區。這次鎖區其實是 GPS 鎖區,遊戲開發商為了縮小初始運營範圍,在中國範圍內都無法正常遊戲,也就是服務端通過客戶端傳送的定位位置資
ipa使用企業賬號重簽名並支援推送
Apple對APP的嚴格管理,導致我們TM案子iOS app們如果在app store上上線面臨很大的技術問題。和CP的協調以及商務上的折衷後,打算用企業簽名的方案,為嵌入我們sdk的app們建立一個專門的下載渠道。 假設要重新簽名的應用為iCPApp.ipa,
Android APK反編譯、重打包、重簽名
準備工作 Apk反編譯 個人覺得這兩個檔案直接放到 C:\Windows 下比較方便,開啟dos命令可以直接使用 反編譯命令列 apktool d -f 需要反編譯的apk -o 反編譯生成的目錄 例如:apktool d -f