Tag: 移动

Todays Extension ve ortak钥匙扣kullanımı

iOS版本,扩展名为’larda Keychain’desakladığınızverilereerişmenizgerekebilir。 密码登录Token’ınkeychain’e kaydettiniz veuygulamanızaeklediğinibirwidget’ında bu Token’aerişmesigerekiyor。 Uygulamanızveextesion’larınıarasında钥匙扣paylaşımıoldukçakolay。 1-开发人员hesabınızdanuygulama Prefix’inialın: developer.apple.com->证书,标识符和配置文件->应用程序ID->Uygulamanızaltındali“前缀”我不是。 2-钥匙串共享 ProjeayarlanızındaKeychain Sharing’i aktive edin。 Ve 1.adımdakiprefix’iaşağıdakigibi ekleyin。 3-.dosyasınıkontrol edin的权利: 项目Navigator’da XCode’unoluşturduğu.entitlementsdosyalarınıaçın(1个aduuygulamanıziçin1个adet deoluşturduğunu扩展名için)。 扩展名.dosyasında的“钥匙串访问组”项0到项1扩展名2。添加“钥匙串组”的名称2的名称。 Veişlemtamam,扩展名veuygulamanızkeychain’ipaylaşıyor。

iOS开发设置:自定义终端

iTerm + zsh + Prezto + Powerlevel9k 这篇文章是有关设置iOS开发环境的系列文章的一部分。 随着时间的流逝,我已经对终端进行了调整,以提供易于理解的大量相关信息,无论何时何地都可以。 归根结底,我有一个系统,可以在其中轻松判断我正在使用哪个版本控制系统,我在哪个分支中以及我的状态(未暂存的文件,已暂存但未提交的文件等)。 我可以使用zsh / Prezto内置的自动完成和建议功能快速导航到其他分支或文件。 iTerm允许我打开多个选项卡,即时切换配置文件,并轻松更新和调整终端的外观。 iTerm,zsh和Prezto的功能很多。 另外-看起来很好。 为什么zsh是您的朋友:http://www.slideshare.net/jaguardesignstudio/why-zsh-is-cooler-than-your-shell-16194692 关于Prezto为什么是Oh-My-Zsh的绝佳替代品的一些信息:http://joshsymonds.com/blog/2014/06/12/shell-awesomenessness-with-prezto/ iTerm可以为您做什么:http://lifehacker.com/5857046/the-best-terminal-emulator-for-mac-os-x 这篇文章将介绍我如何自定义终端的外观和功能。 有无数种组合,以下仅是我当前为iOS开发配置终端的方式。 iTerm2是MacOS默认终端应用程序的首选终端替代品,我已使用可与zsh主题Powerlevel9k完美搭配的配色方案和字体对其进行了自定义。 最后有指向我的自定义zsh点文件的链接。 iTerm 安装iTerm并将其设置为默认终端应用程序。 我强烈建议您阅读文档以了解所有可用内容。 iTerm主题: iTerm带有多个内置主题,以及一个简单的“导入/导出”功能,可提供更多功能。 其他主题可以在Google-fu上找到。 导入主题新主题: 预览,选择并下载新主题。 iTerm批准的主题可以在以下位置找到:https://github.com/mbadolato/iTerm2-Color-Schemes。 导航到iTerm首选项,导入下载的主题,然后选择。 您可以在帖子顶部的屏幕截图中看到经过稍微调整的Chalkboard主题版本。 如果愿意,可以调整标准或自定义主题以适合您的需求,然后导出以与他人共享。 注意:您将需要在iTerm中打开一个新的标签或窗口来查看您的更改。 这对于字体,颜色以及您对终端外观进行的任何其他更改均适用。 iTerm字体: 我已经沿着几种不同的路径设置了一种可以与iTerm和Powerlevel9k一起使用的字体。 Powerlevel9k建议的方法是使用Awesome终端字体(此处有详细的教程),这是一种优雅的方法,但有时也很精致。 在3个不同的MacOS更新破坏了我的字体设置之后,我选择了一个更简单的解决方案。 从NerdFonts下载要尝试的修补字体 下载的内容可能包含不需要的额外字体(看着您,Windows兼容字体)—继续并删除您不需要安装的字体 安装要使用的字体。 我喜欢Powerline Nerd Font Complete的DejaVu Sans Mono,您可以在帖子顶部的屏幕截图中看到它的使用。 如果您想更进一步,请在MacOS的Font Book应用程序中组织新字体,以便于浏览。 在iTerm中,将字体更改为首选的修补Powerline字体: 进出口: 按照自己喜欢的方式设置iTerm后,就可以导出配置文件并将其保存在安全的地方,以进行备份或导入到另一个实例。 […]

在Swift 3.0中生成基本QR代码

QR码是一种二维条形码,最初是为日本汽车工业开发的。 编码URL,推广虚拟商店,访问加密货币钱包,向消息传递平台添加新联系人— QR码(或其某些变体)为处理各种类型的数据提供了一种简化的方法。 让我们看一下使用静态数据创建我们的代码(例如,字符串)。 在上面的代码中,我们创建了一个称为generateQRCode(from:)的函数,该函数返回可选的UIImage 。 在此函数中,我们首先要将字符串转换为Data对象(它只是字节的MutableCollection )。 该对象将使用某些给定的编码包含我们字符串的表示形式。 在这种情况下,我们使用ISO Latin 1 ; 但是, ASCII或UTF-8也可以。 现在,使用参数名称“ CIQRCodeGenerator”创建CoreImage过滤器的实例。 本质上,我们已经初始化了一个CIFilter对象,该对象用于名为“ CIQRCodeGenerator”的特定过滤器。此参数名称使我们可以引用Swift的内置过滤器来通过Core Image框架生成QR代码。 在Swift中使用CIFilter方法创建过滤器后,必须调用setDefaults()或setValue(_:forKey:)分别设置参数。 在Swift中使用CIFilter方法创建过滤器后,必须调用setDefaults()或setValue(_:forKey:)分别设置参数。 考虑到潜在的复杂性,在某种程度上这似乎是深奥的,而且应该在某种程度上。 仔细看看下一行: 在这里,我们传递data常量(它只是字符串的编码版本)来设置键“ inputMessage”的值。这一步骤至关重要,并且因为设置和检索了CIFilter对象的参数,所以它以这种方式工作通过使用键值对 。 做完了! 好吧,不完全是。 回顾一下,我们向generateQRCode(from:)函数传递了一个字符串,然后将该字符串编码为数据对象。 然后,我们创建了一种特定类型“ CIQRCodeGenerator”的CIFilter对象。最后,我们使用了数据对象来设置键“ inputMessage”的值,该键表示在QR码生成中使用的数据输入。 本质上,我们已经检索了一个特定的模板,收集了所有必需的组件,但是仍然没有返回任何内容。 不用担心转换废话; 我们将在片刻内解决该问题(我们正在使用它来消除生成的QR码中的模糊感)。 专注于展开输出。 我们为什么这样做呢? 这是因为filter(这是我们的CIFilter )返回一个可选的CIImage (再次,请随意忽略最后的.applying(transform) )。 在这种情况下, CIFilter最终使用字符串作为输入来生成CIImage对象。 为了使图像正确显示在imageView插座中,我们将其投射为UIImage 。 最后,我们得到以下信息: 不好了! 为什么我们的QR码如此模糊? 由于我们的CIImage是由点组成的,因此将所得的UIImage缩放为适合我们的UIImageView ,这导致缺乏清晰度。 这就是变换部分的来历! 我们创建一个仿射变换矩阵 ,用于缩放QR码。 这只是用于绘制2D图形的struct […]

iOS开发设置:崇高的文字

这篇文章是有关设置iOS开发环境的系列文章的一部分。 安装 直接从网站下载并安装SublimeText。 Sublime可免费下载和评估,但应购买以继续使用。 我说应该,因为尽管您可以无限期地进行评估,但是Sublime进行了大量工作,支持出色的工作对所有人来说意味着更多的好处。 如果下载时无法购买,则会偶尔出现一个弹出窗口,要求用户购买Sublime。 首选项→设置可对您的Sublime安装进行细粒度的控制。 阅读每种设置的注释,并进行调整以适应您的需求。 命令行整合 炎症声明:我选择SublimeText作为我的编辑器。 是的,我知道“真正的”开发人员会使用vim或emacs(而我选择不打的是另一种方法),但是我在命令行上做的编辑不够多,因此不值得花时间在了解所有键绑定。 我宁愿进行重构或深入研究新的iOS SDK。 因此,要设置命令行终端以使用Sublime作为编辑器,请将此行粘贴到.bash_profile或.zshsrc文件中,然后重新启动终端。 要使用:在命令行中,您可以使用subl . 在Sublime或subl 打开一个新文件。 扩展名 在Sublime中安装程序包控件: 工具→安装程序包控制 从这一点上,您可以浏览一下可用的通用软件包列表( 例如 ,花括号完成或自动缩进),Objective-C和Swift。 此外,您可以直接从Github存储库添加软件包-在命令面板中搜索“添加存储库”。 安装与您的需求相关的软件包: 工具→命令面板→安装软件包 对于严格的iOS使用,我很少需要语法突出显示或Objective-C或Swift的自动完成功能,但是当您确实需要它们时,它非常有用。 Packagecontrol.io是一个有用的网站,可让您在安装之前查看可用的软件包。 由于可用软件包的列表会定期更改,因此我不会特别强调任何内容。 帮手 如果您想在离开Sublime时自动保存文件,则可以在“首选项”→“设置” —“用户”中添加以下行: (如果要添加到现有设置,则不需要大括号) 主题 在过去的几年中,主题变得更容易找到和安装,因此,我将简单地链接到一些最佳教程,以查找和安装自定义主题。 专家提示 :将Sublime主题与iTerm / Terminal和Xcode主题进行匹配。 在工具之间转换时,它更易于解析,并减少了精神上的阻力。 Colorsublime是安装新主题的最简单方法之一。 如果要直接使用Package Control,请在packagecontrol.io上搜索“ theme”以进行预览,然后按照Extensions中的指示进行安装。 例如,可以从Package Control直接获得SodaTheme。 如果您想要更多选择,Dayle Rees提供了有关为各种应用程序安装主题的简短教程,以及流行主题的预览。

创建Appium所需的功能和WebDriverAgent的设置

我已经写了一篇有关如何在Mac上安装Appium以及应安装哪些依赖项的文章。 本文重点讨论您需要在Appium中指定哪种所需的功能才能在真实的iOS设备上运行测试,以及如何配置WebDriverAgent。 确保已安装libimobiledevice和ios-deploy。 如果没有,那么您需要安装: $ brew install libimobiledevice –HEAD $ npm install -g ios-deploy 运行Appium桌面应用程序并启动服务器。 服务器启动且没有错误时,请转到Appium Inspector,单击“启动Inspector会话”。 在“自动服务器”选项卡中,转到“所需功能”选项卡。 要使用iOS设备,您需要指定以下值: platformName -iOS platformVersion —指定将在其上运行测试的设备版本 deviceName-指定设备名称(设置->常规->关于->名称) automationName-指定自动化引擎。 UIAutomation(iOS 9.2及更低版本)或XCUITest(iOS 9.3及更高版本) 应用程序 —绝对本地路径或远程http URL noReset (true / false)-在单个appium会话期间不重置应用程序状态 udid —指定唯一的设备标识符 xcodeOrgId-指定Apple Developer Team ID,您可以在Apple Developer Portal- >帐户->成员资格-> Team ID中找到它 xcodeSigningId —通常是iPhone开发人员 您可以找到Appium所需功能和特定于XCUITest的功能的列表。 结果,您将获得JSON表示形式中的功能列表。 { “ platformName”:“ iOS”, “ […]

跨平台移动开发第三部分-iOS

现在,我们已经完成了在Android平台上设置和实现C ++代码的工作。 我们将从中断的地方继续,我们将尝试在iOS上运行代码! 如果您不知道Djinni是什么,请查阅第一部分的介绍和设置。 如果您想知道如何在Android上使用它,请查看第二部分以了解Android实现。 Apple的iOS一直使用Objective C作为主要语言来编写其应用程序,并且与C和C ++很好地集成在一起。 自从Swift语言发布以来,将Objective C代码集成到Swift还是相当容易的,反之亦然。 因此,即使没有Djinni,将C ++代码和Objective C链接起来也似乎很简单。 但是,我们仍然需要编写Objective C ++代码以将C ++链接到Objective C和Swift。 而且它仍然是相当复杂的代码。 Djinni消除了自己编写Objective C ++的痛苦。 动手 首先,我们将在项目根目录中创建一个名为iOSApplication的文件夹,如下所示: CPP计算器 | |-生成 | -src | -Android应用程序 | -iOSApplication * 之后,让我们启动Xcode并创建一个新的Xcode项目 选择单视图应用 将CalculatorApp设置为产品名称。 为了方便起见,我们将选择Swift作为首选语言。 并将您的项目放在刚创建的文件夹中。 我们将有一个空项目。 现在,您将必须在项目中创建几个组。 这是Bridge , Djinni和CalculatorImpl 。 第一组,我们将其命名为Bridge,用于生成的Objective C ++代码。 第二组我们将其命名为Djinni,以容纳Djinni支持库,第三组是CalculatorImpl,用于放置在第一部分中创建的所有C ++代码。 我们将从将Djinni生成的Objective C和Objective C ++代码复制到Xcode的Bridge组中开始。 将弹出一个对话框,询问我们是否要创建Bridging-Header.h文件。 […]

我刚开始学习iOS时希望有人告诉我的5条提示

由Johann Kerr | SWARM开发人员 考虑进入iOS应用程序开发领域,但不确定从哪里开始? 你不是一个人。 该过程可能令人生畏,尤其是在从多种语言,框架和最佳实践中进行选择时。 如果您需要一些建议以帮助您快速开始学习,或者需要一些鼓励以保持势头,那么这里有5个提示。 提示1:学习Objective C和Swift。 如果您想为iOS编程,但又不能决定要学习Objective C还是Swift,请不要浪费时间,不要仅仅因为它更简单而选择Swift。 虽然目标C已有25年历史,但现实是它不会很快消失。 许多公司仍然在Objective C中有代码库,许多iOS和OS X框架都是用Objective C编写的。如果仅学习Swift,就会处于不利地位。 此外,同时学习两者将使您成为更好的开发人员。 当我第一次学习为iOS编程时,我不必选择一种语言,因为Objective C是唯一的选择。 我记得很不情愿地步履蹒跚,发现它是一种丑陋,令人沮丧的语言。 Swift在2014年6月问世时,我立即为找到一种更快,更直观的语言而感到欣慰。 我爱上了Swift简洁明了的语法(即,不需要用分号分隔语句),并赞赏了它与Obj-C相比的许多优点,例如其简洁性,速度以及处理内存管理的能力。 Swift中的编码使我更容易学习和体验快速看到工作成果的快感。 不用说,我立即跳船,没有回头。 …直到我开始在SWARM工作并意识到目标C仍然很重要。 尽管Swift似乎是大多数项目的首选语言,但我们确实会使用现有应用程序来吸引客户,并且这些应用程序通常是用Objective C进行编码的。此外,遗留库也位于Objective C中。我发现自己按顺序浏览了旧教程赶上我原本会迷路的语言。 因此,请帮自己一个忙,同时学习Objective C和Swift。 您永远不知道何时需要它。 尽管Swift可能是未来,但我们还不能放弃ObjectiveC。 提示2:情节提要,笔尖或代码? 学习全部三个。 当我第一次学习如何为iOS编程时,我观看的每个视频教程都使用Storyboard来布局多个应用程序视图以及它们之间的过渡。 结果,我习惯了在每个项目中都使用Storyboard,并避免以编程方式创建视图,因为Storyboard似乎是标准。 甚至我也忽略了使用Nibs(或Xibs),因为Storyboard似乎囊括了所有使用Nibs的优点。 但是,当我从SWARM开始时,我很快就了解到故事板不一定是通过iOS应用程序以图形方式显示用户路径的最佳方法。 我必须努力学习这一点,因为刚开始我要负责开发新的Apple tvOS,并且每当我尝试触摸Storyboard时,Xcode beta都会崩溃。 我意识到我的团队没有使用情节提要,而是使用原始代码构建了几乎所有项目视图。 故事板非常适合小型项目以及处理诸如主从视图集或用于身份验证和注册的视图集之类的事情。 与团队一起处理较大的应用程序时,情况并非如此。 大型情节提要板可能难以浏览和维护,并且在多个开发人员需要处理同一文件时变得更加困难。 想象两个或两个以上的开发人员试图创建视图并同时提交? 考虑版本控制冲突。 kes! 现在,我在SWARM工作了近10个月,我开始欣赏以编程方式精心布置iOS应用程序所带来的美丽和简单。 尽管它可能需要一些额外的击键,但它使我可以完全控制自己的创作。 我的建议:学习故事板,笔尖和代码以创建视图。 它不仅可以为您遇到的任何类型的系统做准备,还可以使您认真思考布局视图的方式以及如何在不同屏幕上重用这些视图。 提示3:不要仅仅依靠椰子。 DRY“不要重复自己”是程序员之间为避免重复代码而使用的常见开发格言。 […]

如何轻松为iOS项目设置GitLab持续集成

从未使用过它时,如何使Gitlab-CI / CD 和 Fastlane集成? 我们最近在Lodoss团队面对了这一挑战。 在本初学者指南中,我将分享我们的分步过程,最初的期望和最终结果。 因此,您将能够轻松地自行配置GitLab-CI / CD和Fastlane。 我们为什么要持续集成? 一切都应有目的地完成。 我们考虑了自动化的以下必要要点: 自动运行Swiftlint 提高代码质量 减少体力劳动 自动运行UI和单元测试作业 这不是我们需要的全部清单,但是,这是一个很好的起点。 在我们的工作中,我们通常使用以下GitFlow ,并且还使用它来自动化CI / CD流程。 这是描述我们想要获得的成功案例的序列图: 此外,如果有必要(例如,从功能分支进行紧急构建以向管理人员显示新功能) ,则可以通过使用标签来使用所有这些序列。 为什么选择GitLab-CI? 我们有GitLab,但找不到使用其他东西的任何理由。 因此,我们决定使用它,为什么不使用😎? 对我而言,GitLab-CI / CD比Jenkins更面向开发人员。 至少因为它是针对管道,标签和分支的,而不像詹金斯那样有工作。 而且我们必须使用这些东西来获得必要的工作,而不是不用代码进行配置。 GitLab-CI / CD似乎是一种用于在远程计算机上运行脚本的工具。 没有更多,但足够了。 一段时间后,我们意识到使用Fastlane并没有关系。 因为它能够满足我们的所有需求。 结果,我们摆脱了其他工具的束缚。 因此,我强烈建议您使用Fastlane代替手动脚本或其他方法。 为什么选择Fastlane? Fastlane是自动化iOS和Android应用程序Beta部署和发布的最简单方法。 🚀它可以处理所有繁琐的任务,例如生成屏幕截图,处理代码签名以及发布应用程序。 我们决定使用Fastlane,因为它: 让生活更美好 减少自动化时间 拥有清晰的文档 提到的原因还意味着团队中的其他开发人员将很容易学习。 当然,简单的过程比复杂的过程要好。 设置GitLab-CI和Fastlane 设置您的Xcode项目 在Xcode中创建一个新项目。 为项目命名。 转到项目方案,然后如下图所示打开共享标志: […]

iOS将于2018年底发布。下一步是什么? 反应原生还是颤动?

对于iOS开发人员来说,这是“黑暗模式”的一年。 我一直喜欢将所有应用程序切换为暗模式,因为我觉得iOS开发的未来比以往更加黑暗(😬只是在开玩笑) Swift 4. iOS 12. Xcode 10 最终,我们得到了一个非常稳定的Swift版本,从现在开始,我将在各种产品中轻松使用它。 我毫不怀疑Swift语法和用法角度可读性的优点 iOS的新版本🤕Meh…我对此没有任何感觉✌️从现在开始,我可以在自己的构建设置中杀死iOS 9 =] Xcode10。优质Apple🤪您一直在增加版本号(无论如何,再次感谢黑暗模式)。 我仍然讨厌情节提要。 我希望我可以使用VSCode完全替代Xcode。 Xcode吞噬了我的公羊,Xcode吞噬了我的时间。 反应本机 今年人们疯狂谈论React Native。 人们尝试一下。 人们切换到它。 人们预言了iOS的未来。 人们在谈论关于移动开发未来的疯狂话题 和。 我也尝试过🤣(是的,我是多么好奇。) 我可以告诉您,这一直是我拥有的最佳开发人员经验之一。 用VSCode和Expo开发React Native项目是完美无缺的 毫无疑问,就屏幕切换和复杂视图而言,RN应用程序的性能不如本地应用程序。 但是说句公道话,作为混合解决方案,它相当顺利 这种折衷对于任何想要快速开发周期的初创公司都是可以接受的。 无需关心Airbnb的谈话内容。 他们很有钱✌️他们做自己想做的。 扑 我对Google的这种产品感到非常奇怪。 充当游戏引擎的想法使我非常乐于学习它。 学习曲线很高,社区仍然很小。 我还要再等一年,然后再针对任何生产产品提出建议 2019年接下来呢? 不要担心iOS会在未来5年内很快上市,但是了解React Native或Flutter等混合解决方案将为您提供更多在2019年担任Mobile Developer的机会 作为iOS开发人员,我对Apple每年发布的功能感到无聊。 别指望今年在iOS开发领域会有什么很棒的伟大创新。 也许是Xcode 11中的“更暗模式”🤣 在你走之前 – 您是否知道按下👏按钮最多可以放弃50👏? 如果您真的很喜欢这篇文章,请尝试一下! 另外,如果您喜欢自己所看到的内容,并希望我写更多内容,请给我关注Medium(Hoang Nguyen)。 ✌️ 谢谢您的阅读! […]

Swift 4的新功能

Swift 4稳定版本即将发布,可从https://swift.org/download/#snapshots下载swift-4.0-branch。 在本文中,我将带您了解Swift 4中新增的一些功能。 安装 swift-4.0 快照工具链 请转到https://swift.org/download/#snapshots并从下载部分获取Xcode。 2.安装工具链后,导航至Xcode-> Toolchain,然后选择Swift 4.0 Snapshot。 我建议选择工具链后重新启动xcode。 多行字符串文字-SE-0168 使用\ n添加新行并在字符串中转义双引号并不总是一件容易的事。 Swift 4通过提供对多行字符串文字的支持解决了这个问题。要开始字符串文字,请添加三个双引号(“”“)并按回车键,按回车键后,开始使用任何变量,换行符和双引号编写字符串就像您在记事本或任何文本编辑器中编写的一样。 要结束多行字符串文字,请在新行中再次写入(“”“)。 让multiLineStringLiteral =“”“ 这是Swift 4中最好的功能之一 它使您无需任何转义就可以写“双引号” 和不需要“ \ n”的新行 “” 打印(multiLineStringLiteral) 产生以下输出。 “这是Swift 4中最好的功能之一,\ n您可以编写“双引号”而无需转义\ n,而无需“ \ n”就可以换行 String will be treated as collection — SE-0163 就像在Swift 1.x版本中一样,可以将字符串视为集合。 您不再需要编写string.characters.xxx即可执行字符串操作。 let message =“消息!” message.count //不需要message.characters.count 用于消息中的字符{//不需要message.characters 打印(字符) } […]