
说明:当应用程序启动时执行,应用程序启动入口。只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等,值得注意的是字典参数:(NSDictionary )launchOptions,该参数存储程序启动的原因。
1若用户直接启动,lauchOptions内无数据;
2若由其他应用程序通过openURL:启动,则UIApplicationLaunchOptionsURLKey对应的对象为启动URL(NSURL),UIApplicationLaunchOptionsSourceApplicationKey对应启动的源应用程序的bundle ID (NSString);
3若由本地通知启动,则UIApplicationLaunchOptionsLocalNotificationKey对应的是为启动应用程序的的本地通知对象(UILocalNotification);
4若由远程通知启动,则UIApplicationLaunchOptionsRemoteNotificationKey对应的是启动应用程序的的远程通知信息userInfo(NSDictionary);
其他key还有UIApplicationLaunchOptionsAnnotationKey,UIApplicationLaunchOptionsLocationKey,
UIApplicationLaunchOptionsNewsstandDownloadsKey。 如果要在启动时,做出一些区分,那就需要在下面的代码做处理。 比如:应用可以被某个其它应用调起(作为该应用的子应用),要实现单点登录,那就需要在启动代码的地方做出合理的验证,并跳过登录。
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
{
NSURL url = [options objectForKey:UIApplicationLaunchOptionsURLKey];
if(url)
{
}
NSString bundleId = [options objectForKey:UIApplicationLaunchOptionsSourceApplicationKey];
if(bundleId)
{
}
UILocalNotification localNotify = [options objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if(localNotify)
{
}
NSDictionary userInfo = [options objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(userInfo)
{
}
}是的,安卓可以改变Bundle ID,并且这是一个非常常见的 *** 作,可以让应用在其他设备上被正确识别,获得所需的权限。不过要改变Bundle ID需要更改应用的清单文件并重新签名才能生效。方法一:
还原网络设置
(注:既然有缓存问题引起的(原因看方法二),清除缓存就可以恢复。方法二有个不好的下载中会有2个APP,安装成功后正常。方法一不好的就是网络密码要重新输入了,测试了3个iPhone5s,IOS812设备,2个可以1个不成功)
方法二:(来着网络转)
iOS7可以下载没有任何问题,iOS8发现挂在官网上的企业版的app点击了提示是否安装应用程序,但是确认以后没有反应,找了很久,都没有发现问题。后来查看了的device console发现安装的时候出现
LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: commycomMyApp
后来查资料外国开发者推测是iOS8的一个bug:
The biggest issue for us is that we can not reproduce this onany of our devices Our suspicion is that iOS 8 has some internalcache with bundle IDs and just doesn't install a build if it thinksthat an app with this bundle ID is already installed As theinstallation doesn't even start, we think that iOS is matching thebundle identifier from the manifest plist against this cache
它会寻找是否ios缓存的identifier与bundle identifier在plist文件中匹配,如果匹配,它会认为已经安装了,就不会有反应。 上面解释的很清楚。所以解决办法就是在plist文件中修改bundle Identifier。
比如plist文件的BundleID是commycomMyApp,则修改成commycomMyAppfixios8。(创建一个假的bundleID,可以随便取,这样ios就不会认为已经安装。记住是修改plist文件的bundleID,不是应用程序的bundleID)
发布以后就发现可以了。只是如果已经安装了app,则会出现一个新的下载的空白icon,因为这个app的bundleID与plist的bundleID不一致,当下载完成后,会覆盖原本app,因为它会检测到下载安装的app的bundleID已经存在并且覆盖。
完美解决。
1、安装iOS上架辅助软件Appuploader
2、申请iOS发布证书(p12)
3、申请iOS发布描述文件(mobileprovision)
4、打包ipa
5、上传ipa到iTunes Connect
6、TestFlight方式安装到苹果手机测试
7、设置APP各项信息提交审核
一、下载安装iOS上架辅助软件Appuploader
Appuploader下载链接
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store
方便快捷,配合本教程使用,可以快速掌握如何真机测试及上架!
下载软件包后解压直接使用,无需安装。
如果win 32位系统点击appuploaderexe启动时提示(下图所示),32位系统需要点击appuploaderjar或者startbat启动
Windows 32的系统请先安装好java环境再启动软件
java环境安装教程
一、申请iOS发布证书(p12文件)
发布证书用于上架,证书有p12及mobileprovision两个文件,配套使用,先申请p12!
11、点击右下角+ADD选择
类型:下拉选择发布证书
证书名称:不要中文、随意设置
邮箱:随意
密码:证书的密码、比如设置123这样,不用很复杂,记好、打包时要用、很重要
应用id:这里不用选
点击ok创建。
注意:iOS发布证书最多能申请3个,如果账号已经有3个发布证书了,将申请报错(如下图)
p12有数量限制,但可以公用! 也就是一个p12可以对应无数个描述文件(mobileprovision)组成无数套证书上架不同的APP!
也可以删掉之前的发布证书,重新创建,不会影响已上架的app。
12、创建成功后,找到刚创建的发布证书(iOS Distribution这个类型的就是发布证书,如果之前创建过请看过期时间就知道哪个是新创建的了),点击p12 文件,下载保存p12证书文件到电脑。
二、创建iOS发布描述文件(mobileprovision文件)
21、返回Appuploader首页,选择描述文件进去。
在申请ios描述文件之前先加个应用id(如果之前加过要用以前加过的应用id,可跳过此步)
应用id:又称套装id,appid,BundleID,包名,各打包平台叫法不同!
点击右下角+ADD,在应用id项,点击下拉三角符号即可看到以前加过的记录!
初次使用或者需要上架另一个项目app需要先创建一个新的应用id!
31、添加新应用ID步骤,点击添加应用id!(不同的APP需要编写不同的应用id相当于app的身份z)
应用id:三段式格式、如app名称是淘宝,可以编写为comapptaobao,自由编写!不能重复!具有唯一性@
名称:数字或者字母,自由编写,不要中文,不能重复。
点击ok添加!
如果添加报错(应用id具有唯一性,可能重复添加或者别人用过这个应用id),解决办法就是查看自己是否已经加过,或者修改编下应用id再添加。
点击ok只要没d出报错就是添加成功了,注意先关掉窗口,重新点右下角+ADD进入下拉应用id可查看刚添加的应用id是否存在。
在AU软件添加的应用id只有默认权限,如果你需要开通推送通知、苹果支付等权限需要到苹果开发者中心配置!
在苹果开发者中心也可以添加应用id,在au及开发者中心添加是一样的互通的!
苹果开发者中心添加应用id及配置相关权限教程
22、添加成功后,点击右下角+ADD,进入添加界面!
Type:下拉选择发布版profile
应用id:选择对应的应用id(又称套装id,appid,BundleID,包名)
证书:选中全部就行
Devices:设备这里不像选开发版profile时会出现,发布版不用选。
输入名称:不要中文,随意,123之类的就行,注意不要跟之前申请过的名称一样),点击ok创建。
23、选择刚创建的发布版描述文件(iOS Distribution这个类型的就是发布描述文件,找刚创建的输入的名称),点击Download下载,保存到电脑
申请到p12及mobileprovision这两个iOS证书文件即可去打包了!
四、iOS打包IPA
各开发者工具打包教程,根据自己使用的平台去打包,证书都是一样用。
这里介绍了几个平台的打包教程,对应自己使用平台的看看,没有写的平台如果不会可以问下技术支持。
开心App平台打包网站教程
HBuilder打包教程
APICloud打包教程
phonegap打包教程
xcode打包教程
APPcan打包教程
变色龙打包ipa教程
这里以HBuilder平台为例
41、打开HBuilder工具,选择开发好的项目,点击发行,选择发行为原生安装包。
42、选择iOS打包,支持的设备类型(可以选择支持iPhone和支持ipad),选择使用苹果证书
AppID:跟申请证书描述mobileprovision时选择的要一致(又称套装id,appid,BundleID,应用id,包名)
profile文件:选择上传配置文件mobileprovision
私钥证书:上传p12文件
私钥密码:输入创建p12设置的密码。
然后点击打包。
43、打包成功后,下载保存ipa,这个ipa包就能安装到手机测试了。
检查一下Xcode里的bundleId和微信开放平台里面设置的bundleid是否是一致的。2
由于苹果iOS 13系统版本安全升级,为此微信的openSDK在186版本进行了适配。 186版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。在iOS项目中,出现过这样一个问题:由于应用BundleID信息校验不通过,无法分享到微信
先上错误出现的截图:
出现错误的原因是因为:该项目在微信上的BundleID没有填或者填的是错的,解决办法,在SDK官方网站中,将BundleID填写正确就可以了。问题秒解决!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)