Post

Replies

Boosts

Views

Activity

Symbol sec_protocol_metadata_get_negotiated_tls_ciphersuite missing from iOS 12 simulator runtimes
:I rewrote our app to use the new Network framework for TLS communication. We need to support both iOS 13 and iOS 12.4. I am using the function:sec_protocol_metadata_get_negotiated_tls_ciphersuite(sec_protocol_metadata_t metadata);to report what type of TLS connection was formed. This function is documented both in the header files and in the online Apple documentation to be available in iOS 12.0+. And yet with the latest XCode (11.3.1) the simulator runtimes for iOS 12 (all of them: 12.0, 12.1, 12.2, and 12.4) do not have this symbol in the runtime library. I get this error reported in the XCode console when my program attempts to use that API:dyld: lazy symbol binding failed: Symbol not found: _sec_protocol_metadata_get_negotiated_tls_ciphersuite Referenced from: /Users/derek/Library/Developer/CoreSimulator/Devices/42B90B8A-BF22-40FE-970B-C78E1DD27B6A/data/Containers/Bundle/Application/A22AF4B2-9AD8-4325-B8D5-D8086A0DF7BD/touch.app/touch Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Security.framework/Securitydyld: Symbol not found: _sec_protocol_metadata_get_negotiated_tls_ciphersuite Referenced from: /Users/derek/Library/Developer/CoreSimulator/Devices/42B90B8A-BF22-40FE-970B-C78E1DD27B6A/data/Containers/Bundle/Application/A22AF4B2-9AD8-4325-B8D5-D8086A0DF7BD/touch.app/touch Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Security.framework/SecurityI also searched the symbol names in the simulator dynamic library for the Security framework and did indeed discover that they appear to be missing both of the tls metadata functions. Here are the symbols in the iOS 12.4 Security dynamic library starting with "sec_protocol_metadata_get_negot":nm '/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 12.4.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Security.framework/Security' | grep sec_protocol_metadata_get_negot000000000003079f t ___sec_protocol_metadata_get_negotiated_ciphersuite_block_invoke00000000000303ae t ___sec_protocol_metadata_get_negotiated_protocol_block_invoke00000000000306f0 t ___sec_protocol_metadata_get_negotiated_protocol_version_block_invoke000000000003070f T _sec_protocol_metadata_get_negotiated_ciphersuite0000000000030325 T _sec_protocol_metadata_get_negotiated_protocol0000000000030663 T _sec_protocol_metadata_get_negotiated_protocol_versionHere is the same list for the iOS 13.2 Security dynamic library:nm /Applications/Xcode.app//Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Security.framework/Security | grep sec_protocol_metadata_get_negot0000000000021d68 t ___sec_protocol_metadata_get_negotiated_protocol_block_invoke00000000000225d3 t ___sec_protocol_metadata_get_negotiated_protocol_version_block_invoke0000000000022682 t ___sec_protocol_metadata_get_negotiated_tls_ciphersuite_block_invoke0000000000022506 t ___sec_protocol_metadata_get_negotiated_tls_protocol_version_block_invoke00000000000226a3 T _sec_protocol_metadata_get_negotiated_ciphersuite0000000000021cdf T _sec_protocol_metadata_get_negotiated_protocol0000000000022546 T _sec_protocol_metadata_get_negotiated_protocol_version00000000000225f2 T _sec_protocol_metadata_get_negotiated_tls_ciphersuite0000000000022478 T _sec_protocol_metadata_get_negotiated_tls_protocol_versionNote the two TLS related ones at the end that are in the 13.2 library, but not the 12.4 library.My app runs fine with the iOS 13 simulated runtime.Is this a bug in the simulator?Or is this a documentation bug?Most importantly is this function supported on a real iPhone with iOS 12.4?
1
0
599
Jan ’20
Select Folders and ZIP Files using UIDocumentPickerViewController
Our iOS app needs to import either all files within a chosen directory OR from a zip file. I managed to get UIDocumentPickerViewController to select folders with this bit of code: auto picker = [[UIDocumentPickerViewController alloc] initForOpeningContentTypes:@[ UTTypeFolder ]]; picker.delegate = self; But I want to also allow the user to select a single ZIP file instead of a folder if they wish. I thought I could add another UTType to the array of content types, but that did not work: auto picker = [[UIDocumentPickerViewController alloc] initForOpeningContentTypes:@[ UTTypeFolder, UTTypeZIP ]]; picker.delegate = self; It does allow a ZIP file to be selected, but you can no longer select a folder. Is there anyway to do this in iOS? Note that I will need the side-effect of chosing a folder that it gives security permissions to recursively descend into the folder. Also, is there anyway to customize the text that appears in the UIDocumentPickerViewController view? It says "Choose a location" and then "Access will be granted to ...". I really want some additional text to instruct the user such as "Please select a ZIP file or a folder".
0
0
833
Nov ’21
Create In-App Purchase fails with "Only alphanumeric characters allowed" validation error for Product ID
Yesterday (May 16, 2022) I create an in-app purchase item (non-consumable) on appstore connect with a product ID "myapp.test.pro.perm" and it worked fine. Today I tried to create a 2nd item (non-consumable) for the exact same app with the product ID "mobileviewer.test.pro.trial.30day" and it will not allow it as when I focus out of the Product ID field it puts up a text validation error of "Only alphanumeric characters allowed". What is going on here? Was there some policy change of allowed product IDs or is this a website bug?
2
0
586
May ’22