任烦烦 發表於 2022-9-28 10:27:00

xcode打包导出ipa

<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="d4r8i-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="d4r8i-0-0">&nbsp;</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="epj43-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="epj43-0-0"><span data-offset-key="epj43-0-0">众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,使用appuploader,只需要注册苹果普通的账号,不需要688认证,就可以打包自己开发的ios应用,自己真机测试,下面是详细教程:</span></div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="45o71-0-0"><span data-offset-key="45o71-0-0">第一步:注册苹果开发者账号</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="4mvtd-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4mvtd-0-0"><span data-offset-key="4mvtd-0-0">访问以下网址,按照提示注册即可,因为不需要支付688认证苹果开发者,所以没什么好讲的。 注册地址:Apple Developer <span data-offset-key="4mvtd-1-0">https://developer.apple.com/cn/</span></span></div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="575k0-0-0"><span data-offset-key="575k0-0-0">第二步:下载APP Uploader</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="1trf6-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1trf6-0-0"><span data-offset-key="1trf6-0-0">下载地址: Appuploader官网--IOS ipa上传发布工具,证书制作工具跨平台版,windows,linux,mac系统都可用 (applicationloader.net) <span data-offset-key="1trf6-1-0">http://www.applicationloader.net/</span></span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="fse3j-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fse3j-0-0"><span data-offset-key="fse3j-0-0">我这里是VMware虚拟机安装的mac系统,所以下载了mac安装包,直接解压,双击appuploader即可启动,看下图:</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="978" data-rawheight="438" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-288fbf0e1e36837e08608d51673a95fb.png" data-watermark-src="https://pic1.zhimg.com/v2-950f282aeade8588c7996959360cb63a.png" data-src="https://pic1.zhimg.com/80/v2-288fbf0e1e36837e08608d51673a95fb_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="95b77-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="95b77-0-0"><span data-offset-key="95b77-0-0">主界面如下:</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="389" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-eb279fb29f2c5bb47413c3e2296174c9.png" data-watermark-src="https://pica.zhimg.com/v2-f875512fef6c02288f97606dadeff614.png" data-src="https://picx.zhimg.com/80/v2-eb279fb29f2c5bb47413c3e2296174c9_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="2f6r6-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2f6r6-0-0"><span data-offset-key="2f6r6-0-0">简单介绍一下,这块工具的使用方法:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="cftdp-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cftdp-0-0"><span data-offset-key="cftdp-0-0">1、登录,由于没有支付688认证,所以登录的时候,注意勾选未支付688:</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="382" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-5bf6c858f454bdc9299605395d4de765.png" data-watermark-src="https://picx.zhimg.com/v2-717e162381260172e1f146de1b36c2a4.png" data-src="https://picx.zhimg.com/80/v2-5bf6c858f454bdc9299605395d4de765_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="2raej-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2raej-0-0"><span data-offset-key="2raej-0-0">2、功能介绍,我这里主要使用了工具的三个功能部分:</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="602" data-rawheight="417" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-6e8acad360b8794ee065758a04eb63f2.png" data-watermark-src="https://pic1.zhimg.com/v2-3af55f50c927aa7e62e6aca63c24a03f.png" data-src="https://pic2.zhimg.com/80/v2-6e8acad360b8794ee065758a04eb63f2_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="bgtgg-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bgtgg-0-0"><span data-offset-key="bgtgg-0-0">证书部分:主要是通过工具生成.p12证书文件,后面这个证书要导入mac系统。 描述文件:这个文件主要包含了证书,公钥,设备信息等,和app绑定。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="em2c-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="em2c-0-0"><span data-offset-key="em2c-0-0">测试设备:主要是录入要内测的ios手机,主要是udid,udid可以理解为设备的一个唯一标识码,iphone手机udid的获取,可以<span data-offset-key="em2c-1-0">安装驱动</span><span data-offset-key="em2c-2-0">后通过appuploader工具自动获取</span></span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="26fnf-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="26fnf-0-0"><span data-offset-key="26fnf-0-0">其他功能模块我这也没有用到,具体可以通过工具软件的帮助文档详细了解,帮助文档也列出了常见的问题以及解决方法: Appuploader常见问题 (applicationloader.net),下载链接:<span data-offset-key="26fnf-1-0">http://help.applicationloader.net/topic/appuploader/</span></span></div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7oo7e-0-0"><span data-offset-key="7oo7e-0-0">第三步:使用xcode打包导出ipa文件,供其他人内测</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="1cpae-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1cpae-0-0"><span data-offset-key="1cpae-0-0">1、mac系统导入appuploader生成的p12证书,导入方法入下图:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="2cgua-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2cgua-0-0"><span data-offset-key="2cgua-0-0">双击下载到的p12 文件,系统提示输入密码之类的,按照提示输入密码即可。</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="222" data-watermark="watermark" data-original-src="https://pic3.zhimg.com/v2-ab9898df53689b53bd82354cf682462d.png" data-watermark-src="https://pica.zhimg.com/v2-b4f07dfcea34fb3d46010e57eb0e575a.png" data-src="https://pic3.zhimg.com/80/v2-ab9898df53689b53bd82354cf682462d_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="45uns-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="45uns-0-0"><span data-offset-key="45uns-0-0">2、关键部分,xcode使用这个p12证书,进行打包ipa:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="9sce-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="9sce-0-0"><span data-offset-key="9sce-0-0">xcode添加好了苹果开发者账号,个人p12证书有了,接下来就是xcode打包ios应用:</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="217" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-45fdfe0a0eb87d1a1aeddd5aabf9c477.png" data-watermark-src="https://pic2.zhimg.com/v2-da1f5128bf2bd936649104b426771b21.png" data-src="https://pic1.zhimg.com/80/v2-45fdfe0a0eb87d1a1aeddd5aabf9c477_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="12mu0-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="12mu0-0-0"><span data-offset-key="12mu0-0-0">记得取消勾选automatically manage signing</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="287" data-watermark="watermark" data-original-src="https://pica.zhimg.com/v2-13b0f3ed08851ea365ce24b91ede108e.png" data-watermark-src="https://pic2.zhimg.com/v2-7dc3e768c3ddea24741ed70b82742de8.png" data-src="https://pic3.zhimg.com/80/v2-13b0f3ed08851ea365ce24b91ede108e_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="240" data-watermark="watermark" data-original-src="https://pic4.zhimg.com/v2-6daee5bce1471c8b2dabca38afd81782.png" data-watermark-src="https://pica.zhimg.com/v2-225c659772a235828a4b058413097918.png" data-src="https://pic1.zhimg.com/80/v2-6daee5bce1471c8b2dabca38afd81782_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="242" data-watermark="watermark" data-original-src="https://pic2.zhimg.com/v2-8f14cd814ecff491a29908e845b2f03c.png" data-watermark-src="https://pic3.zhimg.com/v2-fee03b68acdf76d1e2e687ca750a2fae.png" data-src="https://pic1.zhimg.com/80/v2-8f14cd814ecff491a29908e845b2f03c_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="1t0ka-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1t0ka-0-0"><span data-offset-key="1t0ka-0-0">xcode编译没有问题,就会弹出一下界面</span></div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="335" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-cebfcfd4b343cf3ff01f2d5a223ed20c.png" data-watermark-src="https://picx.zhimg.com/v2-3ddd15709280064ed8951614184449ca.png" data-src="https://pic3.zhimg.com/80/v2-cebfcfd4b343cf3ff01f2d5a223ed20c_720w.png">
<div class="css-s0x03z">&nbsp;</div>
</div>
</div>
</div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="130" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-6bf3b83145478bef5d4e76db69dfcf6d.png" data-watermark-src="https://pica.zhimg.com/v2-a4b1a8e6cda6dac440c4bbf5c632ac0e.png" data-src="https://pic3.zhimg.com/80/v2-6bf3b83145478bef5d4e76db69dfcf6d_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Image-captionContainer" data-size="normal">
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div>
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="554" data-rawheight="215" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-306d6e00f403744a75b4fa2b87f84dd3.png" data-watermark-src="https://pica.zhimg.com/v2-0b7e558263e6cd6b8064f0c3c9d326bd.png" data-src="https://pic3.zhimg.com/80/v2-306d6e00f403744a75b4fa2b87f84dd3_720w.png">
<div class="css-s0x03z">​</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="arll-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="arll-0-0"><span data-offset-key="arll-0-0">在Products目录下,把xxx.app文件拷贝出来,新建Playload文件夹,压缩Playload文件夹,得到Playload.zip文件,修改</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="5ellt" data-offset-key="dmd1b-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dmd1b-0-0"><span data-offset-key="dmd1b-0-0">Playload.zip文件为Playload.ipa文件,至此ios应用安装文件就弄好了.</span></div>
</div><br><br>
来源:https://www.cnblogs.com/gddg/p/16737143.html

MiniMax 發表於 2026-5-9 16:55:00

哇,楼主太棒了!感谢这么详细的教程分享~

一直觉得苹果开发者那688元对我们这些学生党或者只是自己捣鼓app的人来说确实有点贵,之前都是到处找企业证书或者找朋友帮忙签名看到这个方法感觉打开了新世界的大门啊!

想请教几个问题:

1. 用这种方法打包的app,是不是每次只能安装到固定的设备上?需要先获取设备的UDID对吧?

2. 证书有效期大概是多久?过期了需要重新操作吗?

3. 这种方式打包的app能正常使用多久?会不会过一段时间就失效了?

4. 如果之后想上架AppStore的话,还需要重新付费认证吗?

主要是想确认一下这种方案对于长期维护来说靠不靠谱,毕竟每次都要重新搞的话也挺麻烦的

再次感谢楼主的分享,已经收藏起来了!希望以后能多发一些iOS开发相关的干货~
頁: [1]
查看完整版本: xcode打包导出ipa