标签: core-nfc

Xcode12 CoreNFC 模拟器库未加载

我们的应用程序使用 CoreNFC 来扫描 NFC 标签,如果不支持 NFC,您可以使用 QR。这工作得很好,我们能够在模拟器中运行该应用程序以进行 (ui) 测试。
直到 Xcode12 / iOS14 GM 构建。在 iOS13(或更低版本)中,我们在模拟器上运行它不会有任何问题。

但是在 iOS14 模拟器 iPhone11 上运行它的 Xcode12 中,我们会得到以下结果:

dyld: launch, loading dependent libraries
DYLD_SHARED_CACHE_DIR=/Users/xxx/Library/Developer/CoreSimulator/Caches/dyld/19G73/com.apple.CoreSimulator.SimRuntime.iOS-14-0.18A372
DYLD_ROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot
DYLD_LIBRARY_PATH=/Users/xxx/Library/Developer/Xcode/DerivedData/xxx-awnlestrbvesqqbynrhmluzhbcsc/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libBacktraceRecording.dylib:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSi
dyld: Library not loaded: /usr/lib/libnfshared.dylib
  Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreNFC.framework/CoreNFC
  Reason: no suitable image found.  Did find:
    /usr/lib/libnfshared.dylib: mach-o, but not built for platform iOS-sim
Run Code Online (Sandbox Code Playgroud)

模拟器崩溃对我来说很有意义,因为模拟器无法扫描 NFC 标签,但这就是我所做的:

ios swift core-nfc ios14 xcode12

45
推荐指数
3
解决办法
6380
查看次数

iOS 11核心NFC - 任何示例代码?

我刚刚在iPhone 7上安装了第一个iOS 11测试版,我对尝试NFC感兴趣.在设置中没有任何关于它.我想知道是否有任何示例代码显示如何读取标记.任何人都可以在代码片段中展示如何使用Core NFC SDK吗?

beta nfc ios core-nfc

19
推荐指数
2
解决办法
2万
查看次数

iOS 11 CoreNFC如何检查设备是否具有NFC功能?

如何检测iPhone是否能够使用核心NFC框架提供的NFC芯片?

我现在知道它只适用于iPhone 7和7 plus但我不想硬编码硬件字符串标识符,因为我不知道将来会出现什么设备.

iphone nfc ios ios11 core-nfc

10
推荐指数
2
解决办法
3557
查看次数

NFCTagReader iOS没有点击didDetect方法

我正在做一个将NFCTagReader实现到xamarin.ios应用程序的POC.

https://developer.xamarin.com/samples/monotouch/ios11/NFCTagReader/

我从xamarin网站上获取了NFCTagReader并设置了所有相应的配置设置以访问标签阅读器.问题是,当我点击扫描时,按预期弹出"准备扫描"窗口,然后我扫描一个标签,它在屏幕上显示小刻度,表明它已找到,但它从未打破我的代码的DidDetect方法代表.它将命中DidInvalidate方法并为ReaderSessionInvalidationErrorUserCanceled提供代码.

我想念的任何想法.以下是我的代码段:

 partial void Scan(UIBarButtonItem sender)
    {
        InvokeOnMainThread(() =>
        {                
            Session = new NFCNdefReaderSession(this, null, true);
            if (Session != null)
            {
                Session.BeginSession();
            }
        });

    }

    #endregion        

    #region NFCNDEFReaderSessionDelegate

    public void DidDetect(NFCNdefReaderSession session, NFCNdefMessage[] messages)
    {

        foreach (NFCNdefMessage msg in messages)
        {
            DetectedMessages.Add(msg);
        }
        DispatchQueue.MainQueue.DispatchAsync(() =>
        {
            this.TableView.ReloadData();
        });

    }


    public void DidInvalidate(NFCNdefReaderSession session, NSError error)
    {

        var readerError = (NFCReaderError)(long)error.Code;

        if (readerError != NFCReaderError.ReaderSessionInvalidationErrorFirstNDEFTagRead &&
            readerError != NFCReaderError.ReaderSessionInvalidationErrorUserCanceled)
        {
            InvokeOnMainThread(() =>
            {
                var alertController = UIAlertController.Create("Session Invalidated", error.LocalizedDescription, …
Run Code Online (Sandbox Code Playgroud)

nfc xamarin.ios ios xamarin core-nfc

9
推荐指数
1
解决办法
440
查看次数

未检测到 iOS 13、Swift 5、Core NFC MiFare Classic 1K

我在使用 ios 13+ 和 swift 5 从 rfid 芯片读取数据时遇到一个非常基本的问题,我有两个设置(NFCNDEFReaderSession 和 NFCTagReaderSession),

\n\n

NFCNDEF阅读器会话:

\n\n
import UIKit\nimport CoreNFC\n\nclass ViewController: UIViewController {\n\n    var session: NFCNDEFReaderSession?\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        session = NFCNDEFReaderSession(delegate: self, queue: DispatchQueue.main, invalidateAfterFirstRead: false)\n        session?.begin()\n    }\n\n}\n\nextension ViewController: NFCNDEFReaderSessionDelegate {\n\n    func readerSessionDidBecomeActive(_ session: NFCNDEFReaderSession) {\n        print("active") // called once\n    }\n\n    func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {\n        print("didDetectNDEFs") // never called\n    }\n\n    func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {\n        print(error.localizedDescription) // only called on timeout\n    }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n …

rfid ios mifare swift core-nfc

8
推荐指数
0
解决办法
2240
查看次数

是否可以隐藏NFC阅读会话的iOS系统警报

当您成功完成NFC阅读课程后,您会看到类似的内容:

成功完成了NFC会话

这将覆盖当前呈现ViewController的约3秒.有趣的是,这种行为是不一致的,因为如果阅读会话结束得非常快,这个窗口会立即消失.

这意味着我无法确定这个叠加层能保持多长时间,这对我们的应用程序的UX设计有害.

问题很简单:有没有办法强制这个叠加层消失或至少处理它何时消失的事件(不是当NFC 会话结束时)?

nfc ios core-nfc

7
推荐指数
1
解决办法
1149
查看次数

NFCTagReaderSession的“缺少必需的权利”

我正在研究iOS 13的新CoreNFC功能,并且正在努力使NFCTagReaderSession工作。设置权利并实例化NFCTagReaderSession和委托之后,我尝试通过调用来启动会话nfcTagReaderSession?.begin()。我的会话立即因以下错误而失效:

Error Domain=NFCError Code=2 "Missing required entitlement" UserInfo={NSLocalizedDescription=Missing required entitlement}

我在这里查看了我的权利文件的文档:https : //developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_nfc_readersession_formats

我还在Info.plist中添加了相应的“隐私-NFC扫描使用说明”。

有人让这个工作了吗?这仅仅是Xcode 11或iOS 13的问题吗?

这是我的ViewController中的代码:

import UIKit
import CoreNFC

class ViewController: UIViewController {

    var nfcTagReaderSession: NFCTagReaderSession?

    override func viewDidLoad() {
        super.viewDidLoad()

        nfcTagReaderSession = NFCTagReaderSession(pollingOption: [.iso14443, .iso15693, .iso18092], delegate: self)
        nfcTagReaderSession?.begin()
        print("isReady: \(nfcTagReaderSession?.isReady)")
    }
}

extension ViewController: NFCTagReaderSessionDelegate {
    func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) {
        print("Tag reader did become active")
    }

    func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {
        print("\(error)")
    }

    func tagReaderSession(_ session: NFCTagReaderSession, …
Run Code Online (Sandbox Code Playgroud)

nfc swift core-nfc ios13

7
推荐指数
3
解决办法
2902
查看次数

dyld:未加载库:@ rpath/CoreNFC.framework/CoreNFC,iOS11和Xcode 9 beta

CoreNFC sampleXcode 9.0 beta 2中运行代码时遇到此错误并且应用程序崩溃

dyld: Library not loaded: @rpath/CoreNFC.framework/CoreNFC
  Referenced from: /var/containers/Bundle/Application/2837709C-C852-4811-B696-38F2725554D4/iOS-11-by-Examples.app/iOS-11-by-Examples
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

iphone swift ios11 xcode9-beta core-nfc

6
推荐指数
2
解决办法
2029
查看次数

核心NFC的设备支持?它在iPad上有效吗?

Core NFC可以在iPad上运行吗?

总而言之,iPad确实有NFC芯片,但Core NFC文档并没有说它支持它.

注意

iPhone 7和iPhone 7 Plus支持读取NFC NDEF标签.

在模拟器上运行此iOS11-NFC示例将始终Feature not supported在所有设备上运行.

nfc ios11 core-nfc

6
推荐指数
1
解决办法
2131
查看次数

如何使用 flutter 将 NDEF 消息从 Android 手机发送到 iPhone

我正在使用 Flutter 开发一个 Android+iOS 应用程序,它有几个用户交互屏幕和 NFC 屏幕。

在 NFC 屏幕上,用户连续点击手机(就像我们处理 Android 波束数据传输一样):一部手机是 Android 手机,它运行应用程序并发送 NFC NDEF 消息,就像本中一样。

在第二部手机上,带有 NFC 屏幕的“我的应用程序”正在运行,并使用nfc_in_flutter(flutter 中只有 3 个 nfc 插件,这是当前似乎唯一维护的插件)读取 NDEF 并显示在屏幕上。

这种情况在 Android 设备上运行良好,但是在 iOS 设备上,当我点击 Android 设备时,什么也没有发生。它不读。

我使用 iOS 设备测试了简单的 NFC 标签(不是 Android 设备),它读取了标签。有人可以解释一下原因是什么吗?

以下是我的假设,如果我错了,请纠正我:由于iOS仅支持NDEF格式而不支持HCE,所以我应该将NDEF从Android发送到iOS。

我对主机卡模拟的了解:

为了使设备像卡一样工作(或使用 HCE),应用程序需要创建 HostApduService。当此服务运行时,手机(以及应用程序本身)能够识别阅读器,如果一切正常,它会发送有效负载。消息的格式是 IsoDep(不是 NDEF)。

另一方面,阅读器端发送 ADPU 来建立连接,如果正常,则接收有效负载。

在上面的示例中,发送方创建 NDEF 消息,并且不充当卡 (HCE),因为没有创建 HostApduService。

那么,如果 iOS 支持 NDEF 消息,为什么 iOS 设备不读取 Android 设备上的消息呢?

android nfc ios flutter core-nfc

6
推荐指数
0
解决办法
1072
查看次数

标签 统计

core-nfc ×10

ios ×7

nfc ×7

swift ×4

ios11 ×3

iphone ×2

android ×1

beta ×1

flutter ×1

ios13 ×1

ios14 ×1

mifare ×1

rfid ×1

xamarin ×1

xamarin.ios ×1

xcode12 ×1

xcode9-beta ×1