admin管理员组

文章数量:1558898

从这一篇文章开始,我么就要开搞iOS相关的东西了,包括正向开发和逆向分析,因为不能仅仅局限于Android的世界,iOS的世界依然很美,同时我也是经常使用iPhone的,一直都想用上自己开发的插件,不过越来越觉得iOS不如Android好用了,本文主要介绍一下后续开搞的基本知识点。看看开发iOS需要知道哪些东西和需要准备哪些工具,具体和Android做比对。

 

一、应用开发和发布

关于应用发布已经账号开发,iOS和Android有着很大的区别,有这么大的区别应该是iOS整个生态系统比Android完善吧,Android我们都知道只要有AndroidStudio和一个设备就可以入门开发了,当然这里忽略模拟器效果哈。但是iOS不行,iOS不是说只要有一个Xcode和一个iPhone就可以开发了,还需要设置证书啥的。还有发布的时候也是,对于Android国内是免费的,只要你能够过了各个市场的审核就可以,国外GooglePlay需要开通账号我记得我当时是给了29美金,但是这个是终生的哦,所以还觉得可以,但是iOS就恶心了,只要购买就必须每年是99美金,记得是每年哦,说实话为了个人学习购买的话我是不愿意的,不过他也有免费的但是限制很恶心。下面来看一下iOS中应用发布和开发账号类型的区别

看到这张表格很好的诠释了iOS中开发者账号的几个类型,这里更多的关注是个人账号和公司企业账号:

1》其中个人账号有免费的也有交钱的,区别在于本地Xcode中项目的bundleid没有限制,在我开发学习过程中一直都是用免费的个人账号的,但是有一天我遇到这么个错误:

当时遇到这个问题很郁闷也问了很多人,最后发现原来是个人免费开发者账号他创建的工程配发的bundleid是有限制的,可能这个bundleid就是我最后一个了,具体这个限制数量好像官方也没说是多少个。当然免费的和付钱的还有一个最大的区别在于你开发完的应用是否可以发布到AppStore上,其实一直没搞懂苹果为啥在开发的过程中要把付钱的和没付钱的区分那么细,觉得上传发布到市场上区分付钱还可以理解。但是本地开发为啥还要区分,当然还有其他区别,这里就不在列举了。

2》公司账号和企业账号的最大的区别在于,公司账号和付费的个人账号都是可以发布应用到AppStore上的,这两个的区别是发布之后再AppStore里面显示的开发者名称不一样,而对于企业账号是不允许发布到AppStore市场中的和个人免费开发者账号类似,但是他有个好处就是没有设备限制,企业账号最常用的就是公司里面的应用内侧版本,就是不能泄露出去的版本,一般我们都是通过扫描二维码然后浏览器中提示安装,而且这种安装之后需要去 设置->通用->描述文件与设备管理 手动信任这个应用的,因为苹果认为从非AppStore中安装的应用都是不安全的,当然也有一些公司开发的应用不符合AppStore审核被拒的时候也是采用这种方式发布应用的,一般我们经常看一些网站上就是弹出一个提示让你安装,然后在让你去设置手动信任一下。

我们只要开发不管是发布还是不发布,都需要先去官网申请一个账号:https://developer.apple/account 这个主要用于后续开发用哪个账号进行app签名然后安装到真机中方便测试,其实如果你有iPhone设备了,肯定就有账号了,因为现在用iPhone的都需要用账号激活设备,然后iCould啥的,AppStore里面安装应用都需要账号的,没有账号其实设备是几乎用不了的。

关于账号这里还有一些区别,就是和我们后期出包类型有很大关系,比如我们现在用Xcode导出一个ipa包:

选择菜单Product->Archive:

然后这里选择Distrute App:

到这里就出现了四种类型的的打包方式了:

1、App Store Connect
保存到本地,准备上传App Store或者在越狱的iOS设备上使用,很明显的需要发布到App Store上的,那么结合上面的那张图,需要是付费的个人账号以及公司账号和政府账号才可以。
2、Ad Hoc
保存到本地,准备在已添加账号的可使用设备上使用(具体为在开发者账户下添加可用设备的UDID),该app包是发布证书编译的,安装测试用的但是有udid限制,那么可以理解是没有上传的AppStore的,那么除了一个免费的个人账号,其他类型账号都可以,有的同学好奇了免费的账号为啥不可以呢,其实直接点击next就知道了:

看到了这个就是我的免费账号被侮辱的结果,所以做人一定要有钱!

3、Enterprise
这种主要针对企业级账户下,可以本地服务器分发的app,这个一看就是没有任何udid设备数量限制,那么只有企业账号可以做到
4、Deployment 
针对内部测试使用,主要给开发者的设备(具体也为在开发者账户下添加可用设备的UDID)。该app包是开发证书编译的,其实这个和第二Ad Hoc很类似,唯一区别是这个用开发证书编译的,而Ad Hoc用的是发布证书编译的。

其实后面大家会经常看到这两种类型的的发布包方式(ipa):

第一、

本文标签: 之旅概要基本知识ios