转载内容 未读
Swift如何使用并发、同步和异步来提升性能本文为转载文章,仅作为备份使用,原文地址:
引用站外地址,不保证站点的可用性和安全性
Swift 并发初步
OneV's Den
本文是我的新书《Swift 异步和并发》中第一章内容,主要从概览的方向上介绍了 Swift 5.5 中引入的 Swift 并发特性的使用方法。
本文是我的新书《Swift 异步和并发》中第一章内容,主要从概览的方向上介绍了 Swift 5.5 中引入的 Swift 并发特性的使用方法。如果你对学习 Swift 并发有兴趣,也许可以作为参考读物。
你可以在这里找到本文中的参考代码。在本文写作的 Xcode 13 beta 2 环境下,你需要额外安装最新的 Swift 5.5 toolchain 来运行这些代码。
虽然可能你已经跃跃欲试,想要创建第一个 Swift 的并发程序,但是 “名不正则言不顺”。在实际进入代码之前,作为全书开头,我还是想先对几个重要的相关概念进行说明。这样在今后本书中 ...
经验分享 未读
ITMS-91053 Missing API declaration 解决方法今天上传应用发现谈了一大堆警告,对于警告洁癖的我表示非常的震惊。
基本上就是因为缺少隐私描述,但是我根本就没用第三方SDK啊,仔细一看发现是这两种:
NSPrivacyAccessedAPICategoryUserDefaults
NSPrivacyAccessedAPICategoryFileTimestamp
这两个确实用了,一个是用于存储用户的配置,一个是获取文件的时间戳。Apple要求说明这些行为是否会将数据与第三方共享,具体用于做什么。
那我们就来说明一下就好了。
添加隐私文件
添加App Privacy文件
Targets勾选所有的项目
这样我们就添加成功一个隐私文件啦
添加隐私说明选项添加隐私类型Privacy Accessed API Types
在里面的item0中添加Privacy Accessed API Type和Privacy Accessed API Reasons
Privacy Accessed API Type是用于告诉Apple这个API是什么API。
Privacy Accessed API Reasons是告诉Apple你用这个API拿 ...
经验分享 未读
Xcode如何管理项目的版本,修改项目版本号和build号我们如果没有正确更改版本号,就会有报错,例如:
warning: The CFBundleShortVersionString of an app extension (‘1.2’) must match that of its containing parent app (‘1.0’).
The CFBundleVersion of an app extension (‘1’) must match that of its containing parent app (‘4’)
但是如果我们的项目包含小组件等,修改起来就非常麻烦,每一个都需要修改。并且在最新版的Xcode中已经不支持在xcode里直接修改版本号了,这个框被隐藏了。
其实我们可以修改项目版本,然后让里面的target来同步这个版本号即可。
操作方法
进入Project > 主要的target > Build Settings。启用“级别”。
在过滤器中输入 CURRENT_PROJECT_VERSION 。
编辑项目级别的值(双击项目列中的空值)。
删除主目标水平的值(单击目标列中的值 ...
经验分享 未读
SwiftUI的ScrollView如何分页滚动ScrollView和UIScrollView一样可以分页
如果低于iOS 17在View的init里面加入UIScrollView.appearance().isPagingEnabled = true就行了。
12345678910111213141516171819202122232425262728293031323334353637383940struct TestOther: View { var body: some View { GeometryReader { geo in ZStack { ScrollView(.horizontal) { let items = [GridItem(.flexible())] LazyHGrid(rows: items, spacing: 0, ...
经验分享 未读
AppShortcuts快捷指令如何显示子自定义背景在 AppShortcut() 中确保已经添加 shortTitle 和 systemImageName 参数。如果你的快捷方式都没有这个,彩色面板将不会出现在快捷方式应用程序中。系统图像名称来自SF Symbols。
创建颜色在主应用的资产目录中创建颜色(例如 ShortcutsBackground1 、 ShortcutsBackground2 和 ShortcutsForeground)
两个背景色,一个前景色。
修改plist现在在Info.plist中添加 NSAppIconActionTintColorName 和 NSAppIconComplementingColorNames 。这需要在 CFBundlePrimaryIcon 中进行。
123456789101112131415161718<dict> ..... <key>CFBundleIcons</key> <dict> <key>CFBundlePrimaryIcon</key> <di ...
经验分享 未读
Xcode安装Simulator失败问题解决方法每次更新xcode都是折磨,需要反复尝试下载模拟器,还不支持断点续传,非常麻烦,找到一篇教程可以方便的进行安装模拟器。
iOS Simulator在下载过程中,总是失败。Failed - Could not download。
有没有什么好的办法可以进行下载呢,我们可以尝试使用手动下载,因为chrome支持短点续传,还是比较方便的。
下载模拟器进入开发者下载地址
找到需要版本的 Simulator Runtime。如果不知道你的xcode支持哪个版本的模拟器,那么可以看看自己下载失败的是哪个版本,就下载哪个版本。
点击 Simulator Runtime.dmg下载
下载过程中如果下载失败,可以点击“继续”继续下载,支持断点续传。
下载完成之后,我们获取一下文件地址。在访达中按下cmd+opt+c来复制文件地址。例如:
1/Users/zhheo/Downloads/iOS_17.4_Simulator_Runtime.dmg
然后我们打开终端app,然后在里面输入
1xcrun simctl runtime add "这里填 ...
经验分享 未读
SwiftUI如何绘制聊天气泡,自适应内容传统开发都喜欢使用.9图来做这种气泡,但是因为.9图只是一个图片,没有办法做动画效果、颜色动画、背景模糊效果等等。可编程性比较差,所以我个人来讲还是比较喜欢用SwiftUI的Shape的。
用SwiftUI来绘制气泡还是比较简单的,这里举一个例子。
实际效果
圆角矩形部分其实图中这种气泡只是分成了上下两个部分,一个是上面的小尾巴部分,一个是下面的圆角矩形部分。
我们很轻松就可以写下面圆角矩形的部分,并且来自适应里面的内容。
12345Text("你好啊!!你好吗,真的好吗好的好的") .padding(12) .foregroundColor(Color.white) .background(.blue) .cornerRadius(12, antialiased: true)
上面的小尾巴我们可以拆分下来,就是一个圆弧。
所以我们只需要用SwiftUI的Shape写一个这个圆弧就可以了。
圆弧绘制这个圆弧别看路径小,但是如果手写的话那也是相当 ...
软件推荐 未读
我逼着轻笑写了个软著代码生成助手最近涉及到的软著事项比较多,不仅是公司的,还有自己的。申请软著要求也不是很多,一个是用户手册,一个是代码文档。一般用户手册很好写,介绍一下软件的整体功能就可以了。但是代码部分就很麻烦了。像是我用swiftui,一个class就一个文件,一个view就一个文件,我一个view还拆分了许许多多小view,曾经我一个一个复制太痛苦啦。
然后我逼着轻笑写了一个vscode插件,毕竟vscode是我们最常用的IDE了。这个文章就给大家看看献祭了轻笑20根头发的插件力作!
软著代码生成器
看我画这个logo,熟悉软著的同学瞬间就懂了吧。
通过插件可以生成一个全代码txt,然后粘贴到word中,设置字体和字号、页眉即可。
安装插件在vscode中搜索“软著代码生成器”或者点击下方的链接:
https://marketplace.visualstudio.com/items?itemName=qcqx.copyright-code
使用插件使用vscode打开项目代码目录,然后按下cmd+shift+P(win电脑按ctrl+shift+P),输入软著代码生成或者 Extract Code
然后选择 ...
转载内容 未读
如何在SwifUI中显示占位内容、显示骨架图的方法SwiftUI有非常方便的骨架屏显示方法,这在需要获取网络内容的界面显示非常重要。显示骨架屏相比转圈的加载中界面更加缓解用户等待的焦虑感。
SwiftUI有一个非常方便的方式添加,那就是:
12View .redacted(reason: .placeholder)
下面的内容来自查看英文原文学习如何使用占位符编写骨架屏。
您是否曾经使用过需要一段时间才能加载的移动应用程序或网站?缓慢的连接速度并不令人愉快,是吗?当您无法判断内容是否正在加载或在此过程中是否失败时,情况会更糟。
幸运的是,有几种方法可以在某些时间比预期更长时通知用户。最现代的方法之一是使用经过编辑的占位符。这些是在 iOS 14 中引入到 SwiftUI 中的。
在本教程中,你将了解:
如何在 SwiftUI 中利用占位符
为什么加载状态如此重要
隐藏私人用户信息的最佳做法
如何创建小部件
占位符是一种更现代的方法,用于展示 UI 的预览。此设计模式通常用于文本字段,其中字段显示提示,帮助用户了解要输入的内容。
占位符的另一个优势是能够隐藏私人信息。金融应用通常会在应用进入后台时执行此操作。在 SwiftUI 中 ...
软件推荐 未读
支持上传图片的ChatGPT4上手:前端实习生可以都开除了吗?ChatGPT最近支持了上传图片功能。在gpt4的发布会上我们看到支持上传图片生成网页代码,非常惊艳。
现在图片上传功能基本上都支持了,让我们来试一下!
编写SwiftUI代码因为我最近写的最多的还是swiftui来写app,那么直接让他来写一个app就好了。在支持图片上传以前,我们需要大量的文字描述才能说明这个界面具体是什么样子,并且大多数情况下很容易遗漏一些细节。现在不需要了。你可以直接绘制出UI图,让GPT4生成你这个UI图对应的前端代码。
这张图片来源:前往查看
发给GPT看看吧
生成效果:
虽然样式没有正确的表达出来,但是框架还是有了的。代码质量还是很不错。可以在视图的基础上进行修改。
生成的代码:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 ...
经验分享 未读
如何适配macOS的Safari将网站保存到应用的功能上一篇文章介绍了如何将网站保存为应用程序。Safari的网站应用程序有着与macOS无缝协同的配合、更好的性能。那么作为网站主如何将自己的网站适配macOS的新特性呢?
这个文章主要来介绍一下如何将你的网站适配Safari的macAPP。
如果您的网站有自己的导航控件,或者您的网站上下文中不需要导航控件,您可能不想显示工具栏。这称为独立显示模式。iOS 上的默认行为与 macOS 不同。已添加到主屏幕的网站将在默认浏览器中打开。这为用户提供了一种直接从主屏幕访问常用站点的快速方法。在iOS和iPadOS上添加到主屏幕的网站,以独立显示模式,将成为主屏幕Web应用程序。主屏幕 Web 应用程序在 iOS 上具有独立的、类似应用程序的体验,具有独立于浏览器的 cookie 和存储。没有浏览器提供的 UI,例如工具栏,所有内容都来自网页。如果您希望您的网站能够在 iOS 上使用 Web Push 和徽章,那么您应该使用独立显示模式。
添加网页清单和我们之前做webapp一样,我们需要创建一个网页清单,用于专门做webapp的适配。来设置显示模式。我将向我的网站添加一个 Web 应用程序清单。 ...
经验分享 未读
SwiftUI的onAppear在NavigationView中不触发的问题今天水群看到有群友问问题:
目前他是用onappear来实现的。大致的例子如下:
123456789101112struct ContentView: View { var body: some View { NavigationView { NavigationLink(destination: DetailView()) { Text("跳转一个页面") } } .onAppear { print("我来啦") } }}
如何每次到这个ContentView的时候都触发print("我来啦")
解决方案其实这就是跟swiftui的机制有关,当你访问到DetailView()的时候,其实只是在NavigationView中显示了一个视图。
无论你是否跳转到子页面 ...
经验分享 未读
iOS开发如何检测手机是否安装了某一个应用,检测是否安装微信iOS应用大多都有urlscheme,比如通过广告点击进入的应用都需要来源标识,所以大多数应用都支持这个功能。并且在一些应用支持微信登录的时候,如果手机没有安装微信,根据Apple的要求是要隐藏微信图标的。那么我们就要先知道用户手机有没有安装微信才行。
首先配置url白名单我们需要将微信添加白名单才可以检测是否安装微信。
进入项目的设置中。
添加一条配置项目:LSApplicationQueriesSchemes
将我们需要的应用链接添加进来。
例如微信的urlscheme为:weixin://
那么我们的白名单填写weixin
通过urlscheme检测是否安装微信然后我们需要在代码部分进行判断。
1234567///检测应用是否被安装func isAppInstalled(scheme: String) -> Bool { if let url = URL(string: scheme) { return UIApplication.shared.canOpenURL(url) } return false& ...
经验分享 未读
如何自己搭建busuanzi不蒜子平台,搭建静态博客的访问量统计
本站网页统计从2023年8月9日开始,之前的统计数据已全部清除。目前没有找回计划。算是作为一个新的开始吧。
之前看了一下网站的网络响应,可以说busuanzi占用了50%多的时间,busuanzi不蒜子太慢太卡,而很多静态博客都是用的busuanzi。毕竟公益免费。但是速度实在是太慢了,严重拖垮了网站速度。所以我放弃了数百万的数据,还是自搭建比较香,博客速度提升一大截。
看到杜老师开的公益项目,自搭建了一个busuanzi。所以说如果你想直接白嫖的话可以用一下杜老师提供的服务。使用杜老师服务就不需要再看下去啦~
杜老师自建国内不蒜子统计平台
请勿使用本文示例的busuanzi地址,因为有域名限制,仅限我使用
因为我个人习惯对于数据要求有掌控能力,并且对于用户隐私有一些方面的考量,所以这个文章就是具体介绍如何自己搭建busuanzi服务。相比于项目的官方文档,这个博客文章会更加细致的介绍,并对文档一些错误内容进行修正。
Github项目地址
项目作者
需要你需要拥有一台服务器,拥有docker环境并支持docker-compose。宝塔环境。
添加站点我们来添加一个站点,例如我添 ...
经验分享 未读
SwiftUI的MacOS项目如何给应用添加开机启动项,登录时自动启动最近在研究如何让敲木鱼支持开机自动启动,从SMLoginltemSetEnabled研究到SMAppService。因为敲木鱼是只支持macOS13版本以上的应用,所以我只需要适配SMAppService就可以了。SMAppService非常方便。
文档文档地址
我们可以用mainApp就可以实现添加本应用的启动项操作。
通过登录启动项状态可以看到目前登录项目是否被开启。
通过register和unregister可以实现添加和删除启动项。
示例123456789101112131415161718192021222324252627282930import SwiftUIimport ServiceManagementstruct ContentView: View { @State var launchAtLogin: Bool init() { self.launchAtLogin = SMAppService.mainApp.status == .enabled } var body: s ...
经验分享 未读
如何在Swiftui中如何使用SF符号SF Symbols在构建Swiftui项目时,如果是比较遵循Swiftui的结构,那么大家肯定都非常乐意使用Apple自带的SFsymbols图标。那么这个文章就是来介绍我是如何使用SFsymbols来构建我的应用的。
下载客户端你需要使用SFsymbols客户端来查看所有支持的图标,这是一种非常便捷的方式。并且因为你只需要在应用中访问,而不是网页,所以打开速度和性能非常棒。
下载客户端
安装完成我们就可以看到图标了
使用图标最简单的使用就是在Swiftui下使用systemName的Image。例如:
1Image(systemName: "star")
那么这个systemName是哪里来的呢
选择我们需要的图标,按下command+shift+c即可复制你选中的图标的名称。
版本适配我们需要注意,一些新的图标是不支持旧版系统的。所以当你使用iOS16专属图标时,在iOS15的设备上则什么都不显示。
所以你需要注意图标的版本问题。
展开检查器,我们可以看到单色图标的适配版本。
在文本中插入图标sfsymbol本身是字体图标,所以我们可以在文本中非常方便的插入图标。例如
1 ...
经验分享 未读
让网页支持iOS添加到主屏幕全屏应用,webapp启动图生成好久没有写魔改了,这次写一个提升网页体验的魔改教程吧!因为比较喜欢打开APP的感觉,但是为了博客做一个app显然是大材小用了。毕竟也不是社交媒体社区之类的。所以一个简单的类似应用内一样的app是最好的。看到了爱发电的iOS版本用的就是添加网页到桌面的方式,但是没开启pwa,所以我就尝试一下复刻。
这里展示的是Hexo的Butterfly主题的修改方法。其他网页的修改方法大同小异,无非是head标签里面添加一些meta和link代码。
至于为什么不用原生的PWA,主要还是bug太多了,要做的兼容性适配太多了。
废话不多说,我们开始吧!
修改head文件themes/butterfly/layout/includes/head.pug
1234567891011121314151617181920212223242526272829303132333435//- pwameta(name='apple-mobile-web-app-capable', content='yes')meta(name=' ...
我的项目 未读
如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要最近研究AI在博客和文章领域的应用,发现AI摘要是一个很不错的方向,研究了很久给搞出来了。在这篇文章中,我将帮助大家如何让你的博客接入TianliGPT。
访问项目Github仓库
随机访问已经支持TianliGPT的网站
效果预览
什么是TianliGPTTianliGPT是一个专业的文字摘要生成工具,你可以将需要提取摘要的文本内容发送给TianliGPT,稍等一会他就可以给你发送一个基于这段文本内容的摘要。
实时生成的摘要
自动生成,无需人工干预
一次生成,再次生成无需消耗key
包含文字审核过滤,适用于中国大陆
支持中国大陆访问
如何部署TianliGPT我们可以通过在网页中嵌入TianliGPT的服务支持,让TianliGPT能够获取到你需要提交的内容。
在博客靠后的位置位置引入js和css(需要在文章之后)
123456<link rel="stylesheet" href="https://cdn1.tianli0.top/gh/zhheo/Post-Abstract-AI@0.15.2/tianli_gpt.css"> ...
我的项目 未读
微信公众号静态单页 - 优雅的让用户关注你的公众号大多数站长其实比较喜欢在自己的页面上悬浮显示自己的公众号二维码,我其实一直对这种行为非常排斥。因为二维码这种东西在我看来并不好看。即使你做了美化,那结果其实就是屎上雕花而已。所以我从一开始设计关注公众号挂件时,就避免用户直接看到二维码。
那么如何才能显示二维码呢?一般来说,要么是通过鼠标hover悬浮,要么通过跳转。悬浮显示二维码很常见,但是对于移动端的适配很不友好。毕竟手机端根本没悬浮嘛。做兼容性做成点击也可以,就是麻烦。跳转可以说是最简单最容易生成的方法了。
之前是直接跳转一个二维码图片url,后来感觉这个方式太不优雅了,于是写了一个简单的html单页用来展示公众号关注二维码。
效果预览预览网站
就是非常简单的一个单页面,方便展示二维码。你可以通过修改代码和图片自定义你想要的信息。
开源仓库Wechat-Official-Account-Web
我的项目 未读
HeoMusic - 一个开源的基于Aplayer和MetingJS的静态音乐播放器看到安知鱼写的独立的音乐,感觉很不错,突发奇想想要给自己写一个音乐播放器,用于iPad挂墙上的时候放音乐显示歌词。虽然Apple Music的界面我非常喜欢,奈何中文曲库还有待完善。其他音乐app界面都太丑了,所以写了一个静态网页。
效果预览
HeoMusic - 用音乐感染人心
特性多设备兼容性支持
清晰的歌词展示
较好的性能
部署你可以直接fork或者下载HeoMusic仓库,然后直接上传到你的服务器或者使用vercel、githubpage等在线服务将仓库在线部署。这里不过多赘述。
基本操作Space空格键:暂停/播放音乐
上/下方向键:增加/减少音量
左/右方向键:上一曲/下一曲
修改歌单ID歌单的id,可以从音乐歌单分享的链接中获取,例如https://y.qq.com/n/ryqq/playlist/8668419170中,id为8668419170
Server歌单的服务商,例如netease(网易云音乐),tencent(腾讯),kugou(酷狗),xiami(小米音乐),baidu(百度音乐)
使用URL参数(推荐)HeoMusic支持U ...
经验分享 未读
网页H5字体文件只提取项目中用到的文字,大幅度压缩字体大小近期有个项目,我的设计稿中用到了一些宋体,但是作为移动端H5页面大多都只有系统默认的字体,偏黑体更多一些。但是纯黑体表现的更多是简洁、严肃、理性。但是如果想表达更加感性的东西时,我们可能更多的是需要宋体来突出文化底蕴。
虽然文字比较少,但是使用图片的方法一个是体积太大,一个是不容易编辑,再一个就是不清晰。
我这里使用的是font-spider来进行字体压缩。在此之前我也测试了一波fontmin等,很多都是兼容性较差,上古软件不适配新版字体。所以这个文章的方法是我目前用起来可用性最高的。
让第三方字体仅包含用到的文字,可以有效减少引入的字体大小。
安装font-spider使用终端(或者cmd)输入下面的代码回车
1npm install font-spider -g
创建一个html文件首先我们创建一个文件夹,里面要包含
一个空白html文件index.html
一个字体文件font.ttf
html文件中我们插入下面的代码
123456789101112131415<p>每日打卡活动须知赞助商积分排名精彩投稿领奖机构</p><style> @ ...
翻译内容 未读
如何让iOS应用支持更换图标,用户自定义应用图标功能开发之前给敲木鱼做的一个更换图标功能,其实做这个功能比我预想的简单多了,很多应用的付费功能都包含尊贵VIP图标等等。这个是我开发时看到的教程。翻译一下发上来,并且添加了一些坑的规避。帮助更多的开发者支持这个功能。
本文为转载文章,以下内容来源于
How to change your app icon dynamically with setAlternateIconName()
hackingwithswift
iOS为开发者提供了以编程方式改变其应用程序图标的能力,尽管需要花点功夫来设置。它也不像你希望的那样强大–例如,你不能重新创建时钟应用程序的移动指针。改变你的应用程序的图标的实际代码是微不足道的,但首先有一些设置工作,因为你必须在你的Info.plist文件中声明所有可能的图标。这背后的过程远非最佳,现在最好的做法是将你的Info.plist编辑成XML,而不是试图使用Xcode中的内置属性列表编辑器。
为了开始工作,我们 ...
经验分享 未读
Swift的User Defaults报错:Failed to read values in CFPrefsPlistSource解决方法近期每次运行都发现报错,找了好久找到了方法。不过根据这个方法改完之后还需要自己迁移一下User Defaults的group地址中的数据。否则老用户打开直接就没数据。
错误提示1[User Defaults] Failed to read values in CFPrefsPlistSource<0x1700f1280> (Domain: group.x.p.t.o, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null)): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd
解决方法在我们的appgroup地址填写规范时,只填写了group.com.***.***这种形式,但是这种形式我们其实是不允许使用的。我们正确的格式应该是teamid.group.com.***.***
所以只要更改自己appgroup的变量地址即可消除这个报错。
查询自 ...
转载内容 未读
Xcode的Swift添加注释方法,添加注释、标记弃用、标记改名、编写代码文档一直以来我只是用双斜杠进行注释,但是我发现Xocode官方会有专门的注释,按option点击就会出现相关的注释内容。研究了一下发现Swift的注释非常强大。
本文为转载文章,以下内容来源于
Xcode 中的 Swift 代码注释
Wei_You
前言写代码也有一段时间了,代码中注释也是写了不老少,但在和同事一起开发的时候才发现了问题,大家注释的样子各成一体,没有能写出苹果官方注释的样子。大概就是注释的语法上出了问题,于是自己就主动学习了下 Swift代码的注释语法格式,记录下自己学到的东西。
注释语法单行注释1// 单行注释
单行注释主要出现在. swfit 文件的顶部,记录代码文件的一些信息。
另外也出现在代码中,用于记录对于单行代码的解释。
单行文档注释1/// 单行文档注释
当我们用 ⌥ + 鼠标左键,点击代码时,可以查看属性或者方法的文档页面,更直观的查看代码的文档说明。
多数时候,我们都在使用这个方法注释类, ...
我的项目 未读
如何下载APP的高清图标?在互联网行业做汇报、调研不可避免的要下载各种各样的APP图标,那么有什么方法可以快速下载图标呢?
在搜索的时候发现一个上古项目,八年前的老项目了:icon-finder,意外发现这个老项目竟然还可以用。
但是作者自己的页面没标题也没https,毕竟是开源项目,我就直接拿过来部署在自己服务器上了,运行能快一点。
博主部署站
开发者原站
以上两个均可使用。不过「博主部署站」未来可能再魔改加些东西(又挖坑)。
网站预览直接右键单击复制图片即可粘贴到PPT或者keynote中。
免费无广告部署上了,有需要的可以点个收藏。
经验分享 未读
SwiftUI让应用支持从第三方app中打开文件,让自己的应用添加到分享表单中敲木鱼的创意工坊功能已经支持了导入文件的方法,但是导入文件对于有Mac的小伙伴比较方便,隔空投送保存在文件app,然后再导入。但是对于只有手机的用户来说着实是太费劲了。
那么如果支持通过第三方app导入例如微信、网盘自带的「使用第三方应用打开」直接打开音频文件可就方便太多了。
配置info文件首先就是需要CFBundleDocumentTypes,可以参考文章iOS 从其他App获取文件
配置文件打开类型是原地打开还是拷贝到app中打开
配置LSSupportsOpeningDocumentsInPlace,YES为原地打开
接收URL应用启动后可以通过swiftui的onOpenURL来获取链接
1234ContentView() .openURL {url in //这里就是获取文件地址之后的动作 }
大功告成!仅仅三步即可实现导入文件。
经验分享 未读
Xcode和Appstore应用语言显示英文解决方法,如何把应用语言设置成中文删除英文群里有小伙伴问他的应用只用中文开发,但是在Appstore上只显示英文,想要把Appstore上的语言展示换成中文。
在Xcode中,如果你从未配置过语言,那么默认你的软件语言就是英文。
【此教程只为为了删除英文而使用中文的小伙伴准备的,其他需求请自行融会贯通】
需求位置
添加中文语言在项目里添加中文
修改开发语言进入访达,显示包内容
使用vscode(或其他文本编辑软件)打开project.pbxproj
搜索region
将developmentRegion对应的en改成zh-Hans
回到项目里删除英文
大功告成现在你的应用就只显示中文了!
我的项目 未读
Mac获取QQ音乐封面快捷指令,快速获取QQ音乐歌曲高清封面图之前出了个python的,但是最近将utools换成hapigo导致不能运行python脚本,但是hapigo支持快捷指令,那么我就直接写个快捷指令获取封面图算了。手机端暂时没有获取封面的需求,暂时就写Mac版的吧。
仅Mac可用
预览
快捷指令地址立即获取
我的项目 未读
友链朋友圈5 - 我的部署历程与主题样式分享友链朋友圈已经是一个历史悠久的项目了,这次yyyz开发了全新版本为这个老项目焕发生机。
部署项目我个人用的方案是:Docker+Sqlite
使用这个方案你需要一个服务器。没有服务器的小伙伴请看更多部署方式。
预览我的部署效果
后端部署后端部署非常容易。你需要有python3.8即以上和机器安装docker,之后的部分按照文档中来就可以。
首先进入宝塔新建一个网站,然后在进ssh,cd进网站目录中,例如我的文件地址是/www/wwwroot/moments.zhheo.com我就在ssh中输入:
1cd /www/wwwroot/moments.zhheo.com
然后下载仓库:
1git clone https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
如果你的服务器无法直连GitHub,那就需要手动去GitHub下载文件,然后将压缩包放在网站目录中,点击解压。
然后进入解压后的文件夹
1cd /www/wwwroot/ ...
经验分享 未读
解决AppClip开发遇到的app identifiers问题在尝试上架AppClip的时候发现这是从未踏足过的新领域,全都是深渊巨坑。创建测试一切都好,就在上传的时候遇到非常坑的提示。
1234App Store Connect Operation ErrorMissing entitlement. This app contains an app clip. The entitlement'com.apple.developer.associated-appclip-app-identifiers' should be present and include thevalue of the app clip's application identifier.
这是个Xcode的问题,但是我们只能自己来解决。
成功解决
问题原因这个问题原因是Xcode为Clip应用创建了一个com.apple.developer.parent-application-identifiers,但是很不负责任的没有给你的iOS主程序添加相关的授权。
授权为:com.apple.developer.associated-appclip- ...