项目运行模式release/debug 和推送
- 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都无关);
- 导出包的操作:
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文件供选择;
总结:
自动签名和手动签名,导出的不同在于:最后导出时,是否需要选择描述文件;
无论签名方式如何,编译模式如何,最后导出包的选择:appstore,adhoc,development 才决定了推送的环境。
所以才实际操作中,只有导出类型为adhoc包安装,或者appstore包到testFlight安装,才能用生产推送。
推送授权弹框注意点:
1.在集成推送完好的情况下, tagget里面capabilities中关掉Push Notifications,就收不到通知,但是在安装启动的时候,还能弹出系统的是否允许通知的弹框。
2. 允许推送的授权弹框的出现是由 JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound,声音这些设置才有的,这些不设置,则不弹授权框,也不会接收到推送消息。
- 网络授权弹框
1. 当项目中首次安装并启动,里面有网络请求的情况下,系统会自动弹授权弹框;
2. 当切换app的网络权限:关闭app网络和允许网络来回切换时,当关闭网络权限后则每次启动,会弹出网络已关闭,去设置的系统弹框。