热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Xcode打包ipa

2019独角兽企业重金招聘Python工程师标准确保电脑联网,不然干什么都是扯淡!!1、关于AppleID很简单,任何

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

确保电脑联网,不然干什么都是扯淡!!

1、关于Apple ID

很简单,任何人只要跟苹果设备打交道,必须要有Apple ID。要想打包ipa,同样也必须要有Apple ID,没有的自己注册去。

下面为在Xcode中添加Apple ID作为账号的步骤

1240

CA45BCA6-EB11-49FE-AB94-C8719E9B37E2.png

1240

591BFCB0-711D-43FD-B401-887CFDF69643.png

2、关于开发者账号

http://www.lofter.com/postentry?from=search&permalink=2555de_672c927
网上有大批的开发者账号注册流程,可以去参考,应该很简单。我没有注册过,一直用的别人的账号。
注册账号之后,可以去苹果的开发者中心
https://developer.apple.com/membercenter/index.action
管理账号,证书,provision profiles等等。还可以添加测试设备等。

1240

4F0CD668-E1F9-48EC-B81C-B8F2795F4C97.png


点进去会有这样的配置界面的。

1240

EF6254C0-5C04-4C6C-A16C-4642681399BB.png

3、关于关于Certificate、Provisioning Profile

可以参考这篇文章看看他们之间的关系,Certificate(证书)就是app在打包的时候必须签名,苹果iOS系统在安装app之前会验证Certificate,否则不会通过安装。
Provisioning Profile简单来说就是包含Apple ID,证书,和设备ID等各种信息的集合体。一般来说,在打包ipa的时候,必须配置Provisioning Profile。

下面来看看Provisioning Profile在Xcode中的体现

1240

5522E65F-E167-4F6F-B4B9-8406EF8FA5C9.png


如果前面添加了Apple ID账号,进入这个界面,会看到有选项给你选的。

1240

01B8969D-F29C-44AB-A403-64926596B143.png


我这里有2个账号。一个是开发者,一个不是。

1240

33032EB6-7974-4278-9822-11D44F669BF8.png


选择个人账号之后,很明显没有签名,也就是对应这个Apple ID账号在你的Mac本地是没有对应的Provisioning Profile的。Provisioning Profile是需要去开发者中心
https://developer.apple.com/membercenter/index.action
配置的,具体怎么配置网上有教程
http://www.w-cun.com/post/ioskai_34009.htm
配置完成之后从网上下载下来保存安装到本地的。
怎么保存安装,第一种,直接去开发者中心下载安装即可,这里不介绍。
第二种、直接在Xcode中点击上图所示的“Fix Issue”即可。

1240

D08DC859-DC72-400D-B397-AD12F596E7EB.png


当然我的这个个人账号不是开发者,那就更不谈配置Provisioning Profile了,所以“Fix Issue”没有什么卵用。

换一个有效的账号,“Fix Issue”之后警告消失了!表明你可以用这个账号进行签名打包。

1240

A727D304-81C8-400B-A30A-4ED05AB9553F.png


不论用上面哪种方法安装Provisioning Profile,安装完成之后,可以在这里/Users/XXXXX/Library/MobileDevice/Provisioning Profiles找到相应的文件,如果以后换了台Mac,发现不能签名了,可以直接拷贝这些文件过去。

1240

F9B02DDA-7C44-4F06-911F-8332F62D3AF5.png

4、证书签名

在Xcode7之前,真机调试和打包ipa是必须要签名的。但是Xcode7出来了,真机调试不需要签名了。打包ipa也可以不需要签名,那不是可以绕过苹果安装app了??想得美,如果不签名打包的ipa那是不能安装的!!!打包可以不需要签名,但是你要想安装的话,必须签名。

签名打包就是在编译的过程中加入证书签名,那肯定是需要去Xcode中配置的,目前网上有方法能实现企业级证书打包签名不需要在编译时,而在编译之后。因此现在打包有两种方式:
1、在Xcode中配置code sign,实现签名打包ipa。适用于企业级账号证书,个人账号证书。
2、在Xcode中无证书打包ipa,上传到指定工作室网站,淘宝上现在一大堆打包服务的,由别人用他们的账号签名ipa。适用于企业及账号。

5、Xcode证书签名打包

1、设置有效的Archive配置,如下图所示,这里面一定要选择复制“Release”,因为发布版本一定是release的,这个做程序的都知道哈。

1240

913DFB03-142A-42A2-9F69-6FC44C2A8EF0.png

2、Edit Scheme

1240

26099984-B13C-4915-8118-DDF850521C41.png

这里选择刚才复制“Release”的add-hoc,当然你也可以不做第1步,这里直接选择“Release”也是可以的,添加add-hoc纯粹是为了区分,方便管理。

1240

7B4099A1-2FE2-4EBC-A96E-9165480EA015.png

3、配置code sign

1240

4F342FAB-9A6E-40AF-91CE-998FEBFDE560.png


还有一个地方,也要填,两个code sign的地方都不能漏

1240

9E656F89-0121-4FFB-953A-F4C363C83C73.png

4、Archive
先设置编译设备,只能选择iOS Device,选择其他模拟器是不能Archive的

1240

26A53F75-7920-42BC-92D3-7B114966BBD2.png


然后Archive

1240

2964D74F-4D0D-4C9B-BF3B-2789BD5E6F08.png


等待,Archive会弹出这个

1240

3BBB2944-08E3-43F4-A9DF-982560B98272.png


最上面的一个就是最新Archive出来的。。。

5、Export
最后就是导出了,点击上图中的“Export”,如下所示,很显然第一个选项是发布app的,不要点,那是个人开发者账号可以干的事情。

1240


下面把三个的话,看上面的文字,写的很清楚,打包的ipa用于在app store外面发布。
那么对于个人账号,打包的ipa能发布么?能安装到iOS设备上么?
答案是不能,能的话还需要越狱干嘛,还需要app store干嘛,个人账号发布的app唯一途径就是app store,发布app store除了我上面写的1,2,3,4,5巴拉巴拉之外,还需要去开发者中心填一堆的东西。这里不做介绍,自己去爬文章哈。
那么这里个人账号的打包的ipa有什么卵用呢?
卵用就是这个ipa可以安装到一部分iOS设备中,这些设备的ID已经添加到签名这个ipa的开发者账号的“Devices”里面了。也就是这里有你这个设备的话,你是可以装的!其他的都滚粗!

1240

43EBD77D-CCEC-4DC0-9C4D-824E54005528.png

那么企业级开发者账号签名的ipa呢?能安装到iOS设备上么?
答案是可以,这就是企业账号的作用了。可以直接装,也可以直接用,但是用之前iOS一般都会提示你不信任这个证书,要去设置里面设置信任,才可以使用。

扯了这么多,继续,上面export的时候下面三个选项我没有一一试,选择第二个。然后选择签名证书对应的开发者

1240

966E462E-F7B0-44E1-884A-D18DB8A89357.png


继续

1240

B5600593-4EA2-4985-AAEF-CDB0161F0DA9.png

1240

8EFB11CA-BC80-4D88-B377-9AC2BF720050.png

ok,大功告成了,ipa打包成功

1240

C927D096-BFE0-4FB5-B2D7-B0F7915882EC.png

6、无证书打包

淘宝上一堆企业签名打包的(我不会告诉你我用过),他们会告诉你打包一个ipa,然后发给他,他给你签名,你就可以用了。真的很良心啊!那这个时候你肯定不要自己去签名ipa了。利用Xcode7的免证书真机调试功能,我们可以很简单的打包ipa。需要设备一台。
1、设置使用无证书的开发者账号,没有交钱的。当然,如果下面出现警告,那么fix issuse即可。等待警告消失,就可以进行真机调试了。直接run的话app就会自动安装到你的iphone上。

1240

C4784D71-353F-42A4-BF42-006CA28AC780.png

2、在edit scheme中设置run的模式为realese。如下所示,一定要设置为release,图示中设置的add-hoc是copy的release。你要发布,当然得release版本了。

1240

D997CF5F-596B-4C2D-9526-34A021E160D2.png

3、run。这个时候手机上就安装了app。然后在finder中全局搜索你的app。注意如果你的工程名位XXX,那么请搜索XXX.app。你会看到搜索结果。然后右键,“在上层文件夹中显示”。如果有多个结果的话,记得选最近编辑的那一个。

1240

614A6907-300C-4189-8C67-504E03AB5B63.png

1240

865EDFBC-56D5-4607-A6E6-76C60306E366.png

4、将找到的app拖到itunes中,替换原来的应用。

1240

035E87AC-6519-4AC9-B7EC-24EA9651AC5E.png

5、在文件夹中显示,就可以找到ipa了。

1240

1151A8BE-76E9-4029-AC41-1E567F72D9D7.png

1240

8D1DCA8A-E4B9-440D-ACBA-DEBA72963BD3.png


转:https://my.oschina.net/andyzzh1314/blog/915983



推荐阅读
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
author-avatar
鎏源大哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有