ios项目的bundle identifier的申请 -回复
ios项目的bundle identifier的申请-回复iOS项目的bundle identifier的申请
一、什么是bundle identifier?
在iOS开发中,每个应用程序都有一个唯一的标识符,被称为bundle identifier(捆绑标识符)。
该标识符通常是一个逆序域名(Reverse Domain Name)的字符串,用来唯一标识一个应用程序。
bundle identifier在应用程序的签名、App Store上的识别、设备上的安装和更新等方面发挥着重要的作用。
二、为什么需要申请bundle identifier?
bundle identifier的唯一性是非常重要的,因为它用于标识一个应用程序的唯一性。
如果两个应用程序具有相同的bundle identifier,它们将被视为相同的应用程序,无法同时存在于同一设备上。
因此,当我们开发一个新的iOS应用程序时,需要在苹果开发者中心申请一个独特的bundle identifier,以确保我们的应用程序可以正常地在设备上安装和更新。
三、如何申请bundle identifier?
1. 登录苹果开发者中心(Identifiers & Profiles页面。
2. 在Identifiers页面,点击左侧的App IDs。
3. 在右上角点击"+"按钮,创建一个新的App ID。
4. 在创建App ID的对话框中,需要填写以下信息:
- Name:应用程序的名称。
- Explicit App ID:如果你的应用程序需要使用推送通知、App Groups 等功能,需要选择此项,并填写Bundle ID(例如:
com.example.appname)。
- Bundle ID Suffix:如果你的应用程序仅用于开发或企业发布,可以选择此项进行简化,会自动添加后缀(例如:com.example.appname.*)。
- App Services:根据应用程序的需求,勾选相应的功能。
5. 点击Continue按钮,确认信息无误后,点击Register按钮。
6. 完成注册后,bundle identifier将会生成,并显示在Identifiers页面中。
四、bundle identifier的注意事项
1. bundle identifier的格式必须是逆序域名的形式,不能包含空格或特殊字符。
2. bundle identifier是区分大小写的,因此需要确保大小写一致。
3. 如果你的应用程序需要使用推送通知、App Groups等功能,需要确保相应的服务已经开启,并在创建App ID时进行了配置。
4. 在开发过程中,如果需要使用不同的bundle identifier进行测试,可以通过修改Xcode项目中的Bundle Identifier来实现。
五、总结
bundle identifier是iOS应用程序的唯一标识符,用于应用程序的签名、App Store上的识别、设备上的安装和更新等方面。
在开发iOS应用程序时,我们需要在苹果开发者中心申请一个独特的bundle identifier,并遵循一定的规则和注意事项。
通过以上的步骤,我们可以轻松地申请并获取一个唯一的bundle identifier,为我们的iOS应用程序提供正确的标识,确保应用程序可以
正常地在设备上安装和更新。
Xcode中Info.plist字段详解
Xcode中Info.plist字段详解Info.plist⽤于向iOS提供关于app,bundle或者framework的⼀些重要信息。
它指定了⽐如⼀个应⽤应该怎样启动,它如何被本地化,应⽤的名称,要显⽰的图标,还有更多。
Info.plist⽂件实际上是苹果预定义schema的XML⽂件。
为了构建⼀个设备相关的健,你在健的后⾯要加上~iphone或者~ipad。
常⽤字段:1.获取版本信息:NSDictionary*infoDic = [[NSBundle mainBundle] infoDictionary];NSString *localVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];2.应⽤⽀持http⽹络请求:在Info.plist中添加 NSAppTransportSecurity 类型 Dictionary 。
在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型Boolean ,值设为 YES注意类型NSAppTransportSecurity为Dictionary,NSAllowsArbitraryLoads为Boolean,复制粘贴的时候,不要多了空格,segment fault 页⾯上直接复制,经常会多⼀个出空格!控制应⽤的名称:表A-1 控制应⽤的名称字段类型是否必须摘要CFBundleName String Yes bundle的简称, 这个健指定了你的应⽤的名称CFBundleDisplayName String No 本地化的bundle名, 本地化,可以通过InfoPlist.strings⽂件来为每个语⾔指定⼀个合适的值CFBundleDisplayNameCFBundleDisplayName字段指定了⼀个字符串值来标识bundle的显⽰名称。
iOS开发证书
iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述引言此操作手册用于提供客户进行企业发布299美金的账户发布非AppStore的app程序的CSR 证书,distribution证书以及p12证书导出用。
2 .iOS开发证书,描述文件,bundle ID的关系苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制。
这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布证书(又叫“生产证书”),开发描述文件,发布描述文件,推送证书等...。
初级开发者很难理解这中间的关系和作用。
下文就对上述列出的关键内容和它们的关系做个详细介绍。
开发者账号开发者账号其实就是apple id,只不过要成为开发者,需要去苹果开发者中心激活开发权限。
激活开发者账号分为三种,个人,公司和企业。
这三种账号各自有些区别,所以如果应用需要上appstroe,就要创建个人或者公司类型的账号;如果只想内部发布,就可以申请企业账号;个人账号和公司账号的区别就是公司账号能邀请多个账号,他们可以和你共享资源协同开发此应用,而不需要总是问你要你的账号使用。
bundle IDbundle ID可以翻译成包ID,也可以叫APP ID 或应用ID,它是每一个ios应用的全球唯一标识。
无论代码怎么改,图标和应用名称怎么换,只要bundle id没变,ios系统就认为这是同一个应用。
每开发一个新应用,首先都需要到member center->identifier->APP IDS去创建一个bundle id。
但是bundle id分为两种:Explicit App ID(明确的APP ID),一般格式是:com.domainname.appname。
这种id只能用在一个app上。
每一个新应用都要创建一个。
Wildcard App ID(通配符APP ID), 一般格式是:com.domainname.*。
uniapp离线打包app
uniapp离线打包app离线打包app步骤其中有⼀些坑要注意,以及对于不熟原⽣⼯程的⼈可以看看。
⼏个特点:1、相⽐云打包,不需要在苹果开发者后台⼿动⽣成描述⽂件。
2、也不需要下载证书到本地安装,再导出p12⽂件。
但是⽣成的证书开发者平台⾥不能删除。
准备⼯作:苹果开发者后台:1、⼿动⽣成certificate。
在Software⾥选择“iOS Distribution (App Store and Ad Hoc)”或“iOS App Development”。
实际操作中,另外⼏个我也点击了⽣成,怕出错就没有删除。
2、⼿动⽣成identifier。
每⼀个app都需要⽣成⼀个,选择“App IDs”。
bundle Id填写app的唯⼀id。
命名规则可以按反向域名,例如⾃⼰的域名是 ,那么就可以写com.meta.应⽤的名称。
这个⼀般情况下勾选,其他的看需求。
uniapp准备⼯作:2、下载最新的ios离线打包sdk,其实就是⼀个hbuilder hello的⼯程项⽬。
注意的是按照官⽅说法,sdk的版本号必须和hbuilder的版本号⼀致。
⽐如hbuilder⽤正式版,sdk⽤预览版就不⾏。
3、hbuilder中选择“原⽣app本地打包”-》“⽣成本地app打包资源”。
⽣成⼀个以“uni-app应⽤标识”的⽂件夹,例如__UNI__E27A345。
打包⽅法:1、⽤xcode打开“iOSSDK@3.2.16.80725_20211122/HBuilder-Hello/HBuilder-Hello.xcodeproj”。
2、把hbuilder打包的离线app打包资源⽂件夹拷贝到“iOSSDK@3.2.16.80725_20211122/HBuilder-Hello/HBuilder-Hello/Pandora/apps”。
3、修改info.plist⾥的dcloud_appkey为之前申请的appkey。
5、配置要打包的app的基本资料。
ios runtime 修改 bundleidentifier 的返回值
ios runtime 修改bundleidentifier 的返回值摘要:1.简介2.ios runtime 简介3.修改bundleidentifier 的返回值4.总结正文:1.简介在开发ios 应用时,有时需要对应用的bundleidentifier 进行修改。
bundleidentifier 是应用的唯一标识符,通常在开发过程中不会轻易修改。
然而,在特殊情况下,可能需要调整bundleidentifier。
这时,我们可以使用ios 的runtime 机制来实现这个功能。
2.ios runtime 简介ios 的runtime 机制允许我们在运行时修改程序的内部状态,包括类、对象和方法。
通过runtime,我们可以动态地创建、修改和删除对象,以及调用方法。
要使用runtime,我们需要导入`objc`模块,并使用`objc_getClass()`、`objc_getMethod()`等函数来获取类和方法。
3.修改bundleidentifier 的返回值要修改bundleidentifier 的返回值,我们可以通过以下步骤实现:首先,我们需要找到应用的bundleidentifier。
我们可以通过`NSBundle.mainBundle().bundleIdentifier`来获取。
然后,我们需要找到修改bundleidentifier 的方法。
我们可以通过runtime 机制,查找`NSBundle`类中相关的方法。
在这里,我们可以找到`NSBundle`类中的`setBundleIdentifier:`方法。
接下来,我们可以通过`objc_msgSend()`函数调用`setBundleIdentifier:`方法,并传入新的bundleidentifier。
最后,我们需要确保修改后的bundleidentifier 能够正确地返回。
我们可以通过在`setBundleIdentifier:`方法中添加一个分类,来实现这个功能。
ios企业证书使用方法
ios企业证书使用方法iOS企业证书使用指南什么是iOS企业证书?iOS企业证书是由苹果公司颁发的一种证书,用于企业开发、测试和分发iOS应用程序。
企业可以通过申请和安装这种证书,实现在公司内部设备上无需使用App Store即可安装和使用应用程序。
申请iOS企业证书的方法1.登录[Apple开发者中心]( Identifiers & Profiles”页面。
2.在左侧菜单中选择”Certificates”,点击”+“按钮,选择”iOS App Development”。
3.按照页面提示,使用Keychain Access创建证书签发请求文件(.csr)。
4.将证书签发请求文件上传至开发者中心,并等待证书生成。
5.下载生成的证书文件(.cer),双击安装到Keychain Access。
6.在Keychain Access中导出证书为.p12文件。
配置iOS企业证书在Xcode中配置1.打开Xcode,选择你的项目。
2.进入”Signing & Capabilities”选项卡。
3.选择”Team”为你的企业开发者账号。
4.在”Signing Certificate”中选择你之前下载和安装的iOS企业证书。
在企业分发时配置1.将应用打包成IPA文件,并将IPA文件上传至企业分发的服务器。
2.在服务器上创建一个名为”“的文件,内容如下:<key>items</key><array><dict><key>assets</key><array><dict><key>kind</key><string>software-package</string><key>url</key><string></dict></array><key>metadata</key><dict><key>bundle-identifier</key><string></string><key>bundle-version</key><string></string><key>kind</key><string>software</string><key>title</key><string>My App</string></dict></dict></array>3.将”“文件上传至服务器,并确保可以通过URL访问到。
HBuilder iOS离线打包配置说明
参考文档:/article/41要想使用Hbuilder编译的文件上传到AppStore中必须使用离线打包进行打包。
通过下载SDK包,然后将包内的所有内容都拷贝至mac某个目录中(并不是文档中说明的只拷贝演示项目)拷贝后,在拷贝目录打开HBuilder-Hello之后,双击,如下图:按照说明进行相关的修改。
---------------------------------------------------------------------------------------------------------------------------------------------------------链接中的说明文档------开始------------------------------OS离线打包App离线打包预备环境▪iOS开发环境,Mac OS、XCode 7.2以上版本;▪下载HBuilder离线打包iOS版SDK(5+ SDK下载)。
SDK目录说明▪HBuilder-Hello:离线打包演示应用;▪Feature-iOS.xls:iOS平台各扩展Feature API对应的库文件列表;▪Readme.txt:版本说明文件。
注意:HBuilder运行环境相关库文件已全部包含在HBuilder-Hello演示应用中配置编译工程▪从演示应用HBuilder-Hello创建工程解压SDK包,将演示应用HBuilder-Hello拷贝出来(可对目录进行重命名),进入目录,双击“HBuilder-Hello.xcodeproj”文件打开工程:▪配置应用标识(Boundle Identifier)选择左侧“Project Navigator”中应用工程根目录,选中TARGETS下的HBuilder打开工程属性界面,在General下修改Identity的值:其中Bundle Identifier为苹果的AppID,必须与应用发布是配置的Profile关联的AppID一致;Version为应用版本号,在App Store中显示的版本号,推荐与manifest.json中version 下的name值一致;Build为编译版本号,App Store判断升级使用,推荐与manifest.json 中version下的code值一致。
苹果开发注册流程及真机调试
苹果开发者计划注册流程、如何真机调试及如何发布程序(图文并茂,傻瓜教程)第一章:注册开发者标准公司计划注册开发者标准个人计划于标准公司计划基本一样,这里以标准公司计划为例。
如果搞不清这两者的区别请链接此地址查看,这里就不过多的说明了。
/developer/support/ios/enrollment.html一:创建Apple ID账号1.首先登陆Apple的官网申请一个Apple ID账号,登录网站: 如图1.1图1.12.在页面右侧点击“创建一个Apple ID”按钮。
3.稍等一会,将进入申请Apple ID的步骤1页面,在这里填写你的Apple ID账号、密码、密码提示问题和生日、姓名,电子邮件地址和地理位置等其他信息(注意:要认真填写。
全部需要用英文填写,不要用中文。
否者有些信息填写后不能修改而且会出现乱码。
)。
4.填写完之后,点击最下面的“创建Apple ID”按钮,如果所填写的信息无误的话,你的Apple ID账号就创建完成了。
5.这时你会收到一封来自Apple的邮件需要你激活,点击“立即验证”会弹出一个页面,输入正确的账号和密码就验证成功了。
如图邮件二:注册成为苹果开发者1.登录网站,在页面右上角点击“Member Center”标签进入登录界面并使用刚才创建的Apple ID 进入。
如下图2.在Member Center中首先要求完善你的个人资料(Personal Profile),比如:国家,公司,住址和电话等,在之后的专业资料(Professional Profile)中填写你的开发趋向,比如:开发平台选择IOS,开发领域是选择Business等。
如下图3.填写完这些资料后,需要签署一份法律协议,点击“我同意(I Agree)”之后,将进入邮件认证(Email verification)阶段,从你的邮件中获取认证码,填写在页面的文本框中,点击“继续(Continue)”,就注册成功了。
ios runtime 修改 bundleidentifier 的返回值
ios runtime 修改bundleidentifier 的返回值题目:iOS Runtime修改Bundle Identifier的返回值引言:在开发iOS应用程序时,Bundle Identifier是一个重要的标识符,它用于唯一标识一个应用程序,使其在设备中与其他应用程序区分开来。
然而,某些情况下我们可能需要动态地修改Bundle Identifier的返回值,以满足特定的需求。
本文将详细介绍如何使用iOS Runtime技术来实现动态修改Bundle Identifier的返回值。
第一步:了解Bundle Identifier首先,我们需要了解Bundle Identifier的概念和作用。
在iOS开发中,每个应用程序都有一个唯一的Bundle Identifier,它通常由应用程序的开发者在Xcode中指定。
Bundle Identifier通常使用反域名风格的命名方式,例如com.example.myapp。
Bundle Identifier在应用程序安装时将被系统使用,以确保每个应用程序在设备中是唯一的。
第二步:探索iOS Runtime技术iOS Runtime是苹果官方提供的一套运行时库,开发者可以使用它来动态地修改和扩展Objective-C的类和方法。
通过使用iOS Runtime技术,我们可以在运行时修改Bundle Identifier的返回值,而无需重新编译和签名应用程序。
第三步:了解Bundle Identifier的获取方式在开始修改Bundle Identifier的返回值之前,我们需要知道应用程序是如何获取Bundle Identifier的。
一种常见的方式是使用NSBundle类的bundleIdentifier属性。
我们可以使用runtime替换方法实现该属性的返回值动态修改。
第四步:创建一个运行时替换类我们需要创建一个Objective-C类,对bundleIdentifier属性进行运行时替换。
2017-08-23极光推送接入介绍
PART TWO
Xcode的证书配置教程
Xcode的证书配置教程
参照iOS SDK 集成指南集成JPush SDK 和上传了推送用到的p12证书后在编译运行前需要先配置一下证书,步骤 如下: 打开xxx-info.plist的Bundle identifier项把上传到JPush 控制台的bundle id填写进去:
项目代码
项目代码
8、最后清除角标
PART FIVE
推送
推送
1 . 后台传入不同的值,点击通知进入不同的界面,可以在极光的官网发送通知界面,展开可选设置,使用附 加字段,这里我加了一个键值对key和值可以自行设置,然后在工程中需要进行判断
推送
代码如下:大家可以在点击通知会走的方法中调用此方法
根据它的说明创建打开KeychainAccess 创建 Certificate Signing Request。
填写“User Email Address”和“Common Name” 后选择 Saved to disk 进行保存 。 继续返回Apple developer 网站点击 Continue ,上传刚刚生成的 .certSigningRequest 文件生成 APNs Push Certificate。 下载并双击打开证书,证书打开时会启动“钥匙串访问”工具。 在“钥匙串访问”中你的证书会显示在“我的证书”中,注意选择“My Certificates” 和"login"
极光推送接入介绍
简介
极光推送,英文简称 JPush,是一个面向普通开发者开放的,免费的第 三方消息推送服务。 轻量级的客户端SDK:开发者只需在客户端集成极光推送 SDK,即可轻 松地添加 Push功能到他的 App中。极光推送支持 Android、iOS、windows phone。 云推送服务:开发者可以在管理Portal上快捷地向用户推送消息,也可 以定制推送的时间、用户群、位置等,还提供远程推送 API。 推送效果分析图表:开发者可以在管理Portal上查看推送统计信息,直 观地评估推送效果
iOS保持App真后台运行
iOS保持App真后台运⾏在我看来,苹果系统与安卓系统最直观的区别就是后台处理⽅式了吧,安卓⼿机⼀旦开启了很多app放到后台,即使前台什么也不做,就是切换⼀下系统界⾯都会觉得卡;苹果⼿机不论开多少app在后台都感觉很流畅.这是因为安卓默认处理app为真后台,可以⼀直在后台处理操作;⽽iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因⽽对后台机制采⽤墓碑式的“假后台”。
除了系统官⽅极少数程序可以真后台,⼀般开发者开发出来的应⽤程序后台受到以下限制:1.⽤户按Home之后,App转⼊后台进⾏运⾏,此时拥有180s后台时间(iOS7)或者600s(iOS6)运⾏时间可以处理后台操作2.当180S或者600S时间过去之后,可以告知系统未完成任务,需要申请继续完成,系统批准申请之后,可以继续运⾏,但总时间不会超过10分钟3.当10分钟时间到之后,⽆论怎么向系统申请继续后台,系统会强制挂起App,挂起所有后台操作、线程,直到⽤户再次点击App之后才会继续运⾏iOS系统app如何实现在后台长时间运⾏⽐较常⽤的可以实现“真后台”的⽅法:1.VOIP2.定位服务3.后台下载4.在后台循环播放⽆声⾳乐⽬前我接⼿的项⽬是视频点播类项⽬,需要在app进⼊后台也可以保持电视播放剧集,并在回到前台后更新进度条进度,并且每60s对后台发送⼼跳包,保持长连接,所以需要实现真后台.使⽤了第4种⽅式,静⾳播放,上架之前多次被拒但最终通过了审核.如何通过了审核上架的时候,标注是视频点播类app,此app类似于电视遥控器,起初⼀进⼊后台就循环播放⽆声⾳乐,所以苹果⽅⼀直以播放视频和⾳频没有声⾳拒绝.但是为了保持真后台,必须是类似⾳乐播放器⼀类的可以后台播放声⾳的app.所以第⼀次上架时,点击播放后退到后台会在后台循环播放⼀个有声⾳的MP3,在通过了审核后,⽴刻更新⼀个版本,把有声⾳的MP3⽂件换成⼀个⽆声⾳的MP3此时苹果测试⼈员审核不会像第⼀次审核那么严格,通过了.具体实现:⾸先我们看看app进⼊后台进⼊前台的⼏个常⽤⽅法#pragma mark - 程序将要进⼊后台(墓碑状态)- (void)applicationWillResignActive:(UIApplication *)application {}#pragma mark - 程序进⼊后台- (void)applicationDidEnterBackground:(UIApplication *)application {}#pragma mark - 程序将要进⼊前台- (void)applicationWillEnterForeground:(UIApplication *)application {}#pragma mark - 程序进⼊前台- (void)applicationDidBecomeActive:(UIApplication *)application {}配置plist⽂件背景播放的⽀持:在AppDelegate中实现⼤概://进⼊后台- (void)applicationDidEnterBackground:(UIApplication *)application{NSLog(@"%s",__FUNCTION__);//设置永久后台运⾏UIApplication *app = [UIApplication sharedApplication];__block UIBackgroundTaskIdentifier bgTask;bgTask = [app beginBackgroundTaskWithExpirationHandler:^{//不管有没有完成,结束bgTask任务[application endBackgroundTask:bgTask];dispatch_async(dispatch_get_main_queue(), ^{if (bgTask != UIBackgroundTaskInvalid){bgTask = UIBackgroundTaskInvalid;}});}];dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{if (bgTask != UIBackgroundTaskInvalid){bgTask = UIBackgroundTaskInvalid;}});});//当只有点播了时才会退到后台,如果不点播则后台不开启,以省电if ([CJGloblePlayer defaultGloblePlayer].runningPlayer.isPlaying){//开启后台任务[self applyBackgrounTaskTime];//UI停⽌更新[[CJTopPlayView sharePlayView].rotaionView stopRotation];}dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{NSLog(@"Starting background task with %0.1f seconds remaining", application.backgroundTimeRemaining); [NSThread sleepForTimeInterval:600];NSLog(@"Finishing background task with %0.1f seconds remaining",application.backgroundTimeRemaining);//告诉系统我们完成了也就是要告诉应⽤程序:“好借好还”嘛。
