iOS 打包类型和推送操作

001 .png
push01.jpg
push02.jpg
项目运行模式release/debug 和推送
  1. app在手机上编译运行的时候
 run运行模式无论是选择的debug还是release,
  a. 手动配置描述文件和证书:若release运行,signing(Release) 选择的描述文件须是dev的,因为dev_file包含了账号中的注册的设备,选择dis的描述文件是运行不起来的,因为不包含注册UUID设备的描述文件是不能直接运行的(adhoc时能运行但是app不能启动成功)。
debug或者adhoc运行,在手动选择描述文件的时候,同理。
当然选择了dev的描述文件,自动匹配的证书也是dev的,因为生成dev_file的时候,只能选择dev证书,这个不能修改。
b. 自动配置(Automatically manage signing):选择Team, 自动匹配的是dev证书和Xcode自动管理的描述文件,其实运行的时候,也是包含的UUId的设备的证书。自动配置:可以run —release和debug,应该是自动匹配的包含UUID设备的file。

直接运行,无论run的release还是debug,自动signing或者手动配置描述文件,此时iOS JPush,JPush只能选择开发环境推送消息,才能成功(JPush初始化方法的apsForProduction,isProduction参数设置YES或者NO都无关);

  1. 导出包的操作:
a. 自动配置签名,release编译,打development包,还是只有开发环境推送才能推;
b. 自动配置签名,release编译,打adhoc包,还是只有生产环境推送才能推;
c. 自动配置签名,release编译,打appstore包,直接不能装;

d. 自动配置签名,debug编译,打dev包,只能开发环境推送;
e. 自动配置签名,debug编译,打adhoc包,只能生产推送;
自动配置的,导出包时,不需要手动选择描述文件

A. 手动配置签名,release编译,导出dev包,导出时需要选择dev描述文件,只有dev文件供选择,只能开发环境推送;
B.手动配置签名,release编译,导出adhoc包,导出时需要选择adhoc描述文件,只有adhoc文件供选择;
C. 手动配置签名,release编译,导出appstore包,导出时需要选择dis描述文件,只有dis文件供选择;

总结:

  1. 自动签名和手动签名,导出的不同在于:最后导出时,是否需要选择描述文件;

  2. 无论签名方式如何,编译模式如何,最后导出包的选择:appstore,adhoc,development 才决定了推送的环境。

  3. 所以才实际操作中,只有导出类型为adhoc包安装,或者appstore包到testFlight安装,才能用生产推送。

  4. 推送授权弹框注意点:

1.在集成推送完好的情况下, tagget里面capabilities中关掉Push Notifications,就收不到通知,但是在安装启动的时候,还能弹出系统的是否允许通知的弹框。
2. 允许推送的授权弹框的出现是由 JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound,声音这些设置才有的,这些不设置,则不弹授权框,也不会接收到推送消息。

  1. 网络授权弹框
1. 当项目中首次安装并启动,里面有网络请求的情况下,系统会自动弹授权弹框;
2. 当切换app的网络权限:关闭app网络和允许网络来回切换时,当关闭网络权限后则每次启动,会弹出网络已关闭,去设置的系统弹框。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容