Tag: 应用

简化了iOS代码签名和设置流程

如果您曾经是iOS开发人员,那么肯定会在某些时候让您理解签署和部署应用程序这一相对复杂的过程。 捆绑标识符,置备配置文件,App ID或证书签名请求等有很多其他非常规术语,而所有这些之间的纠缠使整个过程变得如此复杂。 在本文中,我们将尝试理解并涵盖以下主题: 1.代码签名 2.供应流程 3.应用部署 A.与供应和代码签名有关的主要术语: 首先,让我们了解您在尝试对签名,部署和应用进行编码时将重复使用的基本术语。 1. Xcode和会员中心 Xcode是IDE,与XCode相关的任何帮助:http://help.apple.com/xcode/mac/9.0/ 会员中心是我们可以在其中创建配置文件,应用程序ID,证书等的门户。会员中心的一些功能直接与Xcode结合在一起。 例如,您可以在Xcode设置中查看和创建您的签名身份,或者下载和刷新预配配置文件。 在注册了Apple Developer Program之后,您将能够登录会员中心。 2.签署身份 通过对应用程序进行签名,iOS可以识别谁对您的应用程序进行了签名,并可以验证自从您对应用程序进行签名以来未对其进行修改。 签名身份由Apple为您创建的公私钥对组成。 将公钥视为仅锁定机制,因此您需要知道私钥才能再次展开,解锁或解码数据。 3.公钥和私钥,企业社会责任和钥匙串应用 公钥和私钥对来自哪里,您如何请求包含它们的证书? 通过“钥匙串访问”应用程序创建证书签名请求(CSR)时,所有这些都会发生。 如果这样做,“钥匙串应用程序”将创建一个私钥和一个certSigningRequest文件,然后将其上传到Apple。 Apple将验证该请求并为您颁发证书(如果会员中心由您的团队管理员管理,CSR的接受和证书的创建由团队管理员[证书颁发机构或CA]管理)。 4.证书 这是Apple授予的加密证书。 它的工作原理与SSL相似,在SSL中,您获得由权威机构签名的证书。 Apple签署了用于对应用程序的不同部分进行签名的私钥。 不同的证书创建不同类型的信任。 有些允许您签名并提交应用程序到App Store,而另一些允许您的应用程序的Web服务器通过APNS向用户发送推送通知。 证书将包含可以下载到系统的公共密钥。 下载后,您需要双击将其放入“钥匙串访问应用程序”。 加密功能使用它为您的应用程序生成唯一的签名,该签名基本上就是您的代码签名身份。 该证书也可以通过会员中心获得,但是它仅包含公共密钥,因此请确保该私有密钥的安全。 注意:钥匙串中还必须包含一个中间证书,以确保您的开发人员或发行证书是由另一个证书颁发机构颁发的。 第一次设置XCode时会自动安装它,因此基本上您不需要太在意它,因为它是手动配置的。 5.供应配置文件 作为安全措施,仅通过使用证书就无法在任何iOS设备上安装应用程序。 必须在应运行应用程序代码的每台设备上安装一个配置文件。 每个开发设置配置文件将包含一组iPhone开发证书,唯一设备标识符和一个应用程序ID。 应用程序ID是两部分的字符串,用于标识单个开发团队中的一个或多个应用程序。 简而言之,Provisioning配置文件说:“具有使用此证书的私钥签名的标识符的应用程序可以在这些设备上运行。” 由于配置文件与证书相关联,因此很明显,我们必须决定是否要创建证书 1.开发或发行档案。 2.开发配置文件限制为100个设备。 3.分发配置文件可以是Ad-Hoc或App Store分发配置文件。 6.标识符 也称为“应用程序标识符”或“捆绑包标识符”。 它们唯一地标识您的应用程序,并且通常具有反向域名,例如com.company.product 应用程序ID是两部分的字符串,用于标识单个开发团队中的一个或多个应用程序。 该字符串由Team […]

每个iOS应用程序都必须具备应用程序安全性

应用程序安全性是软件开发最重要的方面之一。 我们应用的用户希望他们的信息被保密。 我们的敏感应用程序数据不应简单地泄露出去。 幸运的是,在本文中,我们将讨论开发人员在应用安全性方面所犯的错误以及如何轻松修复它们。 将敏感数据存储在错误的位置 我从AppStore研究了多个应用程序,其中许多应用程序都在犯同样的错误,将敏感数据存储在不属于它们的地方。 如果要将敏感数据存储在UserDefaults ,则可能会UserDefaults应用程序信息的风险。 UserDefaults只是作为属性列表文件存储,位于应用程序的Preferences文件夹中。 它们会保存在我们的应用中,而不会以任何形式进行加密。 基本上,通过使用示例中的iMaczing这样的第三方mac应用程序,甚至无需越狱设备,您就可以轻松查看从AppStore下载的任何应用程序的UserDefaults数据。 这些Mac应用程序经过专门设计,可让您浏览和管理iPhone上的第三方应用程序文件。 而且,您可以轻松浏览任何应用程序的UserDefaults 。 促使我写这篇文章的原因是,我发现从AppStore安装的许多应用程序都将其敏感数据写在User Defaults上。 例如访问令牌,活动可更新订阅标志,可用硬币数量等。 从免费使用付费功能到入侵网络层等等,所有这些数据都可以轻松检索和更改,并损坏应用程序。 正确的做法 在iOS应用程序上保存数据时,请始终牢记一件事, UserDefaults旨在仅保存少量数据,例如应用程序内用户的首选项,这是完全不敏感的。 为了保存我们的应用程序敏感数据,我们应使用Apple提供的安全服务。 钥匙串服务API通过为您的应用提供一种将少量用户数据存储在称为钥匙串的加密数据库中的方法,可以帮助您解决这些问题。 在钥匙串中,您可以自由保存用户明确关心的密码和其他机密信息,例如信用卡信息,甚至是简短的敏感便笺。 您还可以存储由证书,密钥和信任服务管理的项目,例如加密密钥和证书。 钥匙串服务API 下面我们将描述如何在钥匙串中保存用户密码。 查询字典部分kSecClass:kSecClassGenericPassword指示该项目是密码,钥匙串服务可从中了解数据需要加密。 然后,通过使用创建的查询调用SecItemAdd ,将新密码添加到钥匙串中。 检索数据类似 我们可以编写一个简单的测试来确保正确保存和检索数据 如果您必须保存多个密码,一开始使用Keychain API似乎有点复杂。我鼓励您为其创建外观,以帮助您根据应用程序使用情况以最佳方式保存和修改数据。 如果您想进一步了解外观模式以及如何为复杂的子系统创建简单的包装器,那么本文将对您有很大帮助。 另外,有许多开源库使Keychain API的使用更加简单。 其中一些是SAMKeychain和SwiftKeychainWrapper。 保存密码并执行身份验证 在我作为iOS开发人员的职业生涯中,我看到相同的错误不断重复出现。 很多时候,开发人员要么将原始密码保存在应用程序中以重复使用,要么直接使用用户名和密码发出登录网络请求。 如果您将密码直接存储在UserDefault那么现在应该知道本文第一部分提供的信息UserDefault您造成多少风险。 将密码保存到钥匙串可以提高安全性,但是,再次,我们应该始终通过初始加密将密码和其他敏感信息保存到钥匙串或其他地方。 假设攻击者可以通过钥匙串安全性进行黑客攻击或通过我们的网络进行攻击,从那里他可以直接以原始文本的形式检索我们的密码。 更好的方法是存储密码,并将其用于登录请求,作为为此密码构建的哈希。 加密敏感数据 自己实现散列可能非常复杂且过大,因此在本文中,我们将使用开源iOS库CryptoSwift的帮助。 CryptoSwift是在Swift中实现的标准安全加密算法的不断增长的集合。 让我们尝试使用CryptoSwift提供的算法在钥匙串上保存和检索密码。 此方法使用帐户和密码,并将散列的字符串而不是直接字符串保存在钥匙串上。 让我们分解一下这种方法正在发生的事情 salt是用于混合密码的唯一字符串。 sha256完成类型SHA-2哈希 HKDF是基于基于哈希的消息认证码(HMAC)的简单密钥派生功能(KDF) 我们制造盐以使我们更容易受到攻击。 […]

App Store展示次数激增的9个原因

如果您在App Store中有一个应用,则很可能会看到偶尔的展示次数激增(有时下载量没有相应的激增)。 这可能会引起您的烦恼,因为您想知道为什么有那么多人正在检出您的应用程序,却很快消失了(以及为什么所有这些人都没有选择下载它)。 虽然后一天是我们很高兴讨论1:1的问题,但以下是您的应用可能会出现展示次数激增或下降的九个原因: Apple在启动时会为新应用提供 7天的人工可见性提升,因此在启动应用时请注意这一点。 相反,这也有助于理解您在第一周后会看到的下降。 应用的关键字排名 更改是造成印象波动的常见原因,因为关键字的排名很容易发生巨大变化,有时似乎是无缘无故的(但由于竞争应用和用户趋势的更改),尤其是在应用的元数据更改后。 如果您的应用程序在类别或国家/地区 排名榜中 排名 ,则排名更改可能会导致应用程序的展示次数大幅波动。 应用商店功能可能会导致您的展示次数猛增(对转化率产生相反的影响)。 竞争的变化可能会通过更多应用在特定关键字上或在热门排行榜中获得的收入高于或低于您的排名而影响您的展示次数。 任何一种营销方式都可以通过以下方式提高您的印象: 越来越多的人点击您的产品页面(请记住,产品页面的浏览量都算作展示),以及知名度的提高 改进了类别和关键字排名。 应用程序营销和ASO工具Tune估计,每次下载都会有1.5个新下载的乘数。 7. 趋势/季节性可能会引起印象高峰(例如假期,自发性,流行文化的转变等)。 8. 应用页面和/或元数据的 更改可以直接通过关键字等级影响您的印象,也可以通过安装转换率间接影响下载(关键字和类别排名的排名信号)间接影响您的印象。 9. 进入新应用程序后 ,您的应用程序可能会开始为其名称排名,这也会导致您的印象增加。 伙计们,到此为止! 请确保将我们的博客添加为书签,注册到我们的电子邮件新闻通讯以获取新的帖子更新,如果您有兴趣与我们合作,请与我们联系。 Incipia是一家移动应用程序开发和营销机构,专门为公司构建和营销应用程序,并擅长于高质量,稳定的应用程序开发以及基于关键字的营销策略,例如App Store Optimization和Apple Search Ads。 对于博客/视频或口语请求,业务或新闻查询,请 与我们联系 或将查询发送至 hello@incipia.co 。

进入秋千

这是漫长而忙碌的一周。 兼顾期中,俱乐部和工作并不是一件轻松有趣的事,但必须做到。 这个学期还没有真正开始,直到您在团队的GroupMe中拉头发或疯狂发短信了吧? 我们可能对这些事情感到内gui,但是该应用程序很好地结合在一起。 本周,我们创建了一个Twitter帐户,开始编码并讨论徽标设计。 我们对第一个视频有一些聪明的主意,因此请继续关注,以了解哪些技巧是我们的主力军。 虽然我们花了一些时间来调整目标,但Quatro团队终于开始步入正轨。 上周的笔记帮助我们将线框与我们想到的所有功能结合在一起。 谁知道将线框组装在一起需要花费多长时间? 我们确实必须让自己成为潜在用户的选择。 从确保没有不必要的选项卡或页面可以集成到其他地方,到设计美观的应用程序图标,我们需要考虑很多事情。 我们希望该应用程序图标看起来美观,但也要提醒用户为什么拥有它。 例如,大多数人喜欢草莓,而草莓是一种水果,因此人们会自动将其与食物关联。 我们的应用程序百思买(Best Buy)将具有颜色系统,以识别即将到期的商品,因此我们要确保应用程序本身的颜色与商品的颜色不冲突。 我们认为,更多柔和的颜色效果最好,因为它在眼睛上很容易,不会与其他颜色发生冲突。 到目前为止,我们可能最开心的事情就是集思广益,介绍了Best By。 我们不想让所有人都喜欢它,因此在视频准备播放之前,我们不会分享太多想法。 如果您还无法猜测,那么它们很可能是人们在吃东西的视频。 谁不喜欢吃东西? 我们希望对视频采取幽默的态度,因为我们希望人们听到关于Best By的微笑。 幸运的是,我们可以使用各种设备使我们的视频真正独一无二。 就编码而言,我们的计算机向导正忙于创建具有用户身份验证的登录页面,并正在处理所有食品和购物清单的表格。 他们正在编辑食物过期数据,因为人们从杂货店购买了很多食物,所以有很多这样的数据。 首先,我们将添加一小部分食物以测试该应用程序。 这将是一段漫长的历程,但我们会继续努力,稳步取得进展。

用简单的英语-什么是SDK? –拉克兰·柯克伍德–中

用简单的英语-什么是SDK? 2017年1月30日-没有评论! 用简单的英语-什么是SDK? SDK代表软件开发套件,它是一个编程包,允许开发人员使用针对特定平台提供的工具来创建应用。 SDK通常会包含以下一些或全部主要功能: 集成开发环境(IDE): IDE是代码编辑器,可为开发人员提供帮助。 软件库/框架:这些提供了功能和特性,因此开发人员可以更轻松地利用平台的功能。 支持工具:这些工具用于评估性能和查找错误。 其他工具用于将成品上传到相关的应用商店。 文档:有关如何使用上述所有内容的说明和指南。 举例来说,假设您想开始构建iPhone应用程序,则可以使用iOS SDK,用Apple的话来说,“…提供开发本机iOS应用程序所需的资源。SDK包括UI,Location,Media框架,使开发人员更容易利用设备上的相应功能。 它还包括帮助构建和测试应用程序的工具,以及提供框架和工具的文档。 “普通英语”是一个系列,用200个单词或更少的单词以非技术性的方式描述技术性的“行话”。 这些描述旨在提供“恰到好处”的详细信息,以使非技术利益相关者能够理解并促进高层技术讨论。

iPhone应用程序的6种设计趋势

随着iPhone设备使用者的兴起,我们看到许多企业家进入了应用市场。 但是,许多人没有注意iPhone应用程序开发过程的设计阶段,从而导致了设计不良的应用程序的开发。 考虑到用户界面设计的重要性,设计不良的应用程序自然会导致业务失败。 因此,作为企业家,无论您要创建哪种应用程序,都必须确保其用户界面设计看起来不错。 确保出色的UI设计的一种方法是灌输在很大程度上证明对其他移动应用程序成功的设计属性。 因此,让我们注意最热门的设计趋势,您一定应该指示iPhone应用程序开发人员将其包括在您的应用程序中。 以下是一些值得注意的设计趋势: 好玩 娱乐性正逐渐成为许多应用程序中非常受欢迎的特征。 趣味性不仅使用户交互更加人性化,而且更加有趣。 通过使用动画,声音和有趣的元素,可以在您的应用程序中包括这种质量的一些方法。 纹理作为应用程序背景 纹理越来越成为许多应用程序的流行背景选择。 木质纹理最受欢迎。 但是必须注意,对于应用程序的文本和图标,只能选择与所选纹理形成鲜明对比的颜色。 文字介面 仅显示文本信息的应用程序是另一个有趣的趋势,这种趋势最近已经出现。 但是,重要的是通过使文本变大并使界面高度简约来使其易于阅读。 对于纯基于信息的应用程序(例如天气应用程序)使用此类界面是理想的选择。 大胆和原色的使用 深蓝色和灰色应用程序的时代已经一去不复返了。 使用粗体和原色(例如红色和黄色)可有效激发用户的积极参与。 阴影的使用 阴影可以有效地用于在菜单和按钮中创建深度外观,呈现引人注目的整体外观。 Thin Sans Serif字体 稀薄的san​​s serif字体最近成为移动应用程序世界中的一种主要趋势字体。 字体呈现出优雅,整洁的外观,是当今应用程序的非常理想的特性。 移动应用程序的设计界面可以使您的应用程序成功或失败。 确保移动应用程序的用户界面中包含一些最时尚的设计属性,可以在很大程度上确保其成功。 幸运的是,著名的iPhone应用程序开发公司可以轻松地将上述设计趋势整合到您的iPhone应用程序中。

如果您绝对是学习iOS开发的初学者,请使用Ditch故事板。

如果您是熟练的iOS开发人员,Internet上将充满信息,这些内容涵盖了程序化视图相对于情节提要的优势。 如果您正在阅读此书,则可能是您想学习或正在学习iOS开发。 在这篇文章中,我将简要提及为什么即使是绝对的初学者也应该避免使用故事板。 对于初学者,重要的是要了解在iOS应用开发中创建视图时有两种不同类型的方法-一种是使用Storyboard创建视图,另一种是以编程方式创建视图。 首先,由于您可以轻松创建视图,因此故事板似乎是一个非常有吸引力的选择。 由于其拖放功能,它几乎使有抱负的iOS开发人员感到无敌,直到他们遇到一个更复杂的项目并遇到麻烦为止。 突然之间,您将需要为模型和控制器编写复杂的代码,而从无与伦比的下降将感觉像是跳伞失败的跳伞。 这就是为什么我建议您始终开始使用第二种方法(程序化视图)来学习iOS开发,同时避免使用称为Storyboards的学习曲线快捷方式。 当开发人员使用情节提要来创建应用程序的视图时,开发人员通常会花费超过50%的开发时间来创建情节提要。 这是您本可以用来在Swift中实现流利度的大量开发时间。 另一方面,学习以编程方式创建视图将迫使您仅专注于实际学习Swift,了解逻辑并习惯语法。 这绝对是学习Swift(和/或Objective C)语言并提高您的编码技能的最佳方法。 对我来说,这是为什么您应该通过编写视图代码来开始学习iOS开发和Swift的最大原因。 与情节提要相比,编程方法还有许多其他优点。 我认为,两个最重要的优点是: 程序视图导致快速的开发周期。 一旦开发人员习惯于以编程方式创建视图,则与使用情节提要板相比,可以更快地创建视图。 一切都与应用程序开发的速度有关。 如果使用程序化视图创建应用程序,则与大型开发团队进行协作会容易得多。 使用情节提要进行共享和协作非常困难。 已经有足够的讨论了。在下一篇文章中,我将向您展示如何使用“自动”布局以编程方式创建视图,并向您展示最简单的方法。

为什么Qt for C ++仍然是事实:F噪音

如今,当您谈论桌面开发时,人们看着您就像是某种Luddite。 尽管对移动技术进行了大肆宣传,但诚实的事实是,最高效,最复杂的工作仍在台式机上(或通过在台式机上运行的浏览器)进行。 我喜欢Java,Swift及其它们,但是在构建桌面应用程序时,串联Qt的C ++仍然是最好的。 以下是我在2017年仍然是Qt迷的一些原因: 简单 具有C ++的Qt 易于使用。 唯一可比较的其他开发环境是XCode。 在启动过程中有了无数的出色范例,很快就可以弄湿自己的脚。 我知道,成为编码员的吸引力在于解决“凡人”几乎无法理解的那种复杂性,但是我还是简化UI构建之类的基本任务的忠实拥护者,以使其成为一门艺术而不是代替它可以解决一个复杂的数学问题。 Qt来自Java Swing和PyGTK背景,对我来说,Qt是天堂。 快速。 非常快。 众所周知,C ++是一种非常快速的语言,我相信Qt已经利用了这种速度。 比较我过去开发的软件的开发和交互,Qt总是比较灵活(我没有做任何基准测试,所以我可能是错的)。 即使在今天,当我大部分时间都在XCode上度过时,我仍然不禁为Qt的速度和轻便程度惊叹。 当然,这可能是基于我作为编码员的内部偏见和限制。 以下是我很久以前进行的基于GUI的原始归类的摘要。 在给定大数据集的情况下,它的工作方式像一种魅力,并且比Java更加清晰。 您可以自己尝试。 // MergeSort.cpp //类MergeSort成员函数定义。 #include 使用std :: vector; #include“ merge_sort_budget.h” //类MergeSoft定义 / ** MergeSort类的构造函数。 @param btList bt列出预算选项卡列表。 * / MergeSortBudget :: MergeSortBudget(BudgetTabList btList) { 大小= btList.size(); //验证vectorSize //使用带有不同日期的随机BudgetTabItems填充向量 对于(int i = 0; […]

待办事项列表应用程序问题

您是否曾经尝试下载待办事项列表应用程序,但最终还是使用Notes而不是使用下载的Notes? 我试图组织自己的生活并下载了大量的应用程序,但从未找到我想要的应用程序。 因此,我尝试寻找导致最终不使用这些应用程序的原因,并提出以下几点: 1.太多复杂的技术要素 2.不记得如何使用所提供的所有不同功能 3.在1和2的顶部,您需要再次输入所有常规任务 从以上所有这些,我最终删除了该应用程序并使用了Notes。 但这还存在一些问题,例如:使用完列表后将其删除,为每个任务键入项目符号,格式不整齐等。 这就是为什么我制作了“ UrList”。 UrList是一款无需输入位置或时间的应用程序,可让您一遍又一遍地重复使用列表。 我确信此应用程序不会适合所有人,但我个人想要这样的应用程序,所以我决定自己制作。 请观看随附的YouTube视频。 我没有足够的专业度来制作高质量的视频,但我已经竭尽全力。 (哦,太难了) UrList:在App Store上的内容 阅读评论,比较客户评分,查看屏幕截图,并进一步了解UrList。 下载UrList并在… itunes.apple.com 上享受它。 由itsupportworks制作 我写这样的想法是,那里的程序员可以阅读并找到相关的内容。 感谢您抽出宝贵的时间阅读本文。

回到学校-通过ASO技巧回到基础知识,这将使您获得更多的荣誉

我们已经在App Store中搜索了诸如健身日记之类的特定关键字,并收到以下选项: 查看这些健身日记图标时会想到什么? 您猜对了,这些开发人员似乎对此表示怀疑。 在这种情况下,蓝色的《饮食观察家日记》倾向于更加突出。 当您创建图标时,研究竞争对手并查看其中的内容,假设您是应用程序的未来用户,那么您想在其他应用程序上点击自己的应用程序是什么? 通过以下方式使图标发光: 与众不同 使其弹出 不过度使用颜色 保持清洁和简单 投资您的设计并创造出真正独特的东西。 查看iOS图标库,了解图标设计灵感。 本地化就像ABC一样容易 这可能会让人感到震惊,但并非所有的应用程序用户都是英语使用者。 实际上,根据App Annie的说法,“在下载量和收入排名前10位的国家中,有50%是来自欧洲和东亚的非英语国家。”因此,基本上,您有大量的潜力可能未得到最大利用。 App Store可以实现列表的本地化,开始细分受众群体并投入一些时间来创建专门针对特定语言和位置的内容和图形。 不要忘记,每个翻译都在搜索引擎中建立了索引,并且有可能在目标国家/地区内和境外产生结果。 Moburst副总裁Or Tamir表示: “本地化不仅与翻译有关,还在于了解下一个市场将是什么以及如何最好地渗透其中 。” 他建议构建一个本机应用程序页面,该页面重点关注以下因素: 与位置相关的特定关键字 用户行为 地域差异 文化差异 本地化是一个简单但重要的概念,如果您在法国的广告使用法语与受众群体交流。 以自己的语言与客户交流可以增加应用发现的机会以及转化率。 透过独特的萤幕快照,一窥您的应用程式 应用程序商店的屏幕截图对于将应用程序页面浏览量转换为下载量具有巨大影响。 屏幕截图非常重要,因为它们为您的潜在客户提供了一个机会,使他们可以在下载应用之前直观了解您的应用。 在App Store中,您最多可以上传5个屏幕截图。 将必要的资源投资到您的屏幕截图中,并确保它们包含能吸引您的客户的详细信息。 您可以在图形中使用文本来展示新功能或强调要展示的重要特征。 尝试提供客户在下载应用程序时将获得的体验。 例如,《战争游戏-射击时代》提供了一些截图,这些截图描述了应用程序的使用体验,还描述了应用程序本身的特征。 带有或不带有文本完全取决于您,但是请确保您的屏幕截图显示最令人激动的功能或最新的更新。 建议: 跳出框框思考-标准设计无法解决问题 使用人脸或手等人为元素 展示您的USP 创建描述某些动作的屏幕截图 让客户偷窥您令人兴奋的应用程序 A / B测试对于检查性能最佳的屏幕截图至关重要 高于平均水平 您不必天才就能理解ASO的重要性,但是如果您想将自己的应用与其他应用分开并排在前十位,则必须要高于平均水平。 有时最好的策略是回到基础上,回顾并继续尝试新事物。 因此,闻一口隐喻的铅笔,准备秋天,这是您重新开始的机会。 这篇文章首先出现在Appnext博客上 […]