iOS App重签名步骤整理--记录要点

App重签名需要准备很多原理类的知识,知道iOS 的代码签名机制熟悉证书与配置文件Mach-O 二进制文件的组成程序包与资源文件授权机制等相关知识;除此之外还要各种各样的工具配合。
本文不准备讲原理性的东西,只有通过实际操作,原理才能转化为产品。
下面看一下对App重签名的步骤,自己也记录一下,以后发布App的时候可以使用下面的步骤方法。

首先准备原材料:

需要准备的原材料

注:mac机器上安装和证书和配置文件都要与appbundle id和真机的UID相匹配。
ios_resign_with_app文件请看步骤4

 ### 一、马上开始重签名步骤
 ####1.打开终端,cd到当前目录

$ cd /Users/mango/Desktop/重签名

***以下操作都是在“重签名”路径下。***

####2.拷贝替换配置文件:

$ cp embedded.mobileprovision Chromium.app/embedded.mobileprovision

####3.查找mac中可用证书

$ xcrun security find-identity -v -p codesigning


![可用证书](http://upload-images.jianshu.io/upload_images/3076482-011953b62de744e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####4.下载签名脚本
下载地址:
https://github.com/chenhengjie123/iOS_resign_scripts

使用这个脚本可以让```app```包内的其它需要签名的文件,如**插件**、**iwatch**、**framework**等正确签名,因此使用这个脚本可以完全不用再管```app```内部是否有插件有情况。

***将脚本拷贝到“重签名”文件夹中。***

####5.给脚本赋予权限

$ chmod a+x ios_resign_with_app

####6.给app签名

$ ./ios_resign_with_app Chromium.app "iPhone Developer: lin xiao (XEAAXAHAFS)" embedded.mobileprovision Chromium-resigned.app

有如下输出就说明成功了

![创建签名文件](http://upload-images.jianshu.io/upload_images/3076482-8d6b06b0d6a204ff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


####7.产出:
在“重签名”文件夹中,产生了一个叫```Chromium-resigned```的```app```,如下图所示:
![输出产品Chromium-resigned.app](http://upload-images.jianshu.io/upload_images/3076482-369deed18e73ebbe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####8.部署到真机

$ ios-deploy -d -b Chromium-resigned.app

注:``` ios-deploy```工具的安装可以参照文章第二部分。```ios-deploy```甚至可以以```debug```模块启动```App```,并在终端上输出与```XCode```控制台一样的信息输出。

**有如下输出即代表成功部署到真机上了。**

[....] Waiting for iOS device to be connected
[....] Using ef215c406137b21eef4c3dc5e8bd76943c5646c0 (N61AP, iPhone 6 (GSM), iphoneos, arm64) a.k.a. 'xlin的iPhone'.
------ Install phase ------
[ 0%] Found ef215c406137b21eef4c3dc5e8bd76943c5646c0 (N61AP, iPhone 6 (GSM), iphoneos, arm64) a.k.a. 'xlin的iPhone' connected through USB, beginning install
[ 5%] Copying /Users/qmango/Desktop/重签名/Chromium-resigned.app/META-INF/ to device
[ 5%] Copying /Users/qmango/Desktop/重签名/Chromium-resigned.app/META-INF/com.apple.ZipMetadata.plist to device
[ 5%] Copying /Users/qmango/Desktop/重签名/Chromium-resigned.app/_CodeSignature/ to device
[ 5%] Copying /Users/qmango/Desktop/重签名/Chromium-resigned.app/_CodeSignature/CodeResources to device

...

[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 60%] TakingInstallLock
[ 65%] PreflightingApplication
[ 65%] InstallingEmbeddedProfile
[ 65%] InstallingEmbeddedProfile
[ 65%] InstallingEmbeddedProfile
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] Installed package Chromium-resigned.app
------ Debug phase ------
Starting debug of ef215c406137b21eef4c3dc5e8bd76943c5646c0 (N61AP, iPhone 6 (GSM), iphoneos, arm64) a.k.a. 'xlin的iPhone' connected through USB...
[ 0%] Looking up developer disk image
[ 95%] Developer disk image mounted successfully
[100%] Connecting to remote debug server


###二、碰到的问题汇总:

####1.运行```ios_resign_with_app```脚本时找不到文件或文件夹

xlmini:重签名 xiaoL$ ./ios_resign_with_app Chromium1.app "iPhone Developer: lin xiao (XEAAXAHAFS)" embedded.mobileprovision Chromium-resigned.appcp: Chromium1.app: No such file or directorycp: tmp.app/embedded.mobileprovision: No such file or directoryResigning with certificate: iPhone Developer: lin xiao (XEAAXAHAFS)find: tmp.app: No such file or directorysecurity: unable to open "tmp.app/embedded.mobileprovision" for reading: No such file or directoryCannot parse a NULL or zero-length dataCreating the Signed APPmv: rename tmp.app to Chromium-resigned.app: No such file or directory
Created app: Chromium-resigned.app

***解决办法:***
执行如下命令 

$ chmod a+x ios_resign_with_app

####2.安装```ios-deploy```工具,安装方法:

$ sudo npm install -g ios-deploy --unsafe-perm=true

###三、参考资料:
https://objccn.io/issue-17-2/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容