Tag: AWS

无需命令行即可在任何硬件上测试您的应用程序

记住要设置团队并选择“包括UI测试” 创建您的UI测试 如果您不是从头开始创建项目,则需要创建一个包含UI测试的目标。 否则,请跳过本节。 在左侧的项目导航器中选择您的项目,然后单击屏幕底部的“ +”。 在打开的对话框中,选择“ iOS UI测试包”,然后单击“下一步”。 仔细检查测试包的所有设置是否符合您的喜好,然后单击“完成”。 建立测试包 在这里,您将了解到直到最近才知道的Xcode功能。 您可以针对特定目的进行构建,在我们的情况下,我们希望构建用于测试的测试包。 这将生成一个应用程序,稍后再上传到AWS Device Farm。 请注意,AWS Device Farm要求针对iOS设备而不是针对模拟器构建测试包,因为测试将在实际设备上运行。 如果您错过了此步骤,则会收到一个神秘错误,即您上传的文件无效… 首先是命令行,下面我将对其进行解释(请记住用您的工作空间和方案名称替换适当的字符串)。 xcodebuild -workspace“ aws设备场博客post.xcworkspace” \ -scheme“ aws设备场博客\ -destination“ generic / platform = iOS” \ -derivedDataPath“ ./build” \ -配置“调试” 测试构建 CODE_SIGN_IDENTITY =“” \ CODE_SIGNING_REQUIRED =否 所以我在这里做什么: -workspace:使用选项构建的工作空间 -scheme:要构建的方案,从您项目的方案的Xcode列表中获取 -destination:设置为设备而非模拟器构建 -derivedDataPath:指定本地派生的数据路径,因此您不必去挖掘构建产品 -configuration:指定要使用的配置,这是可选的,但是指定它可以确保您知道要构建的内容 测试构建:将构建测试运行器的魔术命令 我发现CODE_SIGN_IDENTITY =“”和CODE_SIGNING_REQUIRED只是解决您项目中可能存在的任何类型的代码签名问题的一种方法 构建完成后,您将拥有AWS设备场所需的测试运行程序,但是由于某种原因,他们需要将其作为.IPA文件。 因此,以下是创建该.IPA文件的步骤: […]

问题5 –须藤忍者–中

卡兰 1.实用距离表达式 在做验证的时候常常需要距离表达式的帮忙,但有时候case都做不完整,这个网站提供了很多范例! 2.nodejs 6.0版本 Nodejs 6.0正式发布了,官方宣布已经可以支持大部分的es6语法,但感觉…应该会有很多npm套件都会有冲突吧!先等一阵子稳定之后再升级吧!话说最近的节点怎么一直不断升级。 3.js文件系统 虽然js文件系统已经不是新玩意,但毕竟有任何跟随跟其他套件的帮助,一直以来也没有深入这一块。偶然之间想起,查了一下google,这篇文章写得还挺清楚的。呼,是该了解更进阶的的js了! 亨利 1. Docker上的Jenkins 2.0 很多团队都不敢贸然在开发流程中引入Docker,一个很大的原因是很多服务都还没有针对Docker做过最佳化。2015年Docker大流行时,网路上也出现了不少质疑Docker将服务虚拟化化之后随之而来的性能指标。但持该论点的文章,大多都是采用短时间,高并发的基准测试(套一句行话来说就是“烧机”式的测试)去测试Docker的性能,而不是真的让MySQL在生产环境上运行然后慢慢调整性能。但说实在地,声称测试的架构,谁又有这么大颗的心脏敢放它在生产环境上运行呢? 扯太远了。此周主要是发现Jenkins 2.0在Docker上执行的效能比1.x来说有非常显著的改善。由于目前Sudo是使用CircleCI做CI,还没有做CD,但在正式引入CD之前我预想到了一个问题。 CircleCI的IP不固定,要怎么样在兼顾AWS Security Group政策的替代下执行CD? 我目前想到的最合理的替代方案是直接在AWS内建立自己的CI / CD环境(至于如何架设还需要再研究,因为最终目的是一台EC2都不要管,全部改用ECS),而Jenkins正是但自行测试一次Jenkins 1.x之后,不是安装插件时让系统的load飙高到连壳都卡住的地步,不然就是正式建置专案时记忆体被塞爆(在已经挂上swap的附属下)。曾经试着开spot instance去执行,但问题没有解决。 连官方都在下载的选项中正式提供Docker的安装方式,Jenkins 2.0这次的表现让我又对它抱持一线希望。 2. React Native串接Cocoapods并通过fastlane部署时的陷阱 在茫茫Google中寻觅觅是否有人写好Flurry或Google Analytics的包装器一阵子之后,我放弃了。因为不是写完之后就摆在那里根本没去更新iOS库,不然就是一抓下来挂上上喷奇怪的错误(Google Analytics的wrapper在虚拟器中测试会喷出奇怪的错误)。绝望之下,我只好卷起袖子自己取代React Native与iOS库了。 官方文件写得很详细,而且我从Exporting Swift(我很惭愧地表示我不会Objective-C)开始做,步骤少得有点过分。颤抖地点击编译并执行,还真的可以跑(数据有确实地传回Google Analytics,真心不骗)。 我的代码有效,但我不知道为什么。 扯远了。这一次真正要分享的是如果React Native有挂Cocoapods,Fastfile要一并更新,否则会发生找不到库的错误。例如以下步骤行: 健身房(方案:“ app”,项目:“ ios / app.xcodeproj”) 一开始开发React Native与设定fastlane时,它不会预设你未来会挂Cocoapods上去,因为不是每个人都会用到Cocoapods,或可能使用了Cocoapods以外的套件管理工具。但如果第一次执行完pod安装,Cocoapods实际上会提醒你之后记得都要使用* .xcworkspace考虑到开发时的专案档: [!]从现在开始使用`app.xcworkspace`。 我记得这件事,之后也都是使用* .xcworkspace开发,但每次通过fastlane部署的时候都会在健身房那一步出错,跟我继续说ld找不到库连接。 明明开发时在虚拟机上面跑都没有问题,为什么部署的时候就会出错? 这两个唯一的差异不就是一个透过Xcode执行,一个透过fastlane执行吗? 于是我打开Fastfile,将那行该死的Gym改成以下形式: 健身房(方案:“ app”,工作区:“ […]

在AWS上部署服务器端Swift

开发完应用程序后,下一步就是将其提供给您的受众群体使用……因此,自然的愿望是将其部署到服务器上。 尽管可以将Swift应用程序部署到任何Ubuntu 16服务器,但在本文中,我将重点介绍如何使用Perfect Assistant部署到AWS实例。 如果要遵循,则需要满足三个先决条件:Perfect Assistant应用程序,Mac上可运行的Docker应用程序以及一个AWS账户。 AWS设置 从AWS收集的一些信息: 存取金钥ID和机密 公钥/私钥对 安全小组 访问密钥和秘密 创建新的访问密钥和机密的步骤: 访问https://console.aws.amazon.com/iam/ 从侧面导航中选择“用户” 如果您没有IAM用户,请创建一个,确保添加“程序访问”复选框,然后单击“直接附加现有策略”,然后选择“ AmazonAPIGatewayInvokeFullAccess和AmazonEC2FullAccess”属性。 这将创建一个具有密钥和机密的新用户帐户。 记下它们! 如果您已经拥有IAM用户帐户,请选择所需用户的名称,然后选择“安全凭据”选项卡。 单击“创建访问密钥”按钮,并记录密钥的ID和秘密。 公钥/私钥对 接下来,我们要创建一个新的公钥/私钥对。 转到“ EC2”部分,在导航中单击“密钥对”,然后单击“创建密钥对”按钮。 确保下载后! 将下载的文件(以“ .pem”结尾)放入“〜/ .ssh /”。 这使使用SSH连接到远程系统的应用程序(例如助手)可以访问它。 安全组 接下来,单击导航中的“安全组”,然后单击“创建安全组”。 给您的新组一个简短的名称和描述,然后选择“入站”选项卡,单击“添加规则”。 对于本演示,我建议您添加端口8181并在源下拉列表中选择“ Anywhere”,并确保您从当前IP地址添加SSH访问。 配置完美助手 单击“确定”,返回至Perfect Assistant,在“欢迎”屏幕上,单击EC2框中的“配置EC2凭据”按钮。 这将打开一个新窗口,您可以在其中添加新的凭据。 单击“创建”,为您的新凭证设置命名,然后输入我们从AWS获得的访问密钥和机密。 “区域”应该是您设置的在地理位置上接近您或大多数受众的地方。 按“保存”将锁定配置。 设置演示应用程序以进行部署 接下来,让我们从GitHub上获取“ Perfect App Template”。 仍在“欢迎”屏幕中,单击“创建新项目”,“自定义存储库URL”。 单击位置旁边的“浏览”,然后为模板找到URL,然后粘贴模板的URL:“ https://github.com/PerfectlySoft/PerfectAppTemplate.git” 保留“将Linux构建与Xcode项目集成”的复选框,因为我们在此阶段的目标是Linux部署。 单击“保存”后,系统将启动它是macOS端项目的初始克隆。 进行Linux构建非常简单,只需单击“ BUILD:Linux”按钮。 […]

Swift 3将文件上传到Amazon S3

我想分享一个简单的教程,介绍如何使用Swift 3将文件上传到iOS中的 Amazon S3 。 我们走吧。 我们需要将Amazon S3框架添加到您的项目中。 在此示例中,我将通过帮助Cocoapods来完成此任务 。 2.创建一个Podfile : 平台:ios,“ 8.0” hibit_all_warnings! use_frameworks! 目标’AmazonS3Upload’做 吊舱“ AWSS3” 结束 3.从终端运行下一个命令: 吊舱安装 4.打开生成的工作区。 之后,我们可以使用Pods的框架来实现文件的上传。 5.我们需要导入2个模块: 导入AWSS3 导入AWSCore 6.使用您的凭证设置AWS配置。 例如: 让accessKey =“ …” 让secretKey =“ …” 让凭据提供者= AWSStaticCredentialsProvider(accessKey:accessKey,secretKey:secretKey) 让配置= AWSServiceConfiguration(区域:AWSRegionType.usEast1,凭据提供商:凭据提供商) AWSServiceManager.default()。defaultServiceConfiguration =配置 7.创建一个上传请求: 让url = …文件的URL … let remoteName =“上传文件的名称” 让S3BucketName =“您在Amazon S3上的存储桶的名称” 让uploadRequest = AWSS3TransferManagerUploadRequest()! […]

Swift的无服务器计算

为什么选择无服务器Swift? 与无服务器计算是否值得追求的问题不同,为什么要在Swift中实现无服务器系统? 有三个主要原因使Swift成为Lambda实现语言的理想选择。 首先,Swift是一种功能强大,健壮且富有表现力的语言,旨在在包括服务器端计算在内的各种环境中发挥作用。 就其本身而言,区别不大,因为可以用这种方式描述其他几种语言(Rust,Go)。 但是,Swift提供了两种附加的可能性-利用现有开发人员资源的机会,以及在系统的多个层(尤其是后端和移动客户端)之间共享代码的机会。 让我们考虑一个示例场景。 一个例子 我决定组建一家初创公司-这是我可以做的酵母菌,一家专门提供美味面包的在线面包店。 由于没有健壮的云基础架构,没有任何自重的面包店会被杀死,因此我的首要任务是构建微服务来处理向客户发送收据的工作。 具体来说,我想要一种服务,其输入是要订购的项目列表。 物品是面包的种类和数量。 例如三个羊角面包。 输入以JSON编码。 输出是收据的字符串表示形式。 它列出了每个订购的项目,其小计以及整个订单的总计。 现在,我不必担心收据太漂亮。 首先,我忽略了网络连接并编写了可用作命令行工具的代码。 首先,我将创建一个新目录,并使用Swift Package Manager(SPM)创建一个Swift应用程序。 请注意,该应用程序将命名为bru 。 姆迪尔布鲁 光盘布鲁 快速包初始化—type = executable 现在,我指定数据类型。 考虑到可重用性,我在与主应用程序不同的模块中定义它们。 我创建一个目录Sources / bruModels,并在该目录中使用以下代码创建Item.swift , Order.swift和Receipt.swift文件(完整列表可在https://gist.github.com/profburke/2e951f48542a9a1ff470515725727751c中找到): // Item.swift 枚举样式:字符串,可编码{ 羊角面包 凯恩 裸露镍 黑麦 } 结构项目:可编码{ 出租数量:整数 let style:样式 } // Order.swift struct顺序:可编码{ 公共私有(设置)各种商品:[商品] … } // […]

CUNY代码

该程序 去年春季学期(2016年春季),我加入了名为#CUNYCodes的投资组合开发计划。 该计划旨在帮助对从头开始开发应用程序感兴趣的技术专业人士或个人,使他们能够学习,磨练和展示自己的技能。 最重要的是,它允许刚毕业的毕业生或即将成为研究生的毕业生在10个星期的时间内拥有更多的实践经验。 我加入#CUNYCodes主要是为了培养我的社交技能,此外,我还学习了iOS开发! 因此,我希望能够将我刚刚学到的东西应用于一个项目,而不是一个单独的项目! 我知道我的弱点是能够清晰地交流我仍在努力的思想过程; 因此,通过加入,我可以在这方面进行工作。 与您自己创建某物与与他人创建某物有所不同:交流。 事情可能变得如此复杂! 特别是当一群人来自不同的背景,不同的编程经验以及最重要的是不同的思维过程时! 现在,回到#CUNYCodes! 在#CUNYCodes,有具有软件工程师背景的导师; 因此,基本上总会有人能够指导您进行您正在从事的项目。 此外,它不仅是一个构建投资组合的程序,而且还将提供现实世界中使用的知识和工具。 我记得当我加入时,并不是每个人都知道Scrum是什么以及如何使用版本控制系统,甚至什么是版本控制。 此外,每周都会有来自不同技术背景的演讲者来演讲,讲述他们的经验以及从成为新手到成为现在的人的转变。 我觉得这对于刚毕业的毕业生来说是一个很好的见解,并激发我们改善自己。 我的经验和隐藏的宝石 老实说,我是最后加入#CUNYCodes的人之一。 我被安排在一个团队中,该团队正在开发名为Hidden Gems的iOS应用。 该应用程序可满足旅行者或对根据其当前位置查找本地场所和事件感兴趣的任何人。 我加入的团队共有5人。 我们每个人都有不同的技能和各种编程经验。 另外,已经有一些布局组件组合在一起。 但是,尚未设置后端。 由于我们大多数人都对学习如何设置AWS服务器和安装LAMP堆栈感兴趣,因此我们所有人都在做同一件事-学习如何安装AWS和LAMP。 现在,我们所有人都知道如何设置后端。 从那里,我们最终将任务分配给谁在前端,谁将在后端工作。 我们决定在前端使用Swift,而我们做到了。 当我第一次加入时,我提到过要在后端工作。 但是,我认为可以肯定地说我是满座的。 我最初开始为iOS应用程序创建REST api。 但是最后,我在前端工作,为Hidden Gems创建了各种功能,其中一些使用了Foursquare API。 我们如何管理项目是使用Scrum每周进行冲刺。 我们使用Pivotal Tracker分发了我们的任务和目标。 问题 是的,我为此创建了一个部分! 并没有任何真正的问题-就在我开发Swift 1.2时,而团队中的大多数人还是在Swift 2上。因此,存在着巨大的冲突,但是我们还是设法使它工作了。 我希望Apple的语言不会依赖于操作系统。 我没有升级到Swift 2,因为我不想升级操作系统。 大声笑。 无论如何,下一个大问题是我的一些队友似乎从未使用过git或任何版本控制系统,或者不知道如何使用它。 到底 令人惊讶! 我们将我们的应用程序整合在一起,并且经过10周的努力(对于我来说可能是6个)可以进行演示。 感谢隐藏的宝石团队以及我们的导师John […]

使用AWS Cognito通过FaceBooK登录到应用程序

Amazon Cognito是一项托管服务,使您能够将灵活且可扩展的用户管理系统集成到您的Web和移动应用程序中。 Cognito提供了两种不同的方式来使用该服务:联合身份(允许通过Facebook等社交网络登录)和用户池(为用户提供针对特定应用程序或一组应用程序的完全自定义用户管理功能)。 将身份池集成到您的移动应用程序中的第一步是创建Cognito IdentityPool。 这将为我们提供插入示例应用程序所需的配置值。 要创建新的身份池,请遍历Amazon Cognito控制台中提供的向导。 让我们逐步完成创建它的过程。 认知身份池 创建新的Cognito Pool的过程非常简单(假设您已经配置了Facebook App): 请注意,默认情况下,每个新的身份池将具有两个与之关联的角色,一个用于未认证的角色,一个用于已认证的用户的角色。 如果计划有多个身份池(例如,每个开发/阶段/产品环境一个单独的池),则可能要指定现有角色。 现在,我们将保持原样,因为稍后将更新这些角色。 在您的移动应用中设置Facebook登录 Android-JavaAndroid-Kotlin iOS-Swift 添加或更新您的AWS后端配置文件以合并您的新登录。 有关详细信息,请参阅“入门:设置您的后端”部分中的最后步骤。 安装Xcode 8+并创建新项目 转到项目的根文件夹,然后在编辑器中运行此命令“ amplify init”,然后运行amplify push,它将更新您在云上的所有更改。 步骤3之后,您将获得一个awsconfiguration.json文件,您必须将其附加到项目中。 在您的podfile中添加以下依赖项。 6.运行pod安装 从开发人员的角度来看,使用Cognito进行身份验证的关键概念非常简单:我们需要从身份验证提供程序(Facebook或OpenId)获取令牌,然后通过AWSCognitoCredentialsProvider将其传递到AWS默认配置。 该令牌最终将交换为会话属性和身份。 注意:您只能设置一次defaultServiceConfiguration ,任何后续的设置器都将被忽略。 我们缺少的是AWSIdentityProviderManager的实例: 该类的唯一目的是将令牌包装到字典中。 该词典应仅包含1个条目: [“ :“ ”] 标识我们使用的提供商的类型(更多信息): Facebook的 :“ graph.facebook.com” Twitter :“ api.twitter.com” Google :“ accounts.google.com” 用户池 :“ cognito-idp。 .amazonaws.com / […]

如何使用AWS Lambda或Google Cloud Functions将Zendesk Mobile SDK与Firebase集成?

大家都知道,您可以使用JWT(JSON Web令牌)对Zendesk Mobile SDK的用户进行身份验证。 此外,还有很多HOWTO-s,它们显示了针对许多不同编程语言的JWT实现。 在本教程中,我将向您展示如何使用Google Cloud Functions,NodeJS和其他一些npm附加功能来为Zendesk Mobile SDK创建完全可扩展且完全免费的无服务器JWT身份验证后端。 为什么选择Google? 当然,您可以使用AWS Lambda函数来实现类似的解决方案,但是我个人认为,使用单个产品(Google Firebase)进行iOS后端操作要容易得多,然后再使用AWS的几个服务。 因此,主要原因是Firebase。 同时,Google为您的所有服务提供了出色的日志记录解决方案,因此您无需实施任何特殊的操作并重新发明轮子。 只需对您的所有服务使用单一解决方案。 第三个是API。 我个人认为,Google的API是我见过的最好的API。 只有Google为您提供大多数错误的详细说明,并为您提供指向其控制台的直接URL链接,例如,启用所需的服务。 什么是无服务器,云功能和Lambda? 可以将其视为基于容器技术的轻量级PaaS托管,但存在一些局限性,这使得该技术超级快速且可扩展。 此托管存储您的代码段,这些代码段可以独立启动以解决一个简单的问题(例如,调用Web服务的另一功能,将某些内容保存到数据库或发送电子邮件),这些代码可以在一个时间短。 每当其他云服务触发它或像传统Web服务一样通过HTTP / HTTPS协议直接调用它时,您的代码段就会在容器内启动。 为什么使用无服务器(AWS Lambda或CloudFunctions)? 我们仍然不会不花心思地使用每种解决方案所需的资源。 我们仍然使用一半负载的VM来支持较长的基础架构扩展时间或具有在Kubernetes集群中启动其他容器的能力。 在云的情况下,我们要为这些未使用的资源付费。 不了解您,但我不想这样做。 云功能的使用使我们更加节俭地使用可用资源,同时,它使我们能够比使用VM甚至容器的情况下更快地进行扩展。 因此,借助CloudFunctions,我们可以使用云的本质而无需考虑我们的Web服务可伸缩性。 当然,所有云提供商都支持无服务器技术,因此,您无需考虑诸如供应商锁定之类的事情。 您可以随时轻松切换云提供商。 无服务器后端 首先,我假设您已经拥有: Google Firebase帐户(如果您不使用Firebase,也可以使用传统的Google Cloud)并在其中创建了Project。 您已经安装了Firebase SDK for Cloud Functions,并为您的云功能创建了初始项目结构。 您已阅读有关编写HTTP云功能的信息 之后,您将可以轻松在Node.js上编写类似的代码。将以下代码添加到index.js文件中,以创建名为jwt_auth的云函数: “使用严格”; const functions = require(’firebase-functions’); const admin […]

使用SNS,Lambda和Node.js创建推送通知作业

页面出现时,单击“创建平台应用程序”: 接下来,您需要为您的应用程序创建一个名称,为您的Push通知平台选择Apple生产或Apple开发,然后从您已经创建的证书中上传信息(请参阅先决条件)。 在查找器中选择您的证书,如果使用一个证书将其导出,请输入密码,然后单击“从文件加载凭据”。 您的证书和私钥应该自动填充。 单击创建平台应用程序。 创建应用程序后,记下应用程序ARN(Amazon资源名称)。 我们将在步骤3中使用它。 2.创建SNS主题: 导航到左侧导航菜单中的主题,单击创建新主题。 填写主题名称和显示名称。 就我而言,我只想创建一个推送通知,该通知将发送给整个用户群,因此我创建了一个名为all_app_users的主题。 创建主题后,请记下ARN。 我们将在步骤3中使用它。 3.配置程序访问 在我们的node.js代码中,我们将需要配置一个具有适当权限的用户aws-sdk,以创建SNS终结点并订阅我们的all_app_users主题。 返回AWS控制台,导航至IAM,然后单击Users。 创建一个新用户,选择一个名称,然后选中“访问类型”的“编程访问”,然后单击“下一步”:权限: 在权限屏幕上,单击附加现有策略,然后单击创建策略: 在弹出的IAM屏幕上,选择“策略生成器”。 然后在Edit Permissions中,选择适用于AWS Service的Amazon SNS,在Actions字段下检查CreatePlatformEndpoint,然后从步骤1插入应用程序ARN: 单击“添加语句”,然后重复上述步骤以创建允许该用户创建all_app_users主题的订阅的all_app_users 。 再次为AWS服务选择Amazon SNS,为“操作”选择“订阅”,然后从步骤2插入SNS主题ARN。单击下一步,将策略名称更改为sns-programmatic-access,然后单击创建策略。 返回创建用户的窗口,搜索sns-programmatic-access(您可能需要单击刷新按钮),然后单击其旁边的复选框以将其选中。 单击“下一步:查看”,然后单击按钮以完成创建用户。 在下一个屏幕上,将显示您的访问密钥ID和秘密访问密钥。 现在记下这些凭据,因为您将无法再次访问密钥*。 我们会将这些凭证插入到我们的node.js代码中,以配置我们的AWS客户端。 *如果您最终丢失了密钥,则可以通过IAM管理控制台创建新密钥。 4.向平台注册用户: 这部分取决于您当前如何处理设备令牌的注册。 在本例中,我们当前正在将设备令牌发送到服务器,以将它们存储在数据库中。 为了实现SNS,我们将需要在包含该设备令牌的SNS应用程序上创建一个平台终结点,然后将该设备预订到我们的all_app_users主题。 为此,我们将需要aws-sdk npm模块: npm install -save aws-sdk 在我们的代码中,让我们使用在上一步中创建的凭证来配置我们的AWS客户端: 在“配置触发器”屏幕上,单击“下一步”。 我们将在确认该功能正常工作后再设置触发器。 在“配置功能”屏幕上,我们需要在all_app_users主题上设置具有SNS:Publish权限的角色。 向下滚动到Lambda函数处理程序和角色部分。 在角色下,选择创建自定义角色: 在打开的IAM窗口中,将“角色名称”更改为所需的名称(我使用notificationsRole)。 然后单击允许。 现在,您的Lambda角色应设置为刚创建的角色。 最后,单击下一步,然后完成创建函数。 现在,我们只需要使用策略生成器添加SNS:Publish权限。 导航到IAM管理控制台,在左侧导航菜单中单击“角色”,然后选择我们刚刚创建的角色(如果使用该名称,则为“ […]

iOS Push与Amazon的AWS简单通知服务(SNS)和Swift轻松实现

推送是任何移动应用程序中不可思议且必不可少的功能。 亚马逊的AWS通过其惊人的简单通知服务(SNS)为移动提供了推送服务。 我个人发现使用Swift和SNS在iOS上实现推送有点困难,主要是因为没有关于该主题的简化的分步文档。 本教程就是这样:一个简单的分步教程,介绍如何使用Swift和SNS在iOS上实现推送通知。 我们将您要在下面学习的内容纳入了此处列出的大多数产品中。 本教程旨在握住您的每一个步骤 。 我们将创建一个Swift / SNS push应用程序。 首先创建一个单页应用程序:打开XCode并创建一个单页应用程序。 您可以随意调用该应用程序,但要确保名称是唯一的。 创建p12证书:为新应用创建应用ID,推送启用的证书和p12文件。 这是一个很好的教程,请执行以下操作:单击此处。 a)创建一个新的平台应用程序:登录到AWS并转到SNS仪表板。 单击“创建平台应用程序”链接。 b)输入平台应用程序详细信息:输入您的应用程序名称(您的唯一名称)。 推送通知平台应为“ Apple开发”。 4. 完成创建平台应用程序:在下拉菜单中选择“ iOS推送证书”作为推送证书类型。 单击“选择文件”按钮,然后选择您在步骤2中创建的p12证书文件。单击“从文件加载凭据”按钮,如果您为证书创建了一个,则输入密码。 如果没有密码,请将其保留为空白。 完成所有操作后,单击“创建平台应用程序”按钮。 复制应用程序ARN以在XCode应用程序中进一步使用 → 5. 将SNS ARN插入您的应用程序委托:打开AppDelegate.swift文件,并将SNS平台应用程序ARN插入为应用程序委托的第一个变量。 自然,您的应用程序ARN将与下面的字符串不同。 /// SNS平台应用程序ARN 让SNSPlatformApplicationArn =“ arn:aws:sns:us-east-1:203525439813:app / APNS_SANDBOX / SpreebieSNSExample” 6. 下载适用于iOS的AWS开发工具包:转到此处的适用于iOS的AWS开发工具包页面,然后下载SDK或单击此处下载。 7. a)解压缩SDK文件并将其拖放到您的项目中:解压缩下载的SDK,并将AWSCore.framework,AWSCognito.framework和AWSSNS.framework文件添加到您的项目中。 b)嵌入框架:通过转到YourProject-> Targets-> General-> Embedded Binaries,嵌入刚添加到项目中的框架。 添加AWSCore.framework,AWSCognito.framework和AWSSNS.framework。 8.将AWSSNS导入到您的应用程序委托中:将AWSSNS框架导入到您的AppDelegate.swift中 。 导入AWSSNS 9. […]