VSCode上的iOS开发

Using an IDE other than Xcode for iOS development until recently was a rather lonely path. This however tends to change with recent developments in the Apple ecosystem. Swift runs officially on Linux, Windows, AWS lambda, docker, and other places where you wouldn’t expect to find a programming language made by Apple.

直到*近,使用Xcode以外的IDE进行iOS开发都是一条很孤独的道路。 但是,随着Apple生态系统的*新发展,这种趋势往往会改变。 Swift可以在Linux,Windows,AWS lambda,docker和其他您不希望找到Apple编写的编程语言的地方正式运行。

Apple also wants to enable Swift to be a first-class citizen in 3rd party IDEs providing error reporting and code auto-completion. For that reason, they are developing SourceKit-LSP with plugins ready for popular IDEs such as Visual Studio Code (aka VSCode).

苹果还希望让Swift成为第三方IDE中的一等公民,从而提供错误报告和代码自动完成功能。 出于这个原因,他们正在开发SourceKit-LSP ,其插件可用于流行的IDE,例如Visual Studio Code(又名VSCode)。

Why would you want to use an IDE other than Xcode? Well, Xcode is not available on Linux or Windows in the first place. But even when being on a Mac, VSCode offers several nice features among of them a killer one called Live Share that allows 2 or more developers to collaborate remotely on the same file with live code co-editing. You can think of it as Google Docs for code.

为什么要使用Xcode以外的IDE? 好吧,首先,Xcode在LinuxWindows上不可用。 但是,即使在Mac上,VSCode也提供了许多不错的功能,其中一个杀手级功能称为Live Share ,它允许2个或更多开发人员通过实时代码共同编辑在同一文件上进行远程协作。 您可以将其视为Google Docs代码。

In the days of post-Covid and home office this feature is a real life saver and makes a developer’s life so much easier either if you want to do pair programming or briefly explain and get assistance on a certain task.

在Covid发布后和家庭办公室时代,此功能可为您节省大量时间,如果您想进行配对编程或简要地解释并获得特定任务的帮助,则使开发人员的生活变得更加轻松。

If you try to use Swift in VSCode you will get something like that:

如果您尝试在VSCode中使用Swift,则会得到类似以下内容:

Auto-completion does not work as expected
自动补全无法按预期工作

The steps needed to enable VSCode for iOS development are basically 3:

启用VSCode进行iOS开发所需的步骤基本上是3:

  • Enable Swift language support启用S​​wift语言支持
  • Add iOS framework support添加iOS框架支持
  • Add “app” target support添加“应用”目标支持

Since this guide focuses on iOS and this is currently possible only with a Mac for the rest of the guide we will assume we are running on a Mac. Otherwise you can go as far a step 1.

由于本指南着重于iOS,因此本指南的其余部分目前仅适用于Mac,因此我们假定我们在Mac上运行。 否则,您可以继续执行步骤1。

启用S​​wift语言支持 (Enable Swift language support)

Make sure you have Xcode and VSCode installed. This is the easiest way to hit the ground running since sourcekit-lsp comes prebundled with Xcode. Open a terminal and run:

确保已安装Xcode和VSCode。 由于sourcekit-lsp与Xcode捆绑在一起,因此这是*简单的运行方法。 打开一个终端并运行:

$ xcrun sourcekit-lsp

Assuming that you don’t see any output this is normal and means it works as expected. Hit Ctrl+C to end the process.

假设您没有看到任何输出,这是正常现象,意味着它可以正常工作。 按Ctrl + C结束该过程。

构建SourceKit-LSP扩展 (Build the SourceKit-LSP extension)

Now it is time to build the SourceKit-LSP extension. There is an unofficial SourceKit-LSP — Unofficial CI build but this did not work for me. Building it from source is not that hard. Just make sure you have node.js installed and then run:

现在该构建SourceKit-LSP扩展了。 有一个非官方的SourceKit-LSP —非官方的CI版本,但这对我不起作用。 从源代码构建它并不难。 只要确保您已安装node.js ,然后运行:

$ git clone https://github.com/apple/sourcekit-lsp.git
$ cd sourcekit-lsp/Editors/vscode/
$ npm run createDevPackage
$ code --install-extension out/sourcekit-lsp-vscode-dev.vsix

After that restart VSCode.

之后,重新启动VSCode。

Contrary to what you might read elsewhere you don’t need to edit the source code of the extension at all.

与您在其他地方可能会读到的内容相反,您根本不需要编辑扩展程序的源代码。

If you try to open a Swift file now you will get an error

如果您现在尝试打开Swift文件,将会收到错误消息

The plugin can’t locate SourceKit-LSP’s location
插件找不到SourceKit-LSP的位置

配置扩展 (Configure the extension)

You need to let the plugin know the location of the sourcekit-lsp executable. Open settings.json from VSCode using Cmd+Shift+P and enter “Preferences: Open Settings (JSON)”.

您需要让插件知道sourcekit-lsp可执行文件的位置 使用Cmd + Shift + P从VSCode打开settings.json ,然后输入“首选项:打开设置(JSON)”。

Insert this JSON as the last entry in the existing JSON. Remember to add a comma in the previous line.

将此JSON作为现有JSON中的*后一个条目插入。 请记住在前一行添加逗号。

"sourcekit-lsp.serverPath": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"

添加iOS框架支持 (Add iOS framework support)

What is we achieved so far is to enable Swift development but VSCode has no idea about iOS frameworks. If you try to import UIKit you will get an error.

到目前为止,我们要做的是启用Swift开发,但是VSCode对iOS框架一无所知。 如果尝试导入UIKit,将会收到错误消息。

The UIKit framework is not recognized
无法识别UIKit框架

Insert this JSON in settings.json. You might need to update the x86_64-apple-ios13.6-simulator line based on the current version that you have installed.

将此JSON插入settings.json中 。 您可能需要根据已安装的当前版本更新x86_64-apple-ios13.6-simulator行。

"sourcekit-lsp.serverArguments": ["-Xswiftc","-sdk","-Xswiftc","/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk","-Xswiftc","-target","-Xswiftc","x86_64-apple-ios13.6-simulator",],

This will work for Swift packages that reference iOS frameworks like UIKit.

这将适用于引用iOS框架(如UIKit)的Swift软件包。

添加“应用”目标支持 (Add “app” target support)

So far we added iOS support but only for Swift packages. What if you want to work on a typical app target. Trying to open the root folder gives this error:

到目前为止,我们添加了iOS支持,但仅支持Swift软件包。 如果您想处理典型的应用目标该怎么办。 尝试打开根文件夹会出现以下错误:

SourceKit-LSP is looking for a Swift package manifest file
SourceKit-LSP正在寻找Swift软件包清单文件

What if you want to work on an iOS app and not on a Swift Package? SourceKit-LSP always looks for a package.json in root folder assuming that it always deals with a Swift package. An iOS app is not a Swift package and for that reason we need to trick SourceKit-LSP by adding a dummy Package.swift. Add this file to the root of your project (same level as .xcodeproj)

如果您想在iOS应用而不是Swift包上工作怎么办? 假设SourceKit-LSP始终处理Swift包,则它总是在根文件夹中寻找package.json。 iOS应用程序不是Swift包,因此,我们需要通过添加虚拟Package.swift来欺骗SourceKit-LSP  将此文件添加到项目的根目录 (与.xcodeproj相同的级别)

// swift-tools-version:5.2
import PackageDescriptionlet packageName = "PROJECT_NAME" // <-- Change this to yourslet package = Package(
  name: "",
  // platforms: [.iOS("9.0")],
  products: [
    .library(name: packageName, targets: [packageName])
  ],
  targets: [
    .target(
      name: packageName,
      path: packageName
    )
  ]
)

Don’t forget to set packageName to your own one.

不要忘记将packageName设置为您自己的。

Double check the location of the file
仔细检查文件的位置

Restart VSCode one last time and voila! Proper UIKit auto-completion

*后一次重新启动VSCode,瞧! 正确的UIKit自动完成

黑苹果登录apple id_充分利用Apple登录功能

黑苹果登录apple id

充分利用Apple登录功能 (Get the most out of Sign in with Apple)

?WWDC2020 | Session : 10173 | Category : Privacy and Security

?WWDC2020| 会议:10173 | 分类:隐私和安全

https://developer.apple.com/videos/play/wwdc2020/10173/

?https ://developer.apple.com/videos/play/wwdc2020/10173/

? Sign in with Apple makes it easy for people to sign in to your apps and websites with the Apple ID they already have. Fully integrate Sign in with Apple into your app using secure requests, and by handling state changes and server notifications. We’ll also introduce new APIs that allow you to let existing users switch to Sign in with Apple quickly and easily.

with使用Apple登录可以使人们轻松使用已有的Apple ID登录您的应用和网站。 使用安全请求以及处理状态更改和服务器通知,将Apple登录完全集成到您的应用程序中。 我们还将引入新的API,使您可以让现有用户快速,轻松地切换为使用Apple登录。

Related : Introducing Sign In with Apple — WWDC19 (Introducing Sign In with Apple)

相关:与Apple一起 介绍登录 — WWDC19(与Apple一起 介绍登录 )

创建安全请求 ( Creating a secure request)

These nonce and state properties will allow you to verify that the authorization and credential you get after executing a request are the ones you were expecting.

这些noncestate属性将使您能够验证执行请求后获得的授权和凭据是否与预期的一样。

确保您的请求 (Securing your request)

随机数 (Nonce)

The nonce is an opaque blob of data sent as a string in the request.

随机数是在请求中作为字符串发送的不透明数据块。

It is important to generate one unique nonce every time you create a new request as later on you will be able to verify this value.

每次创建新请求时都必须生成一个唯一的随机数,这一点很重要,稍后您便可以验证该值。

This will allow you to verify this value in your server, helping prevent replay attacks.

这将使您能够在服务器中验证此值,从而有助于防止重放攻击。

州 (State)

The state value is also an opaque blob of data sent with the request.

状态值也是随请求发送的不透明数据块。

Once key difference he has with the nonce value is that the state will be returned in the credential allowing you to locally match a credential to a request and verify this was generated from your application.

一旦他与nonce值的关键区别在于,将在凭证中返回状态,从而使您可以将凭证与请求本地匹配,并验证该凭证是从应用程序生成的。

响应私人电子邮件中继 (Response Private email relay)

Example on how to get a credential from an authorization

有关如何从授权中获取凭证的示例

Inside of credential you will find properties containing the user information that you requested like name and email. You will also find important properties that will allow you to securely verify the request and create a session with your servers.

在凭证内部,您将找到包含您要求的用户信息(例如名称和电子邮件)的属性。 您还将找到重要的属性,这些属性将使您可以安全地验证请求并与服务器建立会话。

验证凭证 (Verifying Credentials)

响应 (Response)

  • Cache the objects locally It is important to cache the objects you need in case of the failure communicating with your server due to poor connectivity.在本地缓存对象重要的是,在由于连接不良而无法与服务器通信的情况下,缓存所需的对象非常重要。
  • Verify the state value Make sure you verify the state value of the credential to be the same state value you previously generated.验证状态值确保验证证书的状态值与先前生成的状态值相同。
  • Validate the information with Apple The response contains an authorization code an identity token. Send these values to your server where they can be decoded. Once decoded, verify the received information as well as session with Apple servers.使用Apple验证信息响应包含授权码和身份令牌。 将这些值发送到可以对其进行解码的服务器。 解码后,验证接收到的信息以及与Apple服务器的会话。

How will the entry token will look when decoded by your server

当服务器解码时,入口令牌的外观如何

  • subject : A user identified that was returned to you on the authorization and will allow to create a session in your servers.

    subject :根据授权返回给您的用户标识,将允许您在服务器中创建会话。

  • nonce : Verify these to be the same nonce you generated previously in the request. This will allow you to verify the authenticity of the authorization and help mitigate replay attacks.

    nonce :验证它们是否与您先前在请求中生成的随机数相同。 这将使您可以验证授权的真实性,并有助于减轻重放攻击。

  • real_user_status : 0 – unsupported, 1 – unknown, 2 – likely real

    real_user_status :0-不支持,1-未知,2-可能为实

身份令牌和授权码 (Identity token and authorization code)

You can exchange the authorization code with the Apple ID servers. And when this is successful you will receive a refreshed token and an access token for future calls as well as a new identity token that should be identical to the one you already have.

您可以与Apple ID服务器交换授权码。 成功完成后,您将收到刷新的令牌和用于将来呼叫的访问令牌,以及一个新的身份令牌,该令牌应与您已经拥有的令牌相同。

You may verify a refresh token once a day to confirm that the user’s Apple ID on that device is still in good standing.

您可以每天验证一次刷新令牌,以确认该设备上用户的Apple ID仍处于良好状态。

凭证状态变更 ( Credential state changes)

getCredentialState API allows you to verify the current state of a credential by sending the currently stored user identifier.

getCredentialState API,您可以通过发送当前存储的用户标识符来验证凭据的当前状态。

It is important that this method is called every time your application is launched or changes to the foreground. That way you will be able to react on time to any changes in status and present the appropriate scheme in your application to your user.

每次启动应用程序或更改到前台时都必须调用此方法,这一点很重要。 这样,您将能够及时对状态的任何变化做出React,并在应用程序中向用户提供适当的方案。

  • .authorized : You can fast track the user directly to your application and skip the login UI.

    .authorized :您可以直接将用户快速跟踪到您的应用程序,并跳过登录UI。

  • .revoked : The user decided to sign out of your application. In this scenario you should sign the user out of your application. Close your session and present the login screen

    .revoked :用户决定退出您的应用程序。 在这种情况下,您应该使用户退出您的应用程序。 关闭会话并显示登录屏幕

  • .notFound : This will be returned when there was no credential matching the user identifier. Present a login screen so that the user can authenticate your application.

    .notFound :当没有与用户标识符匹配的凭证时,将返回此值。 显示一个登录屏幕,以便用户可以验证您的应用程序。

  • .transferred

    ?。已.transferred

?转移状态 (? Transferred State)

  • Ownership changed This will only be received by application that recently were transferred from one development team to another. (ex. after a company’s acquired)所有权已更改这只会由*近从一个开发团队转移到另一个开发团队的应用程序接收。 (例如,公司被收购后)
  • User migration needed User identifiers are unique to a team. So when transferring ownership of an application, the existing user will need to be migrated to a new user identifier to match the new team.需要用户迁移用户标识符对于团队是唯一的。 因此,在转让应用程序所有权时,需要将现有用户迁移到新的用户标识符以匹配新团队。
  • Silent migration This migration is handled silently. This is without any user interaction and can be triggered calling the same API used to create a new account or logging the user.静默迁移静默处理此迁移。 这没有任何用户交互,可以通过调用用于创建新帐户的相同API或记录用户来触发。

We can validate the transfer state of the user and generate the new user identifier that will match the new team.

我们可以验证用户的转移状态,并生成与新团队匹配的新用户标识符。

服务器通知 ( Server notifications)

?服务器到服务器开发人员通知 (? Server to server developer notifications)

Listening to these notifications will allow you to monitor things like credential state changes right from your server as well as receive other types of events.

侦听这些通知将使您可以直接从服务器监视诸如凭证状态更改之类的事情,并接收其他类型的事件。

  • Register You have to register your server endpoint on the Apple developer’s website.注册您必须在Apple开发人员的网站上注册服务器端点。
  • JWT Event Events will be sent as JSON web tokens signed by Apple.JWT事件事件将作为Apple签名的JSON网络令牌发送。

The email-disabled event which you can get if a user has decided to stop receiving emails on their email relay. The email enabled event means that the user opted back into receiving email messages.

email-disabled事件,如果用户决定停止在其电子邮件中继上接收电子邮件,则可以获取该事件。 启用电子邮件的事件意味着用户选择重新接收电子邮件。

It is important to note that this event as well as the email disabled will only be sent when the user previously decided to use a private email relay for their account.

重要的是要注意,仅当用户先前决定对其帐户使用私人电子邮件中继时,才会发送此事件以及禁用的电子邮件。

The consent-revoked event will be sent to you when a user decided to stop using their AppleID with your application and should be treated as a sign out by the user.

当用户决定停止在您的应用程序中使用其AppleID时,将consent-revoked您的consent-revoked事件,该事件应被用户视为退出。

with使用Apple Button登录 ( Sign in with Apple Button)

?Swift UI支持 (? Swift UI support)

onRequest : This is the right place to add the requested scopes like name and email and the nonce state values.

onRequest :这里是添加请求的范围(如名称和电子邮件以及现时状态值)的正确位置。

onCompletion : We will get the result of the request and handle the success or failure cases just as you would on the delegate methods for the authorization controller.

onCompletion :我们将获得请求的结果并处理成功或失败的情况,就像在授权控制器的委托方法上一样。

.signInWithAppleButtonStyle : We can also select the Button style.

.signInWithAppleButtonStyle :我们还可以选择Button样式。

款式 (Styles)

  • Black黑色
  • White白色
  • White outline白色轮廓

If you need to personalize the Sign in with Apple Button more to match the specific design of your website or application → a new online portal

如果您需要更多个性化使用Apple Button登录以匹配您的网站或应用程序的特定设计→一个新的在线门户

?在线按钮编辑器 (? Online Button editor)

https://appleid.apple.com/signinwithapple/button

https://appleid.apple.com/signinwithapple/button

?升级以使用Apple登录 ( ? Upgrading to Sign in with Apple)

What about users that are already using a traditional username and password based account and don’t want to fork their current account?

对于已经使用传统的基于用户名和密码的帐户并且不想分叉当前帐户的用户呢?

  • Secure It’s secure for both you and your users. Upgrading to Sign in with Apple is the easiest way to convert your accounts to two factor authentication.安全它对您和您的用户都是安全的。 升级到Apple登录是将帐户转换为两因素身份验证的*简单方法。
  • Reduce complexity Account recovery is also a lot less complicated with Sign in with Apple.降低复杂性使用Apple登录可以使帐户恢复变得简单得多。
  • Prevent duplicate accounts Utilizing this API will prevent the duplication of accounts.防止帐户重复使用此API将防止帐户重复。

→ Users that are already using a traditional username and password based account won’t abandon their current account, they can just upgrade.

→已经在使用传统的基于用户名和密码的帐户的用户不会放弃其当前帐户,而只需升级即可。

总览 (Overview)

One Tap Account Security Upgrades — WWDC20

一键式帐户安全性升级— WWDC20

三种升级流程 (Three flow for upgrades)

  1. When security recommendations identifies a weak credential in the new password manager and settings.当安全建议确定新密码管理器和设置中的弱证书时。
  2. When a user is interacting with your app utilizes password autofill and the selected credential is a weak credential.当用户与您的应用进行交互时,会使用密码自动填充功能,并且所选凭据是弱凭据。
  3. When you invoke the new authentication services API via a user interaction that you specify within your app通过您在应用程序中指定的用户交互调用新的身份验证服务API时

ASAccountAuthenticationModificationViewController (ASAccountAuthenticationModificationViewController)

  • convertAccountsToSignInWithAppleWithoutUserInteraction : Called initially by the extension hosting process in an attempt to upgrade the credential without user interaction.

    convertAccountsToSignInWithAppleWithoutUserInteraction :*初由扩展托管进程调用,以尝试在没有用户交互的情况下升级凭据。

  • viewDidLoad : This can be used to set up an intermediary user interface for the security step of flow if necessary. Providing intermediary UI to indicate progress might help provide the best user experience.

    viewDidLoad :如有必要,可用于为流程的安全步骤设置中间用户界面。 提供中间UI来指示进度可能有助于提供*佳的用户体验。

  • prepareInterfaceToConvertAccountToSignInWithApple : This is called just prior to your view appearing. It gets past the same ASPasswordCredential provided is a non user interaction flow.

    prepareInterfaceToConvertAccountToSignInWithApple :这在您的视图出现之前被调用。 它超越了非用户交互流所提供的相同的ASPasswordCredential。

扩展上下文 (Extension context)

  • ASAccountAuthenticationModificationViewController Used to control the flow of the upgrade.ASAccountAuthenticationModificationViewController用于控制升级流程。
  • Authorization It has function to request Sign in with Apple authorization.授权具有请求使用Apple授权登录的功能。
  • Request UI If you’re evaluating the credential or currently signed in account and determined that additional UI is needed to verify the account the extension context is used to request that the step up security UI is displayed.请求用户界面如果您正在评估凭据或当前已登录帐户,并且确定需要其他用户界面来验证该帐户,则扩展上下文用于请求显示安全性提升用户界面。
  • Complete This removes the existing credential.完成这将删除现有的凭证。
  • Cancel The extension context is also used in cases which you need to cancel the flow entirely.取消扩展上下文还用于需要完全取消流的情况。
  • getSignInWithAppleAuthorizationWithState : Displays the Sign in with Apple UI with your apps information asking the user to authorize the upgrade. Request in upgrade flows nonce and state is passed as a parameter to this call.

    getSignInWithAppleAuthorizationWithState :显示带有Apple UI的登录以及您的应用程序信息,要求用户授权升级。 升级中的请求流nonce , state作为参数传递给此调用。

  • completeUpgradeToSignInWithApple : This lets the extension hosting process know that authorization completed successfully resulting in the removal of the password credential.

    completeUpgradeToSignInWithApple :这使扩展托管过程知道授权已成功完成,从而删除了密码凭证。

  • cancelRequest

    cancelRequest

  • userInteractionRequired : If your extension determines that additional UI needs to be shown to the user.

    userInteractionRequired :如果扩展程序确定需要向用户显示其他UI。

  • userCanceled : If your canceled while within your UI flow utilize that user cancelled ever.

    userCanceled :如果您在用户界面流中被取消,则使用该用户被取消。

  • failed : All other failures can use the failed error.

    failed :所有其他失败都可以使用失败的错误。

帐户身份验证修改扩展 (Account authentication modification extension)

准备在没有UI的情况下进行转换 (Prepare to convert without UI)

  1. We begin the flow in the OS when toe user interacts with a weak credential and wants to upgrade that credential to Sign in with Apple.当用户与弱证书交互并想要升级该证书以使用Apple登录时,我们便开始在OS中进行操作。
  2. Your account modification extension is initialized by the password managing process.您的帐户修改扩展名由密码管理过程初始化。
  3. And the convert without UI function is called providing the password credential intended to be upgraded to Sign in with Apple.无需用户界面的转换功能称为提供旨在升级为使用Apple登录的密码凭证。
  4. The extension’s job is to evaluate the past credential to make sure it is valid prior to upgrading to Sign n with Apple (At this point checking too see if the username matches the currently signed in user is a good first course of action.)扩展程序的工作是评估过去的凭据,以确保它在使用Apple升级到Sign n之前是有效的(此时,也请检查用户名是否与当前登录的用户匹配是否是很好的*步。)
  5. The extension determined that the state of the signed in user and the pass credential requires a call to the server to verify the account.该扩展插件确定已登录用户的状态和传递凭据需要调用服务器以验证帐户。
  6. The server verifies the credential and the authentication is a success.服务器验证凭据,并且身份验证成功。
  7. The server then replies back to the extension confirming that the account is ready to be upgraded to Sign in with Apple.然后,服务器回复该扩展,以确认该帐户已准备好升级为使用Apple登录。
  8. The account is confirmed as authenticated and eligible for upgrade the extension context would be used to request the Apple ID credential.该帐户被确认为已认证并且符合升级条件,扩展上下文将用于请求Apple ID凭据。

What would happen if there’s an issue with the account preventing an immediate upgrade?

如果帐户出现问题,无法立即升级,该怎么办

  1. Flow begins when the user interacts with a weak credential and wants to upgrade that credential.当用户与弱凭证交互并想要升级该凭证时,流程开始。
  2. Your account modification extension is then initialized by the password managing process.然后,您的帐户修改扩展名将由密码管理过程初始化。
  3. Then the prepare to convert without UI function is called with the password credential.然后,使用密码凭证调用没有UI功能的准备转换。
  4. The credential are then verified by the extension.然后,该凭证由扩展名验证。
  5. The extension calls it verify credential function which results in a call today extensions back end to validate the credential.该扩展调用它的验证凭证功能,导致今天调用扩展后端来验证凭证。
  6. The server will attempt to verify the account with the request.服务器将尝试使用请求验证帐户。
  7. Sever determines that this account needs additional verification.服务器确定该帐户需要其他验证。
  8. That reply comes back to the extension and the verified credential function evaluates this as a twoFactorAuthRequired.

    该答复返回到扩展名,并且已验证的凭证函数将其评估为twoFactorAuthRequired 。

  9. This case is handled by using the extension context to call cancel with error with the user interaction required error.通过使用扩展上下文来调用带错误的cancel并处理用户交互所需的错误,可以解决这种情况。

verifyCredential→ When the existing credential is verified one of these three values would get returned.

verifyCredential →验证现有凭据后,将返回这三个值之一。

  • .failure : Result for cases such as when the server attempts to validate the credential but the account or service date is not appropriate for converting the account at that time.

    .failure :某些情况下的结果,例如服务器尝试验证凭据,但该帐户或服务日期不适合当时转换该帐户。

  • .success : This indicates that the account is ready to be converted right away.

    .success :这表示该帐户已准备好立即转换。

  • .twoFactorAuthRequired : This means that we need to show some UI to the user. The credential alone is not enough to upgrade.

    .twoFactorAuthRequired :这意味着我们需要向用户显示一些UI。 仅凭证书不足以升级。

仅在需要时请求用户界面 (Request UI only if needed)

To avoid users having to do extra work in most cases where a user is already authenticated in your app.

为了避免用户在大多数情况下已经在您的应用中通过身份验证的用户做额外的工作。

使用UI转换 (Converting with UI)

There could be circumstances where UI flows might be warranted.

在某些情况下,可能需要确保UI流动。

  1. After the extension contacts cancelled with the user interaction required error, the password managing process initializes a new instance of the account modification view controller在分机联系人因用户交互所需的错误而取消后,密码管理过程将初始化帐户修改视图控制器的新实例
  2. And calls it prepared to convert with your function. Passing the ASPasswordCredential. (At this point, the extension’s ViewController is presented providing Intermediary UI such as a spinning gear.)并调用它准备好与您的函数进行转换。 传递ASPasswordCredential。 (此时,提供了扩展程序的ViewController,提供了中间UI(如旋转齿轮)。)
  3. Utilizing the same credentials as earlier with perhaps a slight change of context a request is made to the back end.使用与先前相同的凭据,但可能会稍微改变上下文,从而向后端发出请求。
  4. The server attempts to verify the account. Requires two F.A and sends a rely back to the extension.服务器尝试验证帐户。 需要两个FA,并将依赖项发送回扩展。
  5. The extension updates the view asking the user for two factor authentication.该扩展程序更新了视图,要求用户进行两因素验证。
  6. The user provides the verification code which the extension would then verify.用户提供扩展名随后将验证的验证码。
  7. If the user could not be verified at this point, the extension context would be used to cancel the flow with the failed error.如果此时无法验证用户,则将使用扩展上下文来取消带有失败错误的流。
  8. If the user provide a valid code and verification is a success, the extension is now ready to request the AppleID credential.如果用户提供了有效的代码并且验证成功,则该扩展现在可以请求AppleID凭据了。

升级帐号 (Upgrading account)

  1. It is important to secure your request, to do so your extension would generate a state and nonce and pass them as parameters for the getAppleIDCredential call.保护您的请求很重要,这样做扩展将生成状态和随机数并将其作为参数传递给getAppleIDCredential调用。
  2. This results in an upgrade to Sign in with Apple UI being displayed to the user.这导致向用户显示使用Apple UI登录的升级。
  3. The user then authorizes using Face ID.然后,用户授权使用人脸ID。
  4. The AppleIDCredential is provided to the extension in the completion block of the getAppleIDCredential call.AppleIDCredential在getAppleIDCredential调用的完成块中提供给扩展。
  5. The extension would then verify the credentials stay properly as being the same generated earlier.然后,扩展名将验证凭据是否与之前生成的凭据保持一致。
  6. The extension would them request an upgrade of the account providing the necessary account information and the AppleIDCredential to the server back end, so the account can be converted.该扩展将要求他们升级帐户,以向服务器后端提供必要的帐户信息和AppleIDCredential,以便可以转换帐户。
  7. The back end would then exchange the authorization code with Apple servers verifying the value of the nonce in the identity token.然后,后端将与Apple服务器交换授权码,以验证身份令牌中随机数的值。
  8. And if successful perform a conversion of the account.如果成功执行帐户转换。
  9. After converting, it sends a reply back with a success value. It is important to note again that if the servers operation failed the extension contact should be used to call cancel with error with the failed error.转换后,它会发送带有成功值的回复。 再次重要的是要注意,如果服务器操作失败,则扩展联系人应用于调用带错误错误的带错误的取消。
  10. This time the server is indicating success. So the extension will perform any required bookkeeping and then call a complete upgrade to Sign in with Apple on the extension context.这次服务器指示成功。 因此,扩展程序将执行所有必需的簿记工作,然后调用完整的升级以在扩展程序上下文中与Apple登录。
  11. This result in the password manager removing the existing credential and with that the flow is completed.这导致密码管理器删除了现有的凭证,从而完成了流程。

Utilizing this API →

使用此API→

  • Improving user security改善用户安全性
  • Avoid confusion避免混乱
  • Convenient方便

ᵗʱᵃᵑᵏઽ ⠒̫⃝♡

⠒̫⃝ᵗʱᵃᵑᵏઽ♡

大家开始使用公司配发的 Apple M1 做开发了吗,有什么兼容性问题吗?

新公司( A 轮创业公司)下月即将入职(阿里云 /GCP 上的 SaaS DevOps ),看同事们用的都是 Macbook Pro 。

于是我给 manager 提前写了邮件想申请 Apple M1 (13-inch, M1, 2020 ),主要对比了跟 16 寸 Macbook Pro 的价格,但是也忘记提兼容性的问题了。

一开始回复的我没有问题,过了一会儿又回复了我一封,说

因为公司其他人都是用的 Intel 的,你选的是 ARM 架构的,架构不一样,所有的底层工具要用的库都会不一样,这样你自己的工作会很麻烦,也会出现一个 script 在其他人那里跑的通,自己这里跑不通的麻烦,所以我还是建议你用 13 寸的 Intel 芯片的 Macbook Pro

我倒是不太担心兼容性的问题,听朋友们说 bug 修的很快,开源社区的兼容性也很快,我觉得作为公司*个吃螃蟹的人问题不大。 但从 manager 的角度,肯定求稳。

求问大家怎么看?

34 条回复    2021-04-04 18:14:20 +08:00
wipbssldo
    1

wipbssldo   3 天前   ❤️ 8

听 manager 的
hccsoul
    2

hccsoul   3 天前   ❤️ 3

自己玩玩随便你怎么玩。但是公司大家一起做的开发的兼容性很重要 建议随大流
Mitt
    3

Mitt   3 天前

建议 16 寸 intel,13 寸搞开发有点扯淡
gxy2825
    4

gxy2825   3 天前

你可以调研一下公司开发中要用到的各种工具目前在 m1 上的兼容性,用事实说服 manager
okletswin
    5

okletswin   3 天前   ❤️ 1

自己回家折腾用 M1 公司办公用统一的
comlewin
    6

comlewin   3 天前

你搞技术的,manager 说的库和脚本很现实,半天搞不定怎么弄……
13 寸 intel *近涨价了,16 一直很稳
felixcode
    7

felixcode   3 天前 via Android   ❤️ 2

你跟其它人跑出来的结果不一样的时候,你就告诉他们 m1 更先进。
CoCoMcRee
    8

CoCoMcRee   3 天前   ❤️ 1

iOS 技术栈
前端技术栈
python 技术栈
以上三个是我在 M1 上干活用过的, 毫无问题. Docker 也照样跑.

但是安卓技术栈就不太行….可能后续会支持吧.

daveh
    9

daveh   3 天前 via iPhone

能自己搞定兼容性问题,就 M1,搞不定就随大流。
搞定是指自己能改 path 或做 workaround 。另外 script 一般都跨平台的,不挑哪个体系架构都能跑,不清楚你们 script 特殊还是 manager 也不懂。
lambdAlan
    10

lambdAlan   3 天前

m1 确实有问题,我自己写着玩的 docker-compose 拉取 mysql 镜像的时候显示提示不兼容,后面搜索改了一下能运行,但是 mysql 一直起不来,可能是我太菜了 OTL

LEEuncle
    11

LEEuncle   3 天前

当然是听 manager 的,工作是 team work
janus77
    12

janus77   3 天前 via iPhone

兼容性不是你一个人的问题
是团队所有人的问题
你写的东西在你这儿正常,在别人那里不正常,这让谁来解决?
lovecy
    13

lovecy   3 天前

首先公司得配发 MAC,再来讨论是否 M1
RealJacob
    14

RealJacob   3 天前 via iPhone

自己开发都好说,m1 现在问题不太大。但是公司的东西你不和别人保持同步,反正我是觉得不靠谱。让我自己买我不排斥 m1 做开发,但是要是公司发的话肯定还是 16 寸
SandyLee
    15

SandyLee   3 天前 via Android

别折腾了,就跟同事一致吧,工作上有很多无奈
taolu
    16

taolu   3 天前

@lambdAlan #10 官方的 mysql 只支持 amd64,要 arm64 的需要用 mysql/mysql-server 这个镜像,不过只有 mysql 8.0,没有 5.7
liprais
    17

liprais   3 天前

用了三个月了,无任何不适
bearboss
    18

bearboss   3 天前

前端和 go 目前在 m1 上还没遇到啥问题
dawn009
    19

dawn009   3 天前

遇到更多的是 macOS 11 和以前版本的兼容性问题,M1 专有的问题目前还没发现。不过跑虚拟机相关的东西一定会有问题
ichanne
    20

ichanne   3 天前

iOS 开发有兼容性问题,有些国内的 SDK 没有适配 M1,导致模拟器无法使用。
walpurgis
    21

walpurgis   3 天前 via Android

选贵的
tonyaiken
    22

tonyaiken   3 天前 via iPhone

自己玩的用 M1,工作机肯定得跟大家一样,出问题多麻烦
thx2u
    23

thx2u   3 天前 via iPhone

连接个显示器都有各种问题,别说和团队合作了
BrettD
    24

BrettD   3 天前 via iPhone

经理说的很委婉了,不希望因为你特立独行使用 M1 工作由于兼容性问题导致团队工作效率下降
IU111
    25

IU111   3 天前 via iPhone

有兼容问题,譬如装不了低版本的 node
cszchen
    26

cszchen   3 天前 via Android

经理是对的,出问题的概率太大了,风险不可控
MengiNo
    27

MengiNo   2 天前   ❤️ 1

首先,m1 只支持外接一个显示器,就是*大的问题。

回到正题,虽然个人用 m1 除了 docker 镜像有些需要特殊处理之外没感觉有什么很大问题。但还是强烈建议选 intel,不要引入风险,而且给你的 intel 也是旗舰款,没必要这样。真的很想折腾,能入职这样的公司,买一个入门的 m1 mac mini 玩玩,对于你来说相信应该也不是什么负担。

而且话说回来,站在 manager 的立场下,换我我也不愿意在一个久经考验的没有问题的镜像中为了 m1 去加几个条件或者参数(比如哪怕像 go 的交叉编译参数),虽然我自己用的确是可以没有任何问题,但要为公司负责的事情肯定是有压力和阻力的(特别现在*大的问题不是来源于技术革新,而是一个本身就不保证稳定的东西)。

MengiNo
    28

MengiNo   2 天前

当然你可以尝试的去动员一些同事一起要求换 m1 来提前适应。但是这样压力来到 manager 这边,都给你们换了,那老的 intel 怎么办,也是公司花大价钱买来的。把这个事情 manager 压下来大家不爽,报上去老板不爽。虽然有这个伏笔,但是千万不要一来就做这种给人感觉有政治意味的动作。
zq11211277
    29

zq11211277   2 天前 via iPhone

不知道楼主年纪,羡慕吃螃蟹的精神
lihnzx
    30

lihnzx   2 天前

主动讨锅
hakufuasano
    31

hakufuasano   2 天前 via iPhone

我现在在做 GCP 方面的开发 可以认识一下吗 微信:tao4free
Zien
    32

Zien   2 天前 via iPhone

和大家设备和工具保持一致,除非你想折腾
Yanbin
    33

Yanbin   1 天前

too simple, sometimes naive…
johnsonyeen
    34

johnsonyeen   1 天前

Intel 挺好的了

macOS 有什么办法能真全局代理。

macOS 上设置全局代理,可以通过以下两种方式:

1. 使用系统偏好设置

在 macOS 上,默认情况下,系统偏好设置中的代理设置只会应用于 HTTP 和 HTTPS 协议。要实现真正的全局代理,需要将代理设置应用于所有协议。

具体操作步骤如下:

  1. 打开 macOS 的系统偏好设置,点击“网络”。
  2. 在左侧列表中,选择您要设置代理的网络连接。
  3. 在右侧,点击“高级”。
  4. 在“代理”标签中,取消“自动配置代理”复选框。
  5. 在“HTTP 代理”和“HTTPS 代理”字段中,输入代理服务器地址和端口号。
  6. 在“SOCKS 代理”字段中,输入 SOCKS 代理服务器地址和端口号。
  7. 点击“应用”。

2. 使用代理软件

除了使用系统偏好设置之外,还可以使用代理软件来实现全局代理。代理软件可以为所有网络连接提供代理服务,包括 HTTP、HTTPS、SOCKS 等协议。

常用的代理软件有:

  • Shadowsocks
  • V2Ray
  • Clash

这些软件可以通过配置文件来设置代理服务器地址和端口号。配置文件可以从软件官方网站下载,也可以自行创建。

真全局代理的含义

所谓真全局代理,是指所有网络连接都通过代理服务器进行中转。这包括:

  • 浏览器访问网站
  • 使用应用程序
  • 使用游戏
  • 使用网络设备

如果代理设置只应用于部分协议,则不能称为真全局代理。

注意事项

使用全局代理可能会影响网络速度和稳定性。在使用前,建议先测试代理服务器的性能。

有人给 Apple 提意见并被采纳了吗?

还有两个月 iOS 15 就要出来了,特别想删除 APP 资源库, 滑动屏幕经常不小心点到它,占屏幕资源,真的很鸡肋

49 条回复    2021-04-06 09:52:25 +08:00
dingwen07
    1

dingwen07   2 天前 via Android   ❤️ 1

加一堆空桌面防止划过去
EasonC
    2

EasonC   2 天前 via iPhone

我给打过电话,客服说可以联系微博苹果客服
luhe
    3

luhe   2 天前 via iPhone   ❤️ 5

而我现在把桌面删到只剩首屏,只用资源库了 /狗头
allenchen10
    4

allenchen10   2 天前

只有一屏常用应用,别的都直接 Spotlight 搜索,资源库确实不好用
xtx
    5

xtx   2 天前 via iPhone

应该给用户选择的权利,加一个开关。
zsyld
    6

zsyld   2 天前 via iPhone   ❤️ 1

我提过限制开发者获取手机型号的权限,毕竟用什么手机也属于隐私,肯定不会采纳啦,社交 app 显示型号对 iPhone 也算是免费的广告…
stabc
    7

stabc   2 天前

这个小工具除了表现苹果对用户的专横没有半点作用。还不让关,一不小心就滑到它,就像踩了屎一样恶心。我的做法跟上面的一样,就是被迫只剩一屏,彻底放弃左右滑动。
thx2u
    8

thx2u   2 天前 via iPhone

这东西就和 Touch Bar 一样,建议 Pro 款的去掉这类功能
iold
    9

iold   2 天前

按照笔记本键盘的尿性, 还得用几年才能改回去
HashV2
    10

HashV2   2 天前

@thx2u 所以以后真去掉了, touch bar 大部分场景只能做到 `看着高级`

missqso
    11

missqso   2 天前 via iPhone

那我特别奇怪,我只用资源库打开 app,哈哈哈
dingdangnao
    12

dingdangnao   2 天前

我倒是觉得 library 还挺好用的(如果能手动排序的话 就更好用了
xuegy
    13

xuegy   2 天前 via iPhone

提意见不会有用的,给你加个开关那就不是苹果了。
falcon05
    14

falcon05   2 天前 via iPhone

没用的,早就有人提了,苹果根本不鸟你,不得不说,资源库实在是太丑了?
Axnir
    15

Axnir   2 天前 via iPhone   ❤️ 3

为什么要删除呢,考虑过喜欢的人的感受了吗
starrystarry
    16

starrystarry   2 天前   ❤️ 1

https://www.apple.com.cn/legal/intellectual-property/policies/ideas.html
luguhu
    17

luguhu   2 天前 via iPhone   ❤️ 1

只用资源库的表示不能接受
0x6c696e71696e67
    18

0x6c696e71696e67   2 天前   ❤️ 5

锁屏右滑打开相机才是要删除的,真的因为这个费了好多电
avia1ae
    19

avia1ae   2 天前

苹果应该考虑增加一个开关,还有滑到*左边的那个小工具栏真是毫无用处。
ansonsiva
    20

ansonsiva   2 天前   ❤️ 3

我觉得还不错,留放两页常用的 app,其他都进资源库
shanwu
    21

shanwu   2 天前   ❤️ 2

这些年我应该已经发送过上百条反馈,没统计过有多少后来被采纳。有改动的那些也不知道我的反馈在其中起到了多大作用,因为从来都不会有针对性回复。给苹果这样的大公司反馈是很没劲的,给个人开发者或小团队反馈则比较愉快,有很大概率能得到回复。
allenchen10
    22

allenchen10   2 天前 via iPhone   ❤️ 1

@allenchen10 #4 补充一下,我更希望可以有把资源库中的「搜索」作为默认界面的选项,直接按照字母排列。
目前资源库这种过于随机的分类方式让我每次要点开好几个文件夹才能找到特定的 app 。
Vanson
    23

Vanson   2 天前

APP 资源库,我很不喜欢,感觉很鸡肋。不知道大家什么感觉
LightInTheDark
    24

LightInTheDark   2 天前   ❤️ 1

我是桌面啥都不放的那种,要开 app 直接资源库或者 spolight 搜索
archknight
    25

archknight   2 天前

锁屏那个相机才是应该删的,什么蛋疼设计
inhd
    26

inhd   2 天前

@LightInTheDark 好奇你这样的效率会变高吗,中文模式很不方便啊,还是纯英文使用?
akring
    27

akring   2 天前   ❤️ 1

@archknight #24 需要抓拍一些画面的时候很有用,「屏幕亮」-「右滑」-「音量键上」,全程不超过 2s,应该没有更快的方式了。
akring
    28

akring   2 天前

@inhd #25 其实用熟了还好,很多常用软件的英文名大概都能记得,例如微信的话,直接桌面下拉,输入「 we 」然后回车就可以了。而且 Spotlight 貌似还有学习能力,常用的 app 会前置展示
archknight
    29

archknight   2 天前

@akring 啊这,难道就我是个例吗
Cassano
    30

Cassano   2 天前

资源库难道不是在*后一页么?在*后一页忽略它不就得了?
AshFive
    31

AshFive   2 天前

@Cassano 分屏页面少的,容易误滑到 资源库
SupercatX
    32

SupercatX   2 天前 via iPhone   ❤️ 1

@zsyld 获取不到型号咋适配机型….
aptx4689
    33

aptx4689   2 天前

从来不给这种大公司反馈,基本上都挺没劲的
hadooow
    34

hadooow   2 天前 via iPhone

资源库习惯了还挺好用的,老是从那里启动 app 了
Vincent103
    35

Vincent103   2 天前

在代工厂,给苹果说你这工艺精度我们达不到啊,然后他们就放宽了标准,这算吗
huZhao
    36

huZhao   2 天前

app 多了,找不到 app,就凸显出资源库 的功能了,比如删除它。
Bruce2077
    37

Bruce2077   2 天前

资源库很好用啊,我现在只有一个首页和资源库页面了,很清爽
yitingbai
    38

yitingbai   2 天前

@zsyld 作为一个开发者的角度给你解释一下, 获取型号是必须的, 不同的机型配置都不一样, 需要在软件逻辑里面做区分和优化, 不仅仅是装逼的作用, 你这个提议纯属找茬了
zsyld
    39

zsyld   2 天前

@yitingbai
@SupercatX 什么地方的适配需要获取机型? iOS API 都提供有对应的方法把?
wanwenx
    40

wanwenx   2 天前

之前遇到一个问题,iPhone11 的边缘手势有问题,只有在 iPhone11 上会复现,其他的没有复现。那这种情况如果没有判断机型的话没办法解决。而且 iOS 的 API 我个人是没有见过只有某些机型可以用,有的机型不可以用的,都是以 iOS 版本来限制的。*关键的是统计某一类机型并不能定位到个人,隐私啥的也可以接收(我个人),所以禁这玩意没啥意义啊。
YvesX
    41

YvesX   2 天前

不评价资源库,现在都还没弄明白。但如果什么都加开关就不是 iOS 了,“你可以自己改啊”是工程师喜欢的捷径,什么决定都交给用户来做不就等于没有设计。
forgetandnew
    42

forgetandnew   2 天前

这个资源库设计,纯属脱裤子放屁
Cmxxx
    43

Cmxxx   2 天前   ❤️ 1

不知道有没有人尝试过双卡的短信和电话功能,那叫一个。。。。
AllenHua
    44

AllenHua   2 天前

我觉得无所谓 现在用着用着也挺习惯的

装了 200+app 很多都常年不打开 我的主屏只有一页

然后其他 app 进 app library 查找 或者 spotlight 查找

1if5ty3
    45

1if5ty3   1 天前

除了 dock 栏和几个显眼的 app,其他基本是搜索打开的。
sobigfish
    46

sobigfish   1 天前

你自己多加几页就可以了,
我提过“dark mode 应该匹配当前时区的日落日出”的建议,反正是改了
而且 Apple 的回复过我
wovfeng
    47

wovfeng   1 天前 via iPhone

说不定有人提意见需要资源库,苹果采纳了呢…
sizhengping
    48

sizhengping   1 天前 via iPhone

我为什么这么喜欢这个功能?
espaul64
    49

espaul64   44 分钟前

苹果:没有人比我更懂用户!
虽然但是,我确实收到过苹果的 Mac 用户调查问卷,问得还挺细

mac 上的 notepad++的替代品,用于看日志和搜索日志

windows 上一直在用 notepad++看日志,每次打开日志,可以全局搜索日志里面包含某个关键字的所有行。 并且 notepad++会自动在屏幕下面嵌入一个搜索结果窗口,包含这个关键字的所有行。点击某一行的时候,上面的正文也会自动的跳到这一行去,对查询日志非常方便。。。 不知道 mac 上有提供类似功能的 app 嘛。。。

或者同求有大神分享更好的 app 。。。

notepad.png

65 条回复    2021-04-06 10:16:21 +08:00
jobs0
    1

jobs0   3 天前 via iPhone   ❤️ 1

我一开始用 sublime,但是不支持 M1,现在用 vscode
qanniu
    2

qanniu   3 天前

铜球。
看 log 楼主在春茧上班?
xylophone21
    3

xylophone21   3 天前

nthin0
    4

nthin0   3 天前 via iPhone

同,想在 vscode 找个能实现类似功能到插件没找到
EZVIK
    5

EZVIK   3 天前

一开始用 atom, 后面打开程序太慢就改用 vscode 了, 直接 new 一个页面粘贴。
7v9TEc53
    6

7v9TEc53   3 天前

010 editor
ultraedit
zhuxiaoxi
    7

zhuxiaoxi   3 天前 via iPhone

很少看日志,我记得 Mac 系统自带了一个工具。如果你想找搜索后结果单独显示点击结果,正文就能跳转的编辑器,可以试试 coteditor 。
yuancoder
    8

yuancoder   3 天前

既然用 mac 了,多用用命令
wellsc
    9

wellsc   3 天前 via iPhone

vim 加命令行?
ShadowPower
    10

ShadowPower   3 天前

有一个叫 notepadqq 的仿制品
https://github.com/notepadqq/notepadqq
它的高级搜索也可以列出每一行,点击可以跳转到相应的位置

liprais
    11

liprais   3 天前 via iPhone   ❤️ 1

mac 上的控制台是我见过性能*好的日志查看器
nicevar
    12

nicevar   3 天前

notepadqq,自己编一个 mac 版本的,选 ote 的版本更好用
evam
    13

evam   3 天前

coteditor
yzwduck
    14

yzwduck   3 天前 via Android

lnav 查看日志的命令行工具
NeezerGu
    15

NeezerGu   3 天前

CrossOver 下可以运行
chendy
    16

chendy   3 天前

mac 有个控制台.app 可以看日志
missdeer
    17

missdeer   3 天前

我以前为了看公司产品的日志(也是这种 log4xxx 的格式),专门写了个程序。。。
不过现在那个产品几乎弃坑了,所以我这个程序也弃坑了 https://github.com/missdeer/cjlv
shm7
    18

shm7   3 天前 via iPhone

vscode sublime 吧
AllenHua
    19

AllenHua   3 天前 via iPhone

coteditor

textmate

Helsing
    20

Helsing   3 天前 via iPhone

其实那个标注功能才是*好用的,我之前也发帖问过,但是并没有什么好的推荐 /t/727806
ooops
    21

ooops   3 天前 via iPhone

*近刚好用过,vscode 有个插件 text power tools,可以把关键字提取到新的 editor 里面,和这个类似。但 vscode 对大的日志文件性能不太行,还不如 sublime
Helsing
    22

Helsing   3 天前 via iPhone

@Helsing #20
现在我都是用 vs code,正则过滤用着还行,但是还是没有 EverNote 好用
dreamramon
    23

dreamramon   3 天前

@ShadowPower 谢谢推荐,刚才编译了一个,可能是 python 写的问题,一打开大日志文件,在 big sur 上就崩溃了。。。
dreamramon
    24

dreamramon   3 天前

@missdeer 果然,我们的需求都是一样的。。。win 上的 notepad++ 打开大文件也超快。。。
mac 上的编辑器,开一个 20g 的大日志。。。基本上就报废了。。。
prccn
    25

prccn   3 天前

parallels desktop + notepad++
qlqsh
    26

qlqsh   3 天前

textmate
RicardoM
    27

RicardoM   3 天前

这个功能不就是 vim 里的 quickfix 吗?不想用命令行的话,可以试一下 vimr
lululau
    28

lululau   3 天前

lnav
lance6716
    29

lance6716   3 天前 via Android

同求,有没有能识别 tag 然后点击过滤的,跟 kibana 类似的
Tink
    30

Tink   3 天前 via Android

SubEthaEdit 强烈推荐
guanhui07
    31

guanhui07   3 天前

vim
Kiana1
    32

Kiana1   3 天前

vim
cotEditor
lchecho
    33

lchecho   3 天前

cotEditor+1
jason52
    34

jason52   3 天前

vim 可以实现

https://i.loli.net/2021/04/02/APoM6OE4tGBTQun.png

cjban
    35

cjban   3 天前

cotEditor
dreamramon
    36

dreamramon   3 天前

@Tink 谢谢了,差不多是这个功能了,但是他那个搜索结果窗还不能固定嵌入,是浮动的,每次还是要多点一次。。。
CathayChen
    37

CathayChen   3 天前

有这功夫,把 vim 熟悉一下,他不香么?
ericguo
    38

ericguo   3 天前

http://www.logtailapp.com 这个如何?
love
    39

love   3 天前 via Android

@CathayChen vim 打开一个不大的日志文件都会卡死的吧
Daming
    40

Daming   3 天前 via Android

@dreamramon win 上打开大文件推荐用 emeditor,notepad++性能不行
applepieuser
    41

applepieuser   3 天前 via iPhone

glogg 这个有 windows 版和 Mac 版。
MaxLi77
    42

MaxLi77   3 天前

010 editor,文本查看神器
dreamramon
    43

dreamramon   3 天前

@Daming 确实是,大于 10g 还是多少,notepad 会直接提示文件过大,不能打开。emeditor 打开的就像飞一样。。。
Zien
    44

Zien   3 天前 via iPhone

moped 和 atom
eijnew
    45

eijnew   3 天前

cotEditor/Textastic/MacVim/SublimeText
darksword21
    46

darksword21   3 天前

这不就是 emacs + swiper 吗
wowcz
    47

wowcz   3 天前

glogg 这个才是 windows 上打开大日志文件不卡的东西,不过 mac 上没用过
v2sir
    48

v2sir   3 天前

@jobs0 @jobs0 好了好了, 知道你用 macbook pro 了, 光 sublime 你都提 M1 两次了 ……
zhengwenk
    49

zhengwenk   3 天前

用 mac 的话 直接 vim 不好么
snycv
    50

snycv   3 天前

coteditor+1
heiheidewo
    51

heiheidewo   3 天前

把文件名的后缀改为 .log 双击用控制台打开
jobs0
    52

jobs0   3 天前 via iPhone

@v2sir 这么关注我?
ruokw
    53

ruokw   3 天前 via Android   ❤️ 2

klogg 只为日志而生
drawstar
    54

drawstar   3 天前

我也在找,目前用 cotEditior,
liuzhedash
    55

liuzhedash   2 天前

@NeezerGu #15
DPI 怎么调都不舒服,老哥有什么经验分享么?
dreamramon
    56

dreamramon   2 天前

试用了所有,发现 logtail 是 mac 上比较好的选择。。。
kevinnuaa
    57

kevinnuaa   2 天前

github 上 2016 就有个 issue 想要这个 feature 。https://github.com/microsoft/vscode/issues/14836
官方到现在都没有实现这个,但是底下 bnason-nf 做了一个插件 https://marketplace.visualstudio.com/items?itemName=bnason-nf.findallinfile, 我觉得挺好用的,完美实现。
xiebruce
    58

xiebruce   1 天前

@prccn 为什么不用免费的 Vmware Fusion 呢?如果你说你不知道,那我现在告诉你了,你没听错!我也没有说错! Vmware Fusion(目前版本是 12.x)对个人用户免费!免费!是真的!我已经安装了!只不过要在官网注册一下,拿个激活码而已。
dreamramon
    59

dreamramon   1 天前

@xiebruce 这个太重了,为了看日志,我还要启动个 windows 。
savebox
    60

savebox   1 天前

BareTailPro + wine 好用,mac 下没找到好用的
v2sir
    61

v2sir   1 天前

@jobs0 多虑了, 我只是关注 sublime 而已。。
jobs0
    62

jobs0   1 天前 via iPhone

@v2sir ??
wangqj
    63

wangqj   23 小时 14 分钟前

coeditor *对可以满足你的要求

打开搜索框,输入查找的词,选择“Find All”即可

Helsing
    64

Helsing   9 小时 31 分钟前

@ruokw

这个确实很棒,可以自定义 highlighter 高亮所有添加的关键词,查看相关联的日志的时候非常方便。

之前一直找有这个功能的软件,一直没找到,谢谢推荐

Q2F5emxo
    65

Q2F5emxo   19 分钟前

CotEditor

关于解决 ios14 杀后台的不完全办法

1 、
设置语言与区域,语言添加 English,保留中文;
地区选美国,温度单位改回°C ;
地图改公里。

————至此,解决大部分 App 切换就需要重新加载的问题。

2 、
安装对应 iOS 版本的 App 版本(旧版 App )
[原理是 iOS 版本不同对应的 App 后台管理机制不同,解决系统干掉 App 后台问题]

3 、
以上主要用于旧机型,*终的解决办法还是用*新的机型。

4 条回复
shiro327
    1

shiro327   11 小时 37 分钟前

1 好像管点用?手持 iPhone7 开了好多个 app 没有杀后台,是什么原理
finnlewis
    2

finnlewis   10 小时 14 分钟前 via iPhone

1 这都行????
Silently
    3

Silently   5 小时 26 分钟前 via iPhone   ❤️ 2

玄学
james504
    4

james504   1 小时 7 分钟前

1 有用 是我的错觉吗 2 安装旧版 App 是一直都有效的

想问下外区 iCloud 账户相册速度怎么样

想给家人搞一个澳洲区的 id, 这样我的 iCloud 空间可以分些给他们。

App Store 的话还是中国区的 id 下载。这么用没问题吧。外区的 iCloud 相册访问速度就算慢一点,用还是能用的吧

8 条回复    2021-04-06 10:27:55 +08:00

imTerry
    1

imTerry   12 小时 48 分钟前 via iPhone

Apple 数据中心全球好几个地方分布,我美区的,速度挺快的,没有不可用的情况。
inhd
    2

inhd   12 小时 36 分钟前   ❤️ 1

几个月前我将家里人 iCloud 转为美区试用,速度和国区没区别,再者说国区 iCloud 速度也比较拉胯,属于能用级别,纯粹是因为全家桶才选择 iCloud 。

后来还是转为国区,原因是因为 V2EX 上经常看到有人非国区 Apple ID 无缘无故被封的帖子。

hello2060
    3

hello2060   12 小时 17 分钟前 via iPhone

@inhd 谢谢,这个我应该没问题,因为我确实人在澳洲,id 的所有资料都是真实有效的,只是给国内外的家人用了
chitanda
    4

chitanda   9 小时 56 分钟前

云贵的速度不知道,美区在大陆确实挺慢的,经常加载个照片等很久,全局 * 速度快很多
petercui
    5

petercui   51 分钟前

主要看你的梯子速度。
hello2060
    6

hello2060   21 分钟前 via iPhone

@petercui 没梯子呢?完全不行?
Scare
    7

Scare   4 分钟前

@hello2060 不用,完全当国区用就行。
我 iCloud 就是用的美区,没有什么速度慢的感觉,照片以及其他需要用到 iCloud 同步的软件速度都很快,这边连上网同步上等一会,那边就能看到了。
realjenix
    8

realjenix   3 分钟前

不用梯子啊,我美区得 iCloud 感觉速度和国区没啥差异

请问 iPhone8 变得卡顿是怎么回事?

请问 iPhone 的电池健康会影响手机的日常使用卡顿吗?我现在用的是日版 iPhone8,日常使用已经开始出现了卡顿现象,甚至有的时候开锁屏都费劲,按理说 a11 的性能不至于这样。电池健康度还有 81,但是上面显示的还是支持峰值性能。大家的手机也有这个现象吗?换一块电池会不会好一些。谢谢大家的回复和帮助。
62 条回复    2021-04-06 10:24:25 +08:00
subpo
    1

subpo   20 小时 28 分钟前   ❤️ 2

依稀记得前几个月前还有人杠 iPhone6s 不卡,或许可以请教他
youthcould
    2

youthcould   20 小时 17 分钟前 via iPhone

我的也是,76%电池,日常可见卡顿,有时候微信后台语音通话会被杀后台
littlewing
    3

littlewing   19 小时 19 分钟前 via iPhone

1.内存不够了
2. 存储空间还剩多少?闪存的特性包括 ssd 都是剩余空间太少就会性能下降
JensenQian
    4

JensenQian   19 小时 17 分钟前 via Android   ❤️ 2

se2 滞销,帮帮库克
jwenjian
    5

jwenjian   18 小时 34 分钟前 via iPhone

巧了,我的 iPhone 8 也是 81 的电池健康,也是卡。

尤其是微信,主页面下拉打开小程序,健康宝里点击扫描二维码,黑屏 5 秒钟左右才能调起系统相机。

买了三年了。

lxl1531
    6

lxl1531   18 小时 29 分钟前

2G 运存已经完全不够用了。
库克用系统和软件结合起来逼着 2G 运存的苹果用户换机
EastLord
    7

EastLord   18 小时 27 分钟前

我的 iphone8 也是卡 可用容量还有 9G
z111
    8

z111   17 小时 54 分钟前

看看存储空间,满了的话会卡
erwin985211
    9

erwin985211   17 小时 38 分钟前

我用 a9 加 ios13 系统是不卡的。真心地,我主力机用了三个月
ChangQin
    10

ChangQin   17 小时 33 分钟前 via iPhone

估计苹果要发布新品了

wjjwkwindy
    11

wjjwkwindy   17 小时 9 分钟前

2G 运存就是太小了,恢复出厂设置,少装一点 App 会稍微好些。
suzper
    12

suzper   16 小时 54 分钟前

朋友手持 iphone 6s plus,表示不卡
GGGG430
    13

GGGG430   16 小时 42 分钟前 via iPhone   ❤️ 1

楼上说的内存和存储空间不够都是扯淡,凭空臆测,楼主你需要的仅仅是去线下服务店换块电池,亲测
qyf1994
    14

qyf1994   16 小时 38 分钟前

换电池
CastleBUPT
    15

CastleBUPT   16 小时 37 分钟前 via iPhone   ❤️ 1

去换块电池,手机上显示 81%和电池坏了没什么区别
@subpo
我就是说 6s 不卡的那个,不好意思我的 6S 电池 95%
GoLand
    16

GoLand   16 小时 23 分钟前

我前段时间也是,iPhone8 卡的生活不能自理,打开相机都卡半天,通常点了拍照按钮需要卡个五六秒才能拍到照片。后来升级到了 14.4.2,莫名其妙就不怎么卡了。
hkezh
    17

hkezh   15 小时 58 分钟前 via iPhone

实际上,实际容量小于百分之 85 就会明显变慢
movq
    18

movq   15 小时 53 分钟前

电池应该不是首要因素,我有一台 iPhoneXR 情况和楼主差不多,电池 95%,但是容量快满了

估计是运存小以及存储空间快满了的锅

dremy
    19

dremy   15 小时 36 分钟前 via iPhone

八成是容量快满的原因,下次换机挑个容量大的吧,可以多撑几年
GhostiKing
    20

GhostiKing   15 小时 0 分钟前

7p 已经卡的已经当 mp3 用了
chodomatte
    21

chodomatte   14 小时 55 分钟前 via iPhone

美版 iPhone8 (无锁),64g,还剩 20 多 g,电池健康度 86%,正常感受,无卡顿。
但是内存小带来的杀后台是挺严重的(说来也好笑,我都习惯了?)
wancaibida
    22

wancaibida   14 小时 45 分钟前 via iPhone

换过电池 还是卡
bs10081
    23

bs10081   14 小时 20 分钟前 via iPhone

iPhone 8 64GB
iOS 14.5
原先空間只剩 4GB,非常卡
重置手機以後,只裝常用軟體,僅使用 32GB,目前非常流暢
bluetree2009
    24

bluetree2009   14 小时 3 分钟前

换个电池 会满血复活
topdj
    25

topdj   14 小时 0 分钟前

电池老化电压不足?
sephinh
    26

sephinh   13 小时 25 分钟前 via iPhone

电池健康低和存储容量满都会导致卡顿,电池消耗品 80%多早该换了,存储虽说也会导致卡,但基本都是快 100%满了才会
opengps
    27

opengps   12 小时 30 分钟前

先考虑下电池,我这 6s 用着不到 80 元的 pdd 廉价电池,比以前 80%多点的原装电池就是运行快
guanhui07
    28

guanhui07   11 小时 44 分钟前 via Android

换电池,清理空间
SpiderZzx
    29

SpiderZzx   11 小时 7 分钟前

@CastleBUPT 你好,请问你的电池官方换的还是 TB 买的,换了之后是什么牌子的电池
csfreshman
    30

csfreshman   10 小时 33 分钟前

5 年 6s,表示微信巨卡,其它的 app 还 ok,换了 11,不卡了,解决方法:升级手机(苹果滞销,救救库克吧)
CastleBUPT
    31

CastleBUPT   10 小时 33 分钟前 via iPhone

@SpiderZzx
官方的,因为不咋用所以损耗不多,知乎上好像有换电池攻略,不一定要换官方的
JaminTeng
    32

JaminTeng   9 小时 59 分钟前 via iPhone

经常重启 清一下后台
虽说苹果不用清后台
但是实际体验我 256g8p 剩余内存> 100g 有时候也是卡的不能自理 看视频都能感觉到掉帧 然后清后台就好了
TmacV2
    33

TmacV2   9 小时 46 分钟前 via iPhone

7p 不卡路过 电池 100%
Ayamee
    34

Ayamee   8 小时 52 分钟前

美版首发 iPhone8 256g,还剩 30g 存储
已经天才吧换过一次电池了,现在电池健康 86%
卡 尤其相机类要数秒才能启动 /完成拍照
wangfei324017
    35

wangfei324017   8 小时 18 分钟前

估计是电池原因,我家的 8
,256G 的,用了一半存储,这几天也卡的不行。改天去换电池试试
fatelight
    36

fatelight   8 小时 6 分钟前

问一问 iPhone6 不卡的人
JensenQian
    37

JensenQian   7 小时 5 分钟前 via Android

%title插图%num
xingshu1990
    38

xingshu1990   2 小时 4 分钟前

先考虑电池,电池换了以后没解决的话,icould 容量也要看,当 icould 只有 1G 左右的可用容量的时候,你要想办法把这些图片给上传到其他地方了。另外现在多数的软件越更新,占用的资源越大,比如某宝,某信。
zhandouji
    39

zhandouji   1 小时 44 分钟前 via iPhone

6sp 128 *新系统,电池第 4 块。有点慢,但不影响使用。比我的 se2 慢
leoson
    40

leoson   1 小时 37 分钟前

一般是微信的锅,聊天记录备份-删除微信-下载微信-登录-恢复聊天记录。每月来一次,目前感觉良好。
sc13see
    41

sc13see   1 小时 35 分钟前

原来不仅只是我这样
xianghaolin
    42

xianghaolin   1 小时 28 分钟前

用安卓手机不香吗?
Asbestos
    43

Asbestos   1 小时 26 分钟前

应该是升级系统太高了吧,iphone 一直都是发布时系统*流畅,或*多升级一个版本号。
scg16
    44

scg16   1 小时 23 分钟前

6sp IOS 13 去年自己换的品胜电池 ,不玩游戏,感觉不到卡。
vliyue
    45

vliyue   1 小时 10 分钟前

ios14,本人 6s 不卡,媳妇 7 卡,看来苹果测试不充分
yuewenjie
    46

yuewenjie   1 小时 9 分钟前

我的 iPhone8 是升级 iOS 14 某个小版本以后明显变得卡顿了,升级之前很流畅(手动微笑)
qq1204076437
    47

qq1204076437   1 小时 5 分钟前

电池健康不太行的时候会降频
UnPace
    48

UnPace   1 小时 1 分钟前

电池健康度会影响,换电池后肉眼可见的流畅。
YUCOAT
    49

YUCOAT   59 分钟前

我的 iPhone XR 也卡,电池健康还剩下 81%,磁盘控件快满了
fengtaida
    50

fengtaida   58 分钟前

怎么可能,伟大的 iPhone 怎么可能卡顿,一定是使用人的问题(手动滑稽)
tangtanghong
    51

tangtanghong   49 分钟前

我的 7plus 弹出微信键盘的时候经常按键没有反应,发不了消息,重启一下就好了,但是隔一段时间又会这样,128g 的还有 50g 可用
KennyAckerman
    52

KennyAckerman   43 分钟前

我的 i7, 电池健康 67, 之前 IOS13.6 用了一天就贼卡,前天果断升级 14.4,感觉没有流畅多了,可以试试,但是还是偶尔会卡,估计还是内存两 G 现在都不够用了
frozenway
    53

frozenway   42 分钟前

我的 iPhone XR 也卡,电池健康还剩下 96%,磁盘 64G 还剩 43G 。自己装的软件不超过 10 个,打开微信要 4s,刷出信息又要卡 5 ~ 8 秒,qq 也是一样。而且这半年信号奇差,动不动就没信号
wangtcalex
    54

wangtcalex   38 分钟前

我觉得让老 iphone 感觉很卡的中心因素就是绿色软件,有一台不用绿色软件的 iphone8,没有装绿色软件和其他国产软件,使用起来真的不要流畅,甚至想要用回去
当然太老的 iphone 也是没办法, 但是现在连 xs 用绿色软件会间歇性卡死,气得我昨天就去买了台 12
styang
    55

styang   37 分钟前

我的 8p 感觉还可以再战 2 年
wangxingwu17
    56

wangxingwu17   36 分钟前

@GhostiKing 我的 7p 还可以玩农药 但是无法多开了 开了微信 其他软件全部闪退
silentcentralia
    57

silentcentralia   30 分钟前

我也是,8 的相机经常特别卡,系统 14.4,微信也很卡,电池没换过,健康在 92%。之前存储只剩 5 个 g,后来清理照片存储剩 30 个 g,问题略有缓解,但相机启动依旧很卡……关键是,15 年买的 6s 就真的不卡,同样是 14.4,电池健康 89%,我也感觉很离谱……在网上找了很多,没怎么见过反应相机卡顿的,但身边很多人都跟我一样的相机问题。
skagerakdean
    58

skagerakdean   27 分钟前

去年这时候还在用小 7,换过一个全新电池,会卡顿发热就是因为微信和相机,其他倒没什么,主要就是杀后台严重点。
ambeta
    59

ambeta   15 分钟前

换个电池会好,电池老化电压不足 CPU 会降频
quanjw
    60

quanjw   13 分钟前

我换过电池,授权店换的。但是 该杀后台还是杀,我感觉 是 内存不够
bigbenniu
    61

bigbenniu   1 分钟前

iOS 12.4.1,可用容量 9G,一年换一块电池(电池 90%就换,PDD 几十块钱),不卡,就是喜欢杀后台。
bo233
    62

bo233   几秒前 via iPhone

换电池吧,我的 x 换了电池后,卡顿现象好了很多

苹果知道他的应用库很难找到应用吗

每次找应用都要找半天,分类也乱七八糟,支付宝不在财务里面,小米 WiFi 在财务里,shazam 不在工具里面,天气股票翻译放在阅读里面,电话信息在社交文件夹里联系人 app 就跑到效率与财务里了,能不能好好玩了。。。
还不能自定义,也没有全部应用的文件夹,我默认是用九键输入法,下拉搜也不是很方便,到*后实在烦了只能喊 siri 帮忙打开,
这个 app 资源库 感觉就是又要整应用抽屉又不想跟安卓一样,硬生生整一套出来,特色是有了就是比原来一股脑都放在桌面效率还低。。。
46 条回复    2021-04-06 10:21:16 +08:00
qq1204076437
    1

qq1204076437   17 小时 7 分钟前

感觉资源库应该允许用户自己调整。
superrichman
    2

superrichman   17 小时 6 分钟前 via iPhone

没用过这个功能,可以关掉吗?
di11wei
    3

di11wei   17 小时 4 分钟前

常用的我就放出来,或者用 Siri 建议小组件,只留一屏,其他的都在资源库里,随缘用吧。
NGUTHONG
    4

NGUTHONG   17 小时 4 分钟前 via iPhone   ❤️ 1

@qq1204076437 对啊,应该要让人可以自定义才比较合理
NGUTHONG
    5

NGUTHONG   17 小时 1 分钟前 via iPhone

@di11wei 我也是这样,但是一些学习类的 app 只要收到资源库就从此压箱底了,还有一些根本不怎么用的工具类应用堆积在那边?
agdhole
    6

agdhole   16 小时 52 分钟前 via iPhone

我都是搜索的,从来不去慢慢找
CastleBUPT
    7

CastleBUPT   16 小时 46 分钟前 via iPhone

如果想自定义,不是建文件夹放桌面就行了吗,这个分类是 app 厂自己定义的
0x6c696e71696e67
    8

0x6c696e71696e67   16 小时 39 分钟前

*蠢的是在资源库不小心下拉出搜索框要在右上角关掉
NGUTHONG
    9

NGUTHONG   16 小时 37 分钟前 via iPhone

@CastleBUPT 主要还是应用太多,有些使用频率低一点的就不会放到桌面上占位置
CastleBUPT
    10

CastleBUPT   16 小时 32 分钟前 via iPhone

@0x6c696e71696e67
你左滑右滑试一下?
@NGUTHONG
是的啊,这个功能就是照顾懒人,如果还能调整,又调乱了怎么办。一般来说 app 厂对自己的产品定位更准确,比如王者荣耀肯定在游戏里没跑的吧。至于有些 app 莫名其妙跑到了财务,建议跟 app 客服反馈一下

Persipa
    11

Persipa   16 小时 30 分钟前

@0x6c696e71696e67 屏幕底部往上滑可以关掉~

我用资源库的情况只有 我需要用的 app 如果能一眼看到 就点,否则的话直接搜索或叫 Siri

NGUTHONG
    12

NGUTHONG   16 小时 30 分钟前 via iPhone

@0x6c696e71696e67 上滑就可以推出了啊
NGUTHONG
    13

NGUTHONG   16 小时 24 分钟前 via iPhone

@CastleBUPT 主要这个功能就是设计让人收纳使用频率比较低的 app,结果收纳进去就变得很难找到就很让人烦躁,就真的还不如以前我自己归类文件夹省心
NGUTHONG
    14

NGUTHONG   16 小时 18 分钟前 via iPhone

@Persipa 真的都习惯叫 siri 帮忙了,每次猜应用在哪个文件夹真的还蛮费脑的
hkezh
    15

hkezh   15 小时 53 分钟前 via iPhone

应该给这个功能开关。这玩意对我来说就是浪费一个页面
Zien
    16

Zien   15 小时 37 分钟前 via iPhone

主要是很多不好分类,加上国内厂商乱分类,只要跌不强制他们,他们*对不会规范。
grimpil
    17

grimpil   15 小时 36 分钟前 via Android

找支付宝得去社交分类里面吧?
thx2u
    18

thx2u   14 小时 30 分钟前

就是一 touch bar,食之无味,弃之不可惜。
苹果在越来越优雅的漩涡里越来越难用。
aneureka
    19

aneureka   13 小时 39 分钟前 via iPhone

@0x6c696e71696e67 #8 左滑就行
NGUTHONG
    20

NGUTHONG   12 小时 58 分钟前 via iPhone

@hkezh 然而苹果向来都不会给人选择的空间
NGUTHONG
    21

NGUTHONG   11 小时 52 分钟前 via iPhone

@Zien 然而连苹果自家的 app 都没有好好分类清楚,其他厂肯定也抓瞎,我觉得她本身分的这几个类别就有问题
Zien
    22

Zien   11 小时 47 分钟前 via iPhone

@NGUTHONG 是的,不过其实自己手动分有时候也挺茫然的,我觉得大体上还蛮好用的,实在不好找的搜一下就好。
yitingbai
    23

yitingbai   11 小时 23 分钟前

苹果这些年不知道在干啥, 取消了 3D-Touch 的功能, 大大降低了我购买下一部 iphone 的欲望, 到现在还在用 xs max, 这么好用的功能都被阉割了, 我都想换回安卓了
NGUTHONG
    24

NGUTHONG   10 小时 14 分钟前 via iPhone

@Zien 自己归类的起码能有点印象要用的时候还能找到?
NGUTHONG
    25

NGUTHONG   10 小时 12 分钟前 via iPhone

@yitingbai 3DTouch 这硬件成本这么高的东西,取消了利润不就上去了吗
theolin
    26

theolin   10 小时 5 分钟前   ❤️ 1

我一开始也是这么吐槽的。但是 app 资源库用上一段时间之后,会发现越来越好用。因为它的分类也好,每个分类里面的 app 也好,都会根据你的使用来动态进行调整。每个分类可以显示 7 个*常用的 app,其中前 3 个可以直接点击。完全够用了。真正需要找的 app,只有那些偶尔运行一次的。
theolin
    27

theolin   10 小时 4 分钟前

@0x6c696e71696e67 不是啊。从底部往上滑或者从右边往左滑一下都可以退出搜索啊。
NGUTHONG
    28

NGUTHONG   1 小时 42 分钟前

@theolin 可能是我软件装太多,大部分还不是天天用的 app,就常常要去找
Leonard
    29

Leonard   1 小时 18 分钟前

我都是用 spotlight 搜索
EnsPEn
    30

EnsPEn   1 小时 11 分钟前 via iPhone

你不说我还真忘了*后一屏的这个玩意了,我还是按照以前的逻辑,全部在页面上自己分类
ALVC666
    31

ALVC666   1 小时 10 分钟前

app 越来越多 我已经忍受不了滑动几屏去找 app 的操作了
现在都是直接搜索
xidaduo
    32

xidaduo   1 小时 8 分钟前

这个主要是厂商自己提交 App 审核的时候定义的 App 类型,苹果分类也是依据这个来分的
flashrick
    33

flashrick   1 小时 4 分钟前

@yitingbai 可以一直没有 3dtouch,但是让我体验过了好处后面取消了,我就不想买了。 可以一直都是人脸识别开锁,但是本来方便的指纹换成人脸,我完全不想买了。
UnPace
    34

UnPace   1 小时 2 分钟前

苹果的应用库有个搜索功能,类似于通讯录按照应用名称拼音首字母排序导航的,我感觉这个资源库还不如直接按照这种方式展示,很方便快捷。
Pogbag
    35

Pogbag   1 小时 2 分钟前

我以为只有我觉得难用
dcty
    36

dcty   58 分钟前

常年用搜索的人表示习惯了
qq1204076437
    37

qq1204076437   40 分钟前

@CastleBUPT 资源库会自动帮助做分类,只需要做调整,会减少很多麻烦。而且资源库视图信息密度高很多,更适合丢一堆使用频率低的应用。
horsley
    38

horsley   36 分钟前

常年搜索+1,这个分类是上架的时候应用提供方自己填的
PostMeridiem18
    39

PostMeridiem18   28 分钟前

1. 应用库可以关
2. Spotlight 搜索才是找到应用的*速方式
3. 用九宫格为什么会导致下拉搜索不方便?
glaucus
    40

glaucus   13 分钟前   ❤️ 2

Spotlight 搜索应用很难用啊。。。
比如今日头条,搜今日可以,搜今日头条可以,搜头条就找不到。。。
NGUTHONG
    41

NGUTHONG   11 分钟前

@Leonard
@dcty *后还是搜索比较快。。
@PostMeridiem18 应用库哪里可以关?没看到有开关,九宫格慢是因为九宫格主要靠输入法联想,一些比较不常见的 app 名称他联想不到就得打开选字,如果找英文 app 就还要切输入法,没有用全键的那么方便,全键的不管英文中文 app 都只要输入前几个字母就可以筛选出来,快很多
alfchin
    42

alfchin   9 分钟前 via iPhone

@glaucus 这个锅应该是头条的
搜手机淘宝输入淘宝是能搜到的
wellsc
    43

wellsc   6 分钟前

搜英文名可解
PostMeridiem18
    44

PostMeridiem18   3 分钟前

@NGUTHONG 抱歉…我记错了,应用库关不掉,只有里面的通知小红点可以单独开关。如果实在不习惯的话就手动把所有的 App 拖到主屏幕上好了,然后让系统自动添加新应用…然后再找个地方塞个 Siri 应用建议(
glaucus
    45

glaucus   3 分钟前

@alfchin #42 大部分是正常的,但是感觉头条也不至于主动去配置得让自己没法被搜到吧,不懂为啥用户能看到得应用名也能出现这种问题
PeterZzz
    46

PeterZzz   2 分钟前 via iPhone

苹果他知道,但是他不改
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速