Tag: mac地址

如何在Mac(macOS High Sierra)上安装openFrameworks

这是安装openFrameworks的指南,openFrameworks是用于创意编码的C ++工具包。 该教程最初发布在我的个人博客benwiz.io上 。 从GitHub存储库克隆openFrameworks 从官方版本下载并提取projectGenerator 测试openFrameworks以确保其正常工作 从应用商店下载Xcode。 然后,使用以下命令安装Xcode的命令行工具。 如果您还没有Homebrew,请安装它。 / usr / bin / ruby​​ -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 使用Homebrew安装wget 。 酿造安装wget 克隆主分支。 git clone-递归git@github.com:openframeworks / openFrameworks.git && cd openFrameworks 下载外部依赖项。 / bin / bash脚本/osx/download_libs.sh 通过访问下载页面下载openFrameworks的正式版本,或直接下载v0.10.1。 将projectGenerator目录移动到克隆存储库中。 mv〜/ Downloads / of_v0.10.1_osx_release / projectGenerator /。 您现在可以删除下载的发行目录和zip。 rm -r〜/ Downloads / of_v0.10.1_osx_release * 打开projectGenerator应用程序。 打开projectGenerator / […]

你好。 Desarrollando在iOS上的应用程序(I)

在iOS设备上运行Desarrollar的应用程序。 编程辅助程序为0或-4。 Despuésde casi 3个因果关系的最终解释权是在0天内的经验。 。 不需要任何必要的理由。 纳迪(惯常的习惯)的左手右手和左手的右手腕上的手枪和手枪。 简单的体验性的“ algo”和“ las siguients frass han sasado”的片段:“ megustaríaalgo que…”“ojalápudiera…”“ Esto no funciona bien…” Vaya mierda de app”“ Vaya mierda de web”“¿Porquénadie ha hecho…。?” 重要的预告片。 Es la que te将tanto que finalmente te lleva切成“ pues lo hago yo”。 En mi caso fueasí,布宜诺斯艾利斯,马诺斯。 苹果公司的粉丝,一般的技术合作伙伴。 Durante mucho tiempo he comprado,arreglado,vendido ordenadores […]

iOS CI,增压

当Skyscanner看到为其iOS代码库做出贡献的开发人员的数量大大增加时,它便着手重建其私有Mac云。 这是发生了什么事。 为iOS开发-不像Apple Pie那样简单 在过去的五年中,我一直是Skyscanner的iOS工程师,致力于塑造我们的移动应用程序的功能。 后来我加入了移动DevOps团队。 这使我可以利用自己的移动体验来改善我们的iOS平台基础结构。 业内许多人认为可以简化针对iOS的开发。 在构建一致且可扩展的iOS CI系统时,这一点更加明显。 当我第一次加入DevOps团队时,Skyscanner将Jenkins CI与本地Mac Minis和Mac Pros结合使用。 这些负责运行Android和iOS作业,我们一一管理。 如果要增加工作执行者的数量,则需要购买新的Mac。 这是因为Apple EULA声明您只能在正版Mac硬件上构建iOS代码。 如果还希望使执行程序保持一致,则可以选择创建NetRestore映像或使用JAMF。 无论哪种方式,您都必须手动关闭Mac,并忍受在配置Mac时无法使用它们。 如果您在所有这些方面都认识到当前的CI系统,或者遇到类似的问题,请继续阅读。 我们有一个解决方案供您考虑。 通往云的阶梯 在2018年初,我们看到为iOS代码库做出贡献的开发人员数量呈上升趋势。 具有CI资源修复的更多开发人员意味着更长的队列和等待时间。 我们需要尽快实现动态的负载平衡资源。 对于Android,我们的任务相对简单。 Skyscanner Web堆栈位于AWS上,因此我们已经拥有必要的云知识和工具。 在先前的研究中,我们已经定义了配置虚拟机所需的命令。 使用HashiCorp的Packer,我们可以生成Amazon Machine Image。 Jenkins可以使用Jenkins EC2插件实例化它们。 在此过程中,我们学到了很多有关如何在虚拟机上呈现必要状态(例如缓存)的知识。 最后,我们可以将并行作业从4个增加到30个。 对于iOS,我们必须多走一些路:我们在知识上有些不足,需要在皮带上添加一些新工具。 在开始该项目后不久,我们遇到了Veertu提供的虚拟化技术Anka。 由于其性能和易用性,它成为了我们的私有Mac云的核心。 这是您如何使其工作的方法: 设置Anka控制器和注册表Docker容器。 前者接受对新Mac虚拟机的请求。 后者管理不同版本的VM。 在Mac硬件上安装客户端。 将客户端连接到控制器和注册表。 通过Anka Jenkins插件集成控制器并进行配置。 例如,您需要设置控制器应为其触发新VM的Jenkins标签。 开始在自由式和管道作业中使用标签。 这里没有银弹,我们所做的更改涉及权衡: 🤩可以在单个Mac Pro上运行多个VM,这意味着CI环境中可以使用更多资源。 有了Anka,我们不必在过渡期间牺牲速度。 完整的项目存档大约需要18分钟才能在裸机Mac […]

如何在60秒内在Xcode开发Mac上恢复60 GB

您是否在Mac上的硬盘空间有限? 您想知道为什么您的可用空间会随着时间的推移而不断缩小吗? “关于本机”中的“存储”视图是否显示大量的系统利用率? 答案是Xcode。 尝试以下踢腿运动: du -hsc〜/ Library / Developer / Xcode / iOS \ DeviceSupport / * 瞧… 这就是我清理后的样子。 我吹走了子目录,并恢复了60 GB的净容量 。 每当您有一个新的iOS版本与Xcode对话时,这种情况就会增加,因此,如果您使用Beta版,那么它会迅速发展。 而且显然永远也不会被清理干净。 该目录的目的是存储与该版本的iOS相关的符号。 这就是为什么在将设备或新的模拟器连接到Xcode时有时会有些等待的原因。 这些符号使我们大家都知道并喜欢的调试工具能够正常工作。 删除这些子目录(例如12.1)将意味着您下次连接使用该版本iOS的模拟器或设备时,必须下载设备符号。 因此,我们为节省大量空间而付出的代价是将来进行某些设备测试可能需要更长的时间。 一旦。 因此,感谢这些设备支持文件的服务并在发送途中发送它们。 所需的将回来,与此同时,您的项目,设计和(在我的情况下)React Native NPM项目将陷入困境。 Gant Laborde的这篇精彩文章中介绍了更多清理磁盘空间的策略:如何在开发人员Mac上释放空间

直接下载任何Xcode

无论使用哪种浏览器,从App Store下载Xcode甚至下载.xip文件,无论使用哪种浏览器,当您的连接不如其他人稳定和快速地进行连接并且任何时候都可以中断下载时,都可能会很痛苦。时间,您很可能必须重新启动整个下载。 这只是发生在我身上,我正在写这封信作为自己的笔记,还与其他可能遇到类似情况的人分享。 这是我所做的下载… 1.安装Xcode命令行工具 这是一个约183Mb的小包装,我认为足以通过您的浏览器下载。 转到开发人员下载站点 如果需要,请使用您的Apple ID登录 搜索要下载的命令行软件包(我将使用针对Xcode 10和macOS Mojave的最新稳定命令行工具)。 点击右侧的链接,等待下载完成 下载后,将其安装为其他任何.dmg软件包。 2.安装 Homebrew 和wget 我使用Homebrew安装wget 。 可能还有另一种方法,但这就是我的方法。 😅 开放终端 跑 在顶部,您将看到一个链接,显示“单击此处” 。 单击它以下载cookies.txt文件 随时随地保存 4.获取Xcode直接下载链接 再次访问开发人员下载站点。 选择您要下载的Xcode版本(我将下载Xcode 10)。 右键单击右侧的链接,然后选择“复制链接地址” 或者,访问此StackOverflow答案以获取所有Xcode版本的链接。 5.开始下载 打开终端,然后转到cookies.txt文件的位置。 现在运行 开始下载Xcode的命令 将结尾处的链接替换为您要下载的文件,该文件是您在上一步中获得的。 等待下载完成。 笔记: 将-b添加到download命令以在后台运行它,尽管没有它也更容易检查进度和状态。 该命令中的-c选项允许您继续下载,即使您关闭终端,取消该过程或重新启动笔记本电脑等也是如此。 6.安装Xcode 打开下载的文件,使其开始解压缩。 将未压缩的文件移到Applications文件夹,就可以完成! 希望对您有用 ,请不要忘记与他人分享 ! 在jahir.xyz上了解更多关于我的信息 图片来源:unsplash.com

没有目标的Xcode文件变体

如果您想使用其他替代配置来配置iOS / Mac(Swift或Objective-C)构建,则可以遵循许多不同的方法。 通常,您可以将它们分为两个集群:在运行时(例如,解析Info.plist )或编译时(利用Swift编译条件/预处理器宏或定义新目标)进行切换。 显然,我们总是更喜欢编译时检查,但是开销经常会夸大其好处。 这篇文章将提出一种基于Xcode构建规则(与传统的Xcode目标相反)来控制文件变体选择的替代方法。 问题陈述 有很多解决方案可以构建不同风格的应用程序,这些应用程序可能在以下方面有所不同: 端点地址(例如分期与生产) 逻辑(例如,启用/禁用地理围栏检查) 有关更多详细信息,请允许我推荐这篇文章,其中详细介绍了其中的大多数内容。 长话短说,对于Swift开发,您可以选择: 使用#if DEBUG … #endif结构来包含或禁用给定代码块的编译条件 单独的目标 ,其中每个目标都包含一个单独的专用文件,其中包含针对给定配置的特定代码 从.plist输入文件或环境变量进行运行时检查 每个都有一个缺点,请提及: 如果影响编译器的条件,可能会导致代码过多,导致代码混乱 单独的目标引入了不必要的需求,将所有“共享”代码库和配置都包含在其中 对于运行时配置,我们会丢失编译时检查。 如果我们可以有一个目标 ,该目标根据配置使用文件的特定变体,那不是很好吗? 解决方案:使用自定义构建规则使用或跳过.swift文件 传统上,Xcode目标使您可以有选择地选择要编译的文件。 您可以利用它来用另一个指定其他baseURL或完全不同的逻辑策略的源文件替换一个源文件。 为了这篇文章的缘故,让我们假设我们要使用两个不同的Configuration_X.swift文件之一: // Configuration_S.swift 结构配置{ 让baseUrl =“ https://staging.example.com/” } // Configuration_P.swift 结构配置{ 让baseUrl =“ https://example.com/” } 没有目标,我们可以使用Xcode项目中不太流行的自定义“构建规则”来实现,您可以在其中根据文件名指定如何处理项目文件。 添加自定义构建规则时,必须指定文件模式,要应用的Shell脚本以及脚本的输出文件。 然后,Xcode在编译过程中将评估您的脚本中与给定模式匹配的文件,而不是默认行为(例如,编译.swift文件)。 请记住,自定义构建规则优先于嵌入规则-这使我们有机会覆盖默认的编译行为。 对于我们的解决方案,我们将遵循以下算法: 将Configuration_X.swift 所有版本都包含在一个目标中 Xcode项目指定了一个虚拟的构建规则 ,该规则吞下了您要跳过的文件(从构建中排除) 照常处理所有其他文件(格式为xxxxx_x.swift ) […]

Swift:查找未使用的代码

是否想在您的Xcode项目中找到所有未使用的Swift代码? 没问题。 我们将使用外围设备。 这是一个免费工具,而且非常准确。 安装外围设备 首先,我们需要安装Homebrew-如果您已经安装了Homebrew,则可以跳过此步骤。 / usr / bin / ruby​​ -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 接下来,我们需要告诉Homebrew在哪里可以找到Periphery版本。 酿造水龙头外围设备/外围设备 最后,安装Periphery本身。 酿造桶安装外围 扫描您的项目 现在已经安装了Periphery,我们准备让它扫描Xcode项目。 转到您的项目目录并运行: 周边扫描 这将开始引导式设置。 第一步是选择要分析的构建目标。 选择正确的目标很重要。 假设Class A是目标Acme Kit的成员,并且只能在一次使用:目标Acme App Class B 。 如果您选择仅分析Acme Kit ,则Periphery将无法识别Acme App使用了它。 因此,在此示例中,我们必须分析AcmeApp和AcmeKit ,这一点很重要。 接下来,我们需要告诉Periphery需要哪些方案来构建我们选择的目标。 现在,我们需要确定是否假定已标记为public类,函数,枚举等…正在使用。 如果您的项目包含使用所有public接口的应用程序,请选择“ No ,或者如果您的项目只是一个框架,请选择“ Yes 。 最后,我们需要告诉Periphery假定正在使用@objc注释的任何内容,因此现在选择Yes 。 当您感到有点冒险时,您总是可以稍后再回来尝试不同的选择。 按Enter键,Periphery将开始扫描您的项目,并以未使用的声明列表结束。 恭喜你! 现在,您可以开始从项目中删除未使用的代码。 但是首先,让我们通过将Periphery集成到Xcode中,使它成为更好的体验。 Xcode整合 […]

ScriptingBridge —与Swift和AppleScript进行通信

对于开发人员和高级用户而言, AppleScript是macOS上的一项出色技术。 借助AppleScript,用户可以创建可运行其他应用程序的自动化流程。 但是,作为开发人员,有时您希望使用AppleScript的功能在Xcode中构建应用程序,而无需使用单独的脚本文件。 这就是ScriptingBridge出现的地方。 要在任何应用程序中使用AppleScript,有两种方法可以执行此操作: 编写一个单独的AppleScript文件,并使用NSAppleScript API执行和运行脚本。 使用ScriptingBridge在Swift或Objective-C中使用AppleScript。 我们将看第二个选项:ScriptingBridge。 特别是, 如何在Swift中使用ScriptingBridge而不需要AppleScript文件或事件Objective-C桥接。 如果您打算为Mac App Store编写应用程序,则有 Apple指出的 限制 。 您还可以查看Craig Hockenberry的这篇文章,其中展示了如何在Mac Store应用中使用AppleScript API。 最重要的是: 不能将ScriptingBridge与Mac App Store中的应用程序一起使用。 关于Objective-C ScriptingBridge ,Apple已经提供了准备代码的工具。 幸运的是, Majesty Software的 Tony Ingraldi 拥有 大量的Python脚本 ,可以在Swift中创建相同的代码。 有关此内容的更多详细信息,请查看他在GitHub上的仓库或此处的博客文章。 现在,让我们尝试通过编写 一个将选项卡网址从Safari窗口中拉出的应用程序来执行此操作。 可以在这里找到该应用的仓库。 从AppleScript定义构建Swift代码 从GitHub上的SwiftScripting存储库下载python脚本工具。 在仓库的目录中,运行以下命令: pip install clangsdef /Applications/Safari.app> Safari.sdefsdp -fh –basename Safari Safari.sdef./sbhc.py Safari.h./sbsc.py Safari.sdef […]

如何在iOS 3.2及更高版本中获取蓝牙MAC地址?

我想在iOS 3.2及更高版本中获得蓝牙MAC地址,但找不到任何可用的方法,有人可以给我一些build议吗?

iphones mac地址是静态的吗? 寻找一种方法来确定哪个用户在线

我正在构build一个不需要login系统的应用程序。 我仍然希望能够知道哪些用户正在向我的在线数据库发送信息。 据我所知,UDID不允许上传到任何服务器,所以这是不可能的。 我可以使用这个iphones mac地址吗? 如果它是dynamic的,它会不时变化,我将无法跟踪它。