ios 打ipa包的方法以及打包过程中出现的问题

公司的帐号是企业帐号,开发的app不需要上传到App store,而是直接打包成ipa包提供给公司内部使用。我参考了许多前辈们的方法,加上自己的总结得到如下打包ipa包的方法:如有错误请指出,谢谢!

OS有两种证书和描述文件:

证书类型使用场景

开发(Development)证书和描述文件用于开发测试,在HBuilder中打包后可在真机环境通过Safari调试

发布(Distribution)证书和描述文件用于提交Appstore,在HBuilder中打包后可使用Application Loader提交到Appstore审核发布

准备环境

必需要有苹果开发者账号,并且加入了“iOS Developer Program”

Mac OS 10.9以上系统(如果已经申请p12证书则不需要)

(打包需要:添加UDID +钥匙串申请的请求性文件 +发布证书文件+发布描述性文件)

(企业帐号不需要添加别人的UDID)

登录iOS Dev Center

打开网站https://developer.apple.com

使用苹果开发者账号登录帐号:

登录成功后在页面右侧选择“Certificates, Identifiers & Profiles”:

[一]添加调试设备(UDID)

开发描述文件必须绑定设备,所以在申请开发描述文件之前,先添加调试的设备。

(如果已经添加设备,或是企业帐号则可跳过此节,不用添加UDID)

拿到UDID的方法:

将设备连接到电脑,启动iTunes,点击次区域可切换显示设备的UDID,右键选择复制

打开“Registering a New Device or Multiple Devices”页面,输入设备名称和UDID:

就可以在这里面看到你添加进去的UDID了

[二]生成证书请求文件(钥匙串)

不管是申请开发(Development)证书还是发布(Distribution)证书,都需要使用证书请求(.certSigningRequest)文件,证书请求文件需在Mac OS上使用“Keychain Access”()工具生成。

打开钥匙串访问工具:

打开菜单钥匙串访问(一般在电脑的左上角)

打开创建请求证书页面,在页面中输入用户邮件地址(User Email Address)、证书名称(Common Name),请求类型(Request is)选择保存到磁盘(Saved to disk):

点击“Continue”后弹出保存路径:

点击“Save”后保存证书请求文件,成功提示:

生成以下文件:

保存文件名称为“CertificateSigningRequest.certSigningRequest”,后面申请开发(Development)证书和发布(Production)证书时用到。

[三]申请发布(Distribution)证书

发布(Production)证书用于正式发布环境下使用,用于提交到Appstore审核发布。

申请发布(Production)证书

在“Certificates, Identifiers & Profiles”页面“Certificates"Production",可查看到已申请的所有发布(Production)证书,点击右上角的加号可创建新证书:

打开“Add iOS Certificate”页面,在“Production”栏下选中“App Store and Ad Hoc”:

在页面底部选择“Continue”:

打开确认证书请求页面,点击“Continue”继续:

打开证书生成页面,先点击“Choose File...”选择“生成证书请求文件”章节生成的“CertificateSigningRequest.certSigningRequest”文件,再点击“Generate”生成cer证书:

生成证书成功后打开证书下载页面,选择“Download”下载保存证书(ios_production.cer):

双击保存到本地的ios_development.cer文件导入到“Keychain Access”:

导入成功后,可以在证书列表中显示:

选中导入的证书,右键选择“Export "Developer" ...”:

打开证书保存页面,输入文件名、选择路径后点击“Save”:

打开设置证书密码页面,输入密码及确认密码后点击“OK”:

打开访问“Keychain Access”密码页面,输入Mac OS管理员密码,点击“Allow”,保存开发(Development)证书(如“HBuilderCert.p12”可以提供给别人使用)。

得到文件:

[四]申请发布(Distribution)描述文件(打包的时候必用)

在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Distribution",可查看到已申请的所有发布(Distribution)描述文件,点击右上角的加号可创建新描述文件:

打开“Add iOS Provisioning Profile”页面,在“Development”栏下选中“iOS App Development”:

点击“Continue”按钮,打开“App ID”选择页面,选择要使用的“App ID”(如之前创建的“io.dcloud.HBuildApp”),点击“Continue”:

打开“Select certificates”页面,选择前面创建的发布证书:

点击“Continue”,输入描述文件的名称(如“HBuilderProfileDistribution”):

点击“Generage”,生成描述文件成功:

点击“Download”下载保存开发描述文件(如HBuilderProfileDistribution.mobileprovision)。

双击文件自动添加到项目的工程中。

[五]设置Xcode内容,进行打包

打开Xcode:

注意这里的Bundle ID和team的使用:

在每个info.plist文件中设置Bundle ID

点击桌面窗口的Product,进行Archive

进入Archive界面

最终得到ipa包就成功了:

[六]如何给别人使用:

1.可以将ipa包直接发给别人,可利用iTunes 和手机进行同步,直接安装。

2.利用第三方网站,如:蒲公英网站,fir.im网站生成二维码扫描即可安装

备注:

若也经打过ipa包的项目,在修改项目的内容后,第二次打包时在UDID,发布证书文件,描述性文件等没有删除的情况下可直接进行Xcode里面的操作就可以了,不必再申请相应的证书。

[七]打包时遇到问题:

错误:

错误1.证书配置不对

错误2:

2.archive的时候报“no identity found"错

错误3:若Archive为灰色(不可点)

1.证书问题

要打包ipa首先需要设置code sign identity,一个应用需要打包至少需要三个要素:证书,APP ID,还有一个容易被忽略的provisioning profile。

证书的申请流程到处都可以找到,这里只简单介绍一下,首先使用钥匙串创建一个certSigningRequest文件,然后登录apple developer的ios developer申请证书,将certSigningRequest文件上传,生成一个证书,将它下载下来即可。接着是APP ID,仍然是到apple developer创建,一般是公司域名的倒写加应用名。就是通过provisioning profile,它也是通过apple developer官网创建,在创建时会让你选择类型,打包ipa测试的话就选择AD HOC,记得添加UDID,创建后下载下来生成mobileprovision文件,双击运行即添加到资源库中去,而xcode在读取你的系统里的证书时实际上是在查找资源库里面的provisioning profile。provisioning profile包含了证书,APP ID和UDID列表,archive后这些信息会被加入ipa中。

错误4."file not found"

在archive时会碰到一个蛋疼的问题,就是明明在模拟器编译运行都正常,但是打包ipa时却报一个找不到头文件的错,这是由于直接编译时使用的是你的系统的头文件目录,而archive时使用的时SDK下的头文件目录,一般情况下这两者时一致的,但是有些特殊库的头文件,如libxml,在系统下/usr/include/libxml2是包含在头文件自动搜索范围内的,而SDK中这个目录不在自动搜索范围内,所以就会报一个"file not found"。

解决方式就是在编译参数里面添加一个头文件搜索目录,工程->build setting,搜索header search paths,添加你需要手动添加的头文件目录,如/usr/include/libxml2。

3.显示archive success,但是organizer不能自动弹出,手动打开也看不到刚刚打的包,或者没有share按钮可点

遇到这种问题可能有各种不同的原因,但是我敢说90%以上都是因为同一个原因,而这个问题的解决方法也超简单,工程->build setting,搜索deployment,找到skip install项,将其改成NO,target->build setting,搜索deployment,找到skip install项,将其改成NO,

解决方法:

注意:请先确保证书设置没有问题

在Xcode中当你在更新了你得证书而再重新编译你的程序,真机调试会出现“Your build settings specify a provisioning profile with the UUID‘XXX’, however, no such provisioning profile was found.  Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.”。解决方案如下:

1.关闭项目,找到项目文件XXXX.xcodeproj,在文件上点击右键,选择“显示包内容”(Show Package Contents)。会新打开一个Finder。

2.在新打开的Finder中找到project.pbxproj,并且打开,找到所有包含报错的UUID‘XXX’的行(包含UUID后面的一串数字的行,可能不包含"UUID"),整行删除。

3.保存,重新启动项目,再编译,就OK了。

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

推荐阅读更多精彩内容