Tag: 移动

iOS订阅很难

使用正常的IAP流程进行购买 除了不同的用户界面副本外,购买订阅产品与购买非订阅应用内产品相同。 不同之处在于,订阅产品将续订,稍后会在StoreKit队列上生成未经请求的交易。 订阅应用内交易在收据数据中也有一个expiration_date字段。 您将使用此字段来确定用户有权获得哪些产品或服务。 设备上收据验证 为了保护自己免受IAP盗版并提取用户的交易历史记录,您需要验证您的App Store收据。 如果没有服务器,则可以在设备上执行此操作。 我不会在这里介绍整个过程,但是我过去已经写过。 Apple不提供用于验证收据文件的内置方法。 他们认为,这些内置方法将仅成为IAP破解程序的目标。 相反,他们建议每个人都自己滚动,以确保标准的IAP破解程序不会破坏您的应用程序。 但是,用于验证设备上的收据文件的代码并不简单。 解析到期日期 解压缩收据文件后,您只对最新的expiration_date感兴趣。 通过遍历收据中的所有应用内购买记录并找到最新的expiration_date字段,然后将其缓存(通常在NSUserDefaults或类似方式中),可以提取此内容。 处理续订交易 处理续订是常见的错误区域。 在标准IAP流程中,您只需要担心用户完成购买时StoreKit付款队列的状态。 有了订阅,您的应用程序需要随时准备处理这些交易。 现在,您需要从应用程序中的任何位置处理购买; 需要在每个屏幕上考虑用户订阅状态更改的影响。 处理该问题的适当方法是:一旦它出现在StoreKit队列中,请验证收据并更新用户的权利。 但是,这可能很困难。 例如,如果您的应用程序有一个帐户系统,那么您如何处理没有用户登录时发生的交易? 或者考虑发生在某个流的中间的事务,该事务取决于用户的订阅状态。 设计应用程序时,您必须计划所有这些可能性。 设备端订阅中的差距 设备端收据处理使一些重要的事情变得困难或不可能。 首先,您的订阅状态被困在设备上。 如果您想将服务扩展到当前应用程序之外,则需要针对用户的当前订阅状态设计一些精心设计的转义计划。 将订阅处理限制在设备上也会使您难以理解您的业务绩效。 iTunes Connect已经变得更好,但是如果您想逐个用户了解任何内容,则仍然缺少iTunes Connect。 苹果公司的所有仪表板都完全匿名。 如果只需要鸟瞰,汇总指标就可以了,但是使用Apple的仪表板,即使是简单的数据问题,您也将很快无法回答。 我认为避免仅设备订阅的实现的最大原因只是受StoreKit队列的支配。 如果由于某种原因您的代码或StoreKit出现故障,您可能会错过一笔交易。 这可能会剥夺付费客户或其服务。 如果仅使用设备端订阅,则可能很难调试或补救这种情况。 使用服务器确实很有意义。 服务器订阅 使用服务器意味着:您无需在设备上解析收据,而是将该收据发送到服务器以进行验证和解析。 在设备上,实现与设备端订阅的实现类似,但有一些关键更改: 正常的IAP流量 收据被发送到服务器进行验证,解析,存储并返回数据 服务器响应存储在设备上 续签交易的处理(半可选) 将收据发送到服务器 步骤2表示与设备端订阅最根本的不同。 您可以通过HTTP将收据发送到服务器,而不是在应用程序中实现收据解析和验证。 这样做有两个明显的优点: 您可以使用Apple的/verifyReceipt端点 […]

将应用程序发布到App Store时的常见应用程序拒绝。

在开发应用程序之前,重要的是要熟悉我们用来审查所有应用程序的技术,内容和设计标准。 我们重点介绍了一些最常见的问题,这些问题会导致应用被拒绝,以帮助您在提交应用进行审核之前更好地准备应用。 崩溃和错误 您应仅在应用程序完成并准备发布时才将其提交以供审核。 在提交之前,请确保在设备上彻底测试您的应用并修复所有错误。 链接断开 您应用中的所有链接都必须正常运行。 所有应用都需要具有最新联系信息的用户支持链接,并且如果您要提供自动续订或免费订阅,或者您的应用属于“儿童”类别,则还必须提供指向隐私权政策的链接。 占位符内容 完成应用中的所有图像和文本后,再将其发送以供审核。 尚在进行中且包含占位符内容的应用尚未准备好分发,因此无法被批准。 信息不完整 在iTunes Connect的“应用程序查看信息”部分中输入查看您的应用程序所需的所有详细信息。 如果某些功能需要登录,请提供有效的演示帐户用户名和密码。 如果要设置特殊配置,请提供详细信息。 如果功能需要很难复制的环境或需要特定的硬件,请准备提供演示视频或硬件。 另外,请确保您的联系信息是完整且最新的。 说明不正确 您的应用说明和屏幕截图应清晰,准确地传达您的应用功能。 这可以帮助用户了解您的应用,并为App Store带来良好的体验。 误导用户 您的应用必须具有广告宣传的效果,并且不应给用户以印象,该应用并非如此。 如果您的应用似乎承诺某些功能,则需要交付。 不合格的用户界面 苹果公司在干净,精致和用户友好的界面上高度重视。 请仔细规划设计并遵循我们的设计指南以及UI设计的“注意事项”,以确保您的UI满足这些要求。 广告 将应用提交审核时,系统会询问您是否使用广告标识符(IDFA)投放广告。 如果您指示您的应用使用IDFA,但没有广告功能或无法正确显示广告,则您的应用可能会被拒绝。 确保在iOS设备上测试您的应用,以验证广告能否正常运行。 同样,如果您指示您的应用程序未使用IDFA,但使用了IDFA,则您的应用程序将进入“无效二进制”状态。 Web剪辑,内容聚合器或链接集合 您的应用程序应引人入胜且有用,并充分利用iOS独有的功能。 在iOS应用中提供服务的网站,未针对iOS格式化的Web内容以及有限的Web交互都不能构成高质量的应用。 重复提交类似应用 提交本质上相同的多个应用程序会阻塞“应用程序审查”流程,并有被拒绝的风险。 通过将您的应用合为一体,改善您的评论体验以及未来用户的体验。 持久价值不足 如果您的应用程序没有提供太多功能或内容,或者仅适用于小型利基市场,则可能无法获得批准。 在创建您的应用程序之前,请在App Store上查看类别中的应用程序,并考虑如何提供更好的用户体验。 参考和更多详细信息在这里:苹果

为什么我喜欢编码

println(“ H​​ello World!”) 我本周刚刚完成了另一个iOS应用的编码。 它应该在几周内进入App Store(App Store审核过程需要这么长时间)。 这是一个ABCs抽认卡应用程序,由我的一个朋友设计,他画了一些愚蠢的动物。 我用Objective-C编写了代码。 自2008年提供iPhone OS SDK(软件开发工具包)以来,我一直在编写Objective-C。我在业余时间从iTunes U的Stanford iPhone Development课中学到了东西。 在上课的同时,我在8个月内制作了自己的第一个iOS应用。 我已经为iOS应用程序编写代码大约五年了,但我仍然认为自己是一个初学者-Apple每年都会更新SDK。 今年是最大的变化-Swift。 我开始在Swift发行之日就开始编写代码,到目前为止,我还没有错过Objective-C的编码。 作为设计师,这是个好消息。 Swift看起来更漂亮,更易于理解-更少的代码编写。 在以后的文章中,我将详细介绍我在Swift方面的经验。 我的代码之旅 在学校里,我正在独自学习代码,以便能够在线展示我的作品-当时我是插图专业。 网络是新的,因此没有像Stack Overflow这样的博客或在线社区。 网络开发也太新了,不足以成为学校的课程。 我是最早学习网络开发的人之一,因此在学校提供课程时,我帮助教了我的同学。 我非常喜欢Web开发,以至于坚持不懈地改变了我的专业。 我不是程序员-我毕业于美术学士学位,重点是电子媒体(交互式设计)。 但是,我职业生涯的大部分时间都集中在前端开发上。 我为我工作的公司写了很多HTML / CSS / JavaScript。 我每天仅靠学习就能掌握自己的编码和编程技术。 我喜欢自己解决问题。 我从大学二年级(1994年)开始使用一种名为HyperCard的Apple编程工具编写代码。 HyperCard开发了许多出色的游戏,例如Myst。 我们的课堂作业包括Edutainment应用程序,作品集,Music Artist Bio等。我喜欢设计体验,设计布局,当然也喜欢编写代码。 没有代码,我的设计将无法正常工作。 当一切都组装好后,最大的感觉就来了。 看到同学们使用我的应用程序真是令人高兴。 我是第一个将视频和音频整合到课堂项目中的人-很高兴看到他们的反应。 我喜欢编写代码,因此使用我制作的产品使人们感觉良好。 通过Twitter @ArtofNor与我联系。

iOS ile iBeacon deneyimlerim

Merhaba, Buyazıdasizlere信标teknolojisiyleyazılımgeliştirebilmehakkındayaşadığımtecrübeleriaktarmayaçalışacağım。 玛鲁姆(Malum),德国人(Kainakların)的遗产,奥尔尼达(Deurim)vb。 支付宝公司的广告业务。 İlkyazımolduğuiçin,她的孩子(imla,yazımyanlışıvs.)hatadandolayıözürdilerim。 Beacon veya iBeaconaynıanlama gelen kavramlar。 苹果灯塔和苹果灯塔在苹果灯塔和苹果树上,灯塔在灯塔上发光。 Peki tam olarak nedir bu信标? Basitçeşöyletanımlamayaçalışayım; Belirli bir alandakonumlandırılmış信标信标telefonlarınızil​​e dinleyerek bu信标信标telefonlarınızüzerindetepkiler alabiliyorsunuz。 Cihazlar builetişimi蓝牙低功耗(BLE)Teknolojisini kullanaraksağlıyorlar。 Örnekvermek gerekirse,从她的birinde Beacon信箱cihazlarıkonumlandırılmışolsun。 Sizmağazaiçindefarklıreyonlarda gezerkenbulunduğunuzreyondaki(konumdaki)信标cihazıileakıllıtelefonunuzetkileşimegeçipsize or reyona(konuma)özelbir bildirim,kampany,bilgilendirmeor。 Şimdiyazılımsalolarak信标teknolojisini iOS ilenasılgeliştirebilirizonuörneklemeyeçalışacağım。 #import kütüphanesiniimport etmemiz gerekiyor。 CLLocationManagerDelegate和 CBCentralManagerDelegate委托’lerini类’ımızabağlıyoruz。 Beacon集成了蓝牙,蓝牙和蓝牙。 Bunu kontrol edebilmekiçinşöylebir metodyazıyoruz。 4. centralManagerDidUpdateState委托metoduiçindeRegion初始化metodunu调用ediyoruz。 5. initRegion辅助方法 6.Kullanıcınınha​​ngi地区state’içindeolduğunubulmak地区, requestStateForRegion调用edilir。 7.Kullanıcının地区state’i […]

使用新的iOS 10 SceneKit惊人的基于物理的渲染

毫无疑问,在移动设备上进行渲染时,Apple已开始使用它。 实时渲染和高级硬件的最新进展确实为获得高端结果提供了机会,而无需在设备上花费2000美元的价格。 尽管Apple的团队在WWDC 16’上介绍了许多进步,但是我真正注意到了一项改进,那就是SceneKit中基于物理渲染(PBR)的支持。 在过去的几年中,这种渲染技术获得了广泛的关注,并已成为工程师和3D艺术家的事实上的行业标准。 在这篇简短的文章中,我将尝试演示如何简单地使用新推出的iOS 10基于物理的渲染器,并在不具有任何高级图形引擎复杂性的情况下获得出色的效果。 在继续之前,我想坦诚地声明。 本文过度简化了一些概念,以使您对PBR中的关键元素有所了解。 基于物理的渲染 重要的是要了解不同的环境贴图会创建非常不同的渲染,因此请仔细选择您的环境贴图。 选择正确的环境图本身就是一门艺术,通常是由经验丰富的3D艺术家完成的。 物理渲染的材质定义 材料对于出色的PBR着色至关重要。 它们为我们的着色器提供了使这些惊人的可视化效果的基本信息。 过去,定义材料非常困难。 有上百万个参数需要调整,并且需要大量的魔术师和经验来使它正确。 此外,材料定义与照明非常相关,这在材料创建方面造成了问题。 使用PBR阴影,故事变得简单得多。 实际上,仅使用两个浮点数就可以很容易地获得视觉上令人愉悦的陶瓷,塑料或金属(请参见下文)。 基本上,您可能会达到相同的外观和感觉,但是艺术家将不得不工作几个小时才能获得他们想要的精美外观。 PBR材料的三个主要参数称为: 反照率,粗糙度和金属度 。 反照率分量是对象的基础颜色,并且与其他着色模型的漫反射分量直接相关。 反照率值通常是RGB颜色,通常由3个浮点数定义。 粗糙度和金属度 – 这些值描述了表面的粗糙度或金属感。 下图很好地说明了仅使用0.0-1.0范围内的浮点值来更改任一值对渲染结果的影响。 为了获得专业的效果,您将需要使用纹理,该纹理将为模型上的每个点定义不同的PBR组件。 幸运的是,大多数3D艺术家已经熟悉此着色模型,并发布了免费的材质定义,可以帮助您快速启动任何项目。 此外,iOS 10 PBR材质还支持其他贴图,例如法线贴图,这些贴图是可选的,但必须使用以获得良好的外观。 为了演示的目的,我使用了freepbr.com的一些资料。 如果要使用其他材料测试代码(如下),请确保将其签出。 编码时间 我们将一起创建旋转球的示例,如下所示。 无需担心-所有代码都在GitHub上发布。 首先,您需要了解一些先决条件: 获得可用的最新macOS,iOS和Xcode beta版本-您不想因为Apple已经解决的错误而陷入困境。 不要使用模拟器-始终使用支持金属的设备。 这是Beta版软件-可能也会出现错误 准备看它有多简单? 我们走吧 我假设您有编写Swift代码的经验,并且您已经创建了一个SceneKit视图。 如果还没有,请从Game模板开始,然后选择SceneKit作为您的游戏技术。 您将获得的模板代码足以完成本练习(我在这里实际使用过……) 第一步:创建一个场景: 让场景= SCNScene(名称:“ sphere.obj”)! 如您所见,直接从OBJ文件初始化场景非常简单。 […]

您准备好使用iOS 12了吗?

对于开发人员来说,这意味着您将能够通过Siri Shortcuts API将应用程序的各种操作构建并集成到Siri中。 通过定义自定义意图,开发人员将能够在Siri能够识别的应用程序中构建特定的动作。 这将使用户更容易与应用程序一起访问Siri。 另外,通过使用Intent App扩展程序,快捷方式可以在后台运行。 图片 苹果发布了可以分割照片中各层的人像分割API。 开发人员将能够构建可轻松分离前景和背景图像的应用程序,从而创建独特的照片效果。 第三方开发人员也将能够在自己的应用程序中使用分离数据。 汽车游戏 除了支持第三方导航应用程序(Waze,Google Maps)外,苹果公司iOS Car Experience团队的Albert Wan还提到了CarPlay改进的四个关键方面:整体性能,更快的启动顺序,更流畅的动画和更好的应用程序通信。 为CarPlay进行构建时,开发人员还应考虑常见情况的变通方法,例如与CarPlay连接的密码锁定的iPhone和变化的网络/服务信号。 CarPlay现在拥有一个框架,该框架允许开发人员使用一系列受用户界面控制但可以自定义程度的模板来构建应用程序。 该版本将转换为用户界面,并且所有CarPlay系统都将支持该应用程序。 最终,新框架将使将出色的应用程序引入CarPlay变得更加容易。 爱科特2.0 ARKit使开发人员能够通过利用环境环境并将其与数字对象融合来为iPhone和iPad创建增强现实应用程序。 现在,借助ARKit 2.0,开发人员可以使用此类应用程序做更多的事情。 ARKit 2.0增加并改进了功能-人脸跟踪,对象渲染,3D对象检测,并且开发人员现在可以创建持久的体验。 苹果还使用Pixar创建了一种新文件格式:USDZ。 新的3D文件格式经过优化,可以共享和保留3D图形保真度和动画。 此外,原生USDZ支持将集成到Adobe的Creative Cloud中,从而可以相对轻松地创建AR体验和应用程序。 共享的AR体验也许是ARKit 2.0最酷的新功能之一。 借助ARWorldMap,开发人员可以通过将存档的对象发送到附近的iOS设备来创建共享的参考系。 假设他们正在跟踪同一张世界地图,则多个用户可以通过使用USDZ格式进行构建来共享和体验相同的3D内容。 有关创建多用户AR体验的更多信息,请查阅Apple的开发人员文档。 session.getCurrentWorldMap {worldMap,错误 守卫let worldMap = worldMap else { showAlert(错误) 返回 } } let configuration = ARWorldTrackingConfiguration()configuration.initialWorldMap = worldMap session.run(配置) […]

介绍InstaSports重新设计和推送通知

我们一直在测试改善InstaSports体验的新方法,以帮助足球迷以有趣,轻松,自然和引人入胜的方式与运动队的内容捕捉并分享特殊时刻。 今天,我们将介绍完整的重新设计和推式通知。 您可以立即下载新版本 :http://apple.co/2hCtLrM 推送通知是现代应用程序通信的一部分,可帮助粉丝在正确的时间获取正确的信息,从现在开始,InstaSports可使粉丝通过推送通知获取有关您的团队比赛的新皮肤包,新功能以及其他相关信息。 在接下来的几个月中,我们将通过实时足球比分,继续改善有关游戏,位置和照片相关性的推送通知体验。 继续分享足球爱 向我们发送您的反馈,非常重要: hello@instasportsapp.com 新设计

蓝光音乐– BEL –不再哭泣–蓝光音乐–中

蓝光音乐— BEL —不再哭泣 带有嘻哈风味的交叉根单曲 在所有主要的在线零售商处都有 https://smarturl.it/Bel-NoMoreCrying 蓝焰音乐官方网站 http://blu-flamemusic.weebly.com

笨拙的UI是一个好的UI:在iOS中使用Swift的MVP

由Mohamed Iyad Tamer Agha撰写 在开发iOS应用程序时,Model-View-Controller是一种常见的设计模式。 通常,视图层由以编程方式定义或在xib文件中定义的UIKit元素组成,模型层包含应用程序的业务逻辑,而由UIViewController类表示的控制器层则是模型和视图之间的粘合剂。 这种模式的一个很好的部分是将业务逻辑和业务规则封装在模型层中。但是,UIViewController仍然包含与UI相关的逻辑,这意味着: 调用业务逻辑并将结果绑定到视图 管理视图元素 将来自模型层的数据转换为UI友好格式 导航逻辑 管理UI状态 和更多 … 承担所有这些责任,ViewController经常变得庞大,并且难以维护和测试。 因此,现在该考虑改进MVC来解决这些问题了。 我们将此改进称为模型视图演示者MVP。 MVP模式是由Mike Potel于1996年首次提出的,多年来讨论了多次。 Martin Fowler在他的GUI体系结构文章中讨论了这种模式,并将其与其他用于管理UI代码的模式进行了比较。 MVP有很多变体,但它们之间的差异很小。 在这篇文章中,我选择了似乎在当今的应用程序开发中最常用的通用示例。 此变体的特征是: MVP的视图部分同时包含UIViews和UIViewController 该视图将用户交互委托给演示者 演示者包含处理用户交互的逻辑 演示者与模型层进行通信,将数据转换为UI友好格式,并更新视图 演示者不依赖于UIKit 视图是被动的(转储) 以下示例将向您展示如何实际使用MVP。 我们的示例是一个非常简单的应用程序,它显示了一个简单的用户列表。 您可以从此处获取完整的源代码:https://github.com/iyadagha/iOS-mvp-sample。 让我们从一个简单的用户数据模型开始: [js] struct用户{ 让firstName:字符串 让lastName:字符串 让电子邮件:字符串 年龄:整数 } [/ js] 然后,我们实现一个简单的UserService,它异步返回用户列表: [js] 类UserService { //服务延迟交付模拟数据 func getUsers(callBack:([[User])-> Void){ let users = [User(firstName:“ […]

我们在2016年发布的10篇最受欢迎的博客文章

从充分利用您的应用程序投资到备忘单,以选择最佳的移动消息渠道,我们过去一年的博客文章涵盖了很多领域。 根据我们的分析和读者反馈,我们将您从2016年以来最有用和最受欢迎的帖子汇总到一起。 希望您在这里找到今天可以使用的东西! 1)如何制作成功的应用程序:最大化您的投资的10个基本原则 是否需要知道如何构建一个可以在第一天为您和您的用户创造价值的应用程序? 这十个基本原理将帮助您从应用程序和开发投资中获得更多价值,并为成功做好准备。 提示一:为什么有人会下载您的应用程序? 要成功,您必须确保已确定自己的移动价值主张。>> 2)确保您的未来,我们的未来,每个人的未来都是开放的 我们今年推出了新的移动增长平台,引起了不小的轰动。 在此博客文章中,我们的工程副总裁Mike Herrick深入探讨了开放平台和开放渠道对Urban Airship客户的意义-以及为什么他对此感到非常兴奋。 迈克:“通过开放我们的核心平台组件,我们可以帮助企业解决当前存在或将来出现的任何渠道。” >> 3)移动消息速查表:每次都选择正确的移动消息通信渠道 曾经希望您有一个方便的清单来匹配要发送给具有正确的移动消息渠道的移动用户的消息吗? 现在您已经掌握了。 获取移动消息通道的清单。 >> 4)移动参与度循环:从入职到重新参与 对于移动营销人员而言,经典的“营销渠道”仍然有用吗? 在这篇文章中,Urban Airship产品营销高级总监Bill Schneider展示了移动营销如何有机会以一种新的,更有效的方式与客户互动。 Bill,“经典的营销渠道已死。 这是传统的广播营销时代的产物。 进入移动互动循环。” >> 5)关于手机钱包营销的十大常见问题解答 使用移动钱包通行证获取优惠券,会员卡,机票,登机证的客户数量继续呈指数增长。 在这篇文章中,我们回答了移动营销人员关于如何利用移动钱包机会以及制作和发送移动钱包通行证的基本要素的紧迫问题。 回答您的手机钱包问题。 >> 6)从移动应用用户获取转移到保留 应用程序参与度和应用程序保留率是在移动设备上成功的关键。 在这篇文章中,您将看到移动分析如何在确保您保持进度方面发挥关键作用。 获取三个有助于您更好地了解用户的指标,并利用自动化来更好地参与即时个性化消息传递。 >> 7)如何赚取推送通知参与:7个基本资源 选择加入推送通知的用户与应用的互动度提高了4倍-保留的退出率是选择退出的用户的2倍。 因此,选择加入非常重要。 从基准测试报告到案例研究,再到如何构建选择加入的“软询问”方法,这篇文章收集了我们关于获得更多选择加入的最佳想法。 >> 8)建立您的第一个移动营销策略 城市飞艇战略咨询主管Alyssa Meritt提出了建立有效的移动营销策略的三个基本原理-无论您从哪里开始。 Alyssa:“虽然不是每个企业都需要一个移动应用程序,但每个企业确实都需要一个移动营销策略。” >> 9)最佳移动通知共有的5件事 您的移动消息是否遵循最佳做法? 确保您发送的通知能够吸引用户的同时,达到并超过您的KPI的五个基本原则。 名单上的第一名:最好的通知使用户易于采取行动。 休息吧 >> […]