When upload build (archive) to the store, what should be the appropriate scheme configuration:- of course Release- But should Debug executable be ON or OFF ? What does it change once build is uploaded ?I've read this detailed document, but could not find direct answer to it.h ttp://iosbrain.com/blog/2018/02/24/xcode-using-the-debug-executable-checkbox-to-step-through-app-release-versions/
Post
Replies
Boosts
Views
Activity
I have defined a multi value item in the Root.plist of bundle settings and I see a strange behavior. Not serious problem, but stange and would like to check if it's normal or caused by a problem in my use of it.The item is defined as follows: <dict> <key>Type</key> <string>PSMultiValueSpecifier</string> <key>Title</key> <string>Color</string> <key>Key</key> <string>ColorKey</string> <key>DefaultValue</key> <integer>2</integer> <key>Titles</key> <array> <string>"blue"</string> <string>"green"</string> <string>"brown"</string> </array> <key>Values</key> <array> <integer>0</integer> <integer>1</integer> <integer>2</integer> </array> </dict> Type
PSMultiValueSpecifier
Title
Color
Key
colorKey
DefaultValue
2
Titles
"blue"
"green"
"brown"
Values
0
1
2
When I go to iOS settings (in simulator), the item "Color" appears as expected : Color Blue >tapping on the arrow '>' shows the table to select a color.When I go back, the selected color appears.So, works OKBUT, if I tap again on the arrow, nothing occurs.If I return from there to general settings and select the app again, then it is possible to make a new selection, only once.Is that the normal behavior ?
I would need to have constraints that depend on the orientation of the device. Some in Portrait, another in Landscape.I thought I got it with variations, using hC / hR or wC / wR cominations to detect the orientation.Nearly worked, as for iPhones, when landscape we have hC and when portrait we have wC.But that's not the case for iPhone 11 Pro for instance. In landscape, width is Compact, not regular.I end up with a mess of constraints.So, I would need to express those constraints depending on orientation and not width Compact or regular.I looked at traits variations, but I could not bget it this way. It seems to me it is only a way to use wC, wR …, not to express orientation.I can do it programmatically:- define IBOutlets for those constraints- in viewWillLayout, detect orientation- then adapt constraint constant (or enable / disable preexisting ones) accordingly.Do I need to do it programmatically ?EDITEDI may have found my error, based on wrong understanding on how those variations work.I had first defined constraints variations for hCwC and hCwR. And enable.Then I decided to change to wR only.And I disabled those 2 other.I thought that removed the constraints. ERROR: they are still there and create problem. I had to remove (click on x) to get corret situation.
I've received the usual messages:Your Developer ID Installer Certificate will no longer be valid in 30 days. To generate a new certificate …Your Developer ID Application Certificate will no longer be valid in 30 days. To generate a new certificate …Looking at my Account, I find 3 instances for this Developer ID Installer certificate for MacOS (I do not clean up regularly):- one expiring 2020/01/04 (object of the message)- one expiring 2022/06/13 for the same name and platform.- one expiring 2022/06/16 for the same name and platform.For Developer ID Application, I find 4 cerificates for MacOS- one expiring 2020/01/04 (object of the message) under my name- one expiring 2022/06/13 for the same name under my name.- one expiring 2022/06/16 for the same name under my name.- one expiring 2022/06/30 for the company name.I changed my account from personal to Company several months ago, and that some certificates are listed with my name, not my company.Questions:- Am I safe to let the old certificate expire without doing anything ?- Is there any issue to have it under my name and not my company ?When I look at Account in XCode, Manage Certificates (for Mac Development Certificates and Developer ID Application Certificate), I see some old grayed out (declared as not in keychain) and others apparently valid but labeled as missing private key.However, development goes without problem as well as publication on AppStore.What am I missing here ?
I have a segue from a button in VC A to another VC B that will hold some user adviser content..VC B is as simple as possible: simply a label and a TextView and a Done button (with unwind)I set a Transition style in VC B as "Partial Curl", to have this nice curl effect when uncovering VC B.Problem: when I rotate device to Landscape with B presented, nothing moves, subviews are frozen.But if I segue from A -> B after rotating to Landscape, B is presented correctly.It is just as if curl did create an image and lviewWillLayout is not called anymore (I checked it is called at first presentation of VC B, but not on rorating device).And tapping on the textView causes the view to unwindIs it the normal behavior (which mean Partila Curl should be avoided) ?I also got the following log:2019-12-25 21:36:37.045464+0100 App[34416:13263636] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/Me/Library/Developer/CoreSimulator/Devices/some device ref/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles2019-12-25 21:36:37.045957+0100 App[34416:13263636] [MC] Reading from private effective user settings.So, I solved it by using a more basic Cover transition.But is this the normal behavior ? Could not find in doc.
I propose that we collectively build a list of most wanted XCode features. Those pain points that do make our life more difficult with XCode or less fun.The goal would not be to have a scientifically correct ranking of all those, but simply:- make visible many ideas that have probably been reported in improvement requests- expose in short why that would be a great evolution, what pain point it would solve (functional improvements, not bugs correction)- if possible, discuss the feasibility of each idea.I would agree to update this original post to include new inputs.To avoid a thread where new posts get smaller and smaller in width, would be great to post each new idea as an answer to this original post. Of course discuss an idea as a reply to this idea post itself.Rule of the game would be tolerance, not trying to argue indefinitely on one idea. And be concise in wanted feature descriptionThe ultimate goal would be to influence positively XCode development team to consider the most wanted proposals.At least, have them explain us that one wanted feature in on the way (let's dream), why such idea is not so great, or why it would be too complex to implement…_________________________________Here is a first wanted feature, inspired from a thread in IB forum: https://forums.developer.apple.com/thread/72495Wanted Feature : Storyboard zoom when editing macOS appPain point: makes navigating in MacOS storyboard extremely painful if more than a few windows. Does limit the use of storyboards for MacOS App. The IB post was seen more than 7500 times, so that seems a largely shared concern.Feasibility: done for iOS, so should be possible for MacOS._________________________________Wanted Feature : Automatic/1-button icon, logo, screenshot, launch image generation for all project related devices/screens as mandated by ASC. Current with each new release.Pain point: The number of individually required image-based assets involved for meta data submittals became a burden long ago and continues to require significant labor to suss and satisfy.Feasibility: Xcode already does some of this w/launchStoryboards for new Swift projects, it just needs to be ubiquitous for all similar assets. It's just scripting/image resizing, which should not be a problem on macOS. Yes, I know there are 3rd party tools that help, but they seem to not keep up w/new devices/screen sizes - if they can do it, so can Xcode._________________________________Wanted Feature : More explicit help message when an action cannot be completed in IBPain point: When XCode cannot complete an action (e.g., create an IBOutlet for an IB object), option-cleaning the build folder solves the problem. Numerous issues reported on the forum were solved with this simple action. However, messages from IDE never mention this solution.Feasibility: Just adding (when appropriate) a suggestion in the message._________________________________Wanted Feature : When build fails, propose automatic correction action whenever possiblePain point: As an example, if some asset contains Finder information, a build error occurs, with message "resource fork, Finder information, or similar detritus not allowed Command /usr/bin/codesign failed with exit code 1". One has to go to Terminal, use xattr command and clean laboriously the offending files.Feasibility: As XCode has detected the files, it could propose to do the cleaning itself…- if it can be done with terminal command, so can Xcode._________________________________Wanted Feature : When an API is deprecated, get information on how to replace.Pain point: Most often, when an API is deprecated and we get a warning from compiler, we get no hint on how to replace. Thus, requiring to post on forum (a lot of posts relate to this search for information), search on web to find some hints… At the end losing time and not being sure to make the best decision.Feasibility: Those who deprecated API for sure know how to handle this. Should be (relatively) easy to provide information in doc, and in the deprecation message._________________________________Wanted Feature : When a string is missing for an infoPlist key, give a warning.Pain point: If the required key is missing, app will crash (or be rejected at Appstore verification stage which is a minor harm). I had the case where I called imagePicker, but intended to use only photo, not video. But if user taps on video, that caused a crash.Feasibility: When UIImagePickerControllerDelegate is used, compiler could check that infoPlist is defined for the required keys.._________________________________All comments welcomed.
I have mixed feelings about SwiftUI. It seems fun for sure, really powerful, but…A major issue is that it seems we give up graphical design to return to declarative code. Just as if Finder returned to command line editor…That seems also to blur the concepts of MVC.Most of my concerns are reflected here: h ttps://medium.com/better-programming/swiftui-vs-autolayout-pros-and-cons-of-both-approaches-c09b37b9aff2On the other hand, Autolayout may be really hard to use or debug sometimes, lacks some capabilities, makes it easy to get lost when we have to browse tons of constraints one by one to find out what’s going wrong.Hence I would like to share some ideas here: how could AutoLayout improve, maybe catching some ideas from SwiftUI.1. Be able to edit auto layout constraints in codeMain goal would be to be able to understand and check all the constraints that apply to an IBOutlet in a single place, departing from present situation where you have to inspect one by one, using Size Inspector.Today, we can attach an IBOutlet to a constraint. And I often do this when I need to fine tune the constraint.But is is really tedious and not easy to keep the mental links between IBOutlets and those constraintsToday, I write things like: @IBOutlet weak var zoomInButton: UIButton!
@IBOutlet weak var buttonInViewToImageTopConstraint: NSLayoutConstraint!
@IBOutlet weak var buttonInViewCenterXConstraint: NSLayoutConstraint!And have the constraints change scattered in code.So first idea.When declaring an IBOutlet, be able to get the list of constraints declared in IB.The mechanism could be similar to IBInspectable, but 2 ways: change in IB should reflect in code. @IBOutlet weak var zoomInButton: UIButton! {
// all the constraints that are defined in IB
// Identifier of constraint to search when message in log
// including all variations
}A complexity is that same constraint may be expressed in different objects: (eg, distance between 2): need to keep them sync’ed.Need also to decide who is source of truth.2. New constraint semantic, such as constant computed from other var ; should it introduce didConstraint, willConstraint, to tell when it should be called ? @IBOutlet weak var zoomInButton: UIButton! {
didConstraint {
// new constraints, maybe with reacher semantic
}
}3. Computation as in computed var, for runtime ; such as like conditional constraint, object aspect, … @IBOutlet weak var zoomInButton: UIButton! {
didConstraint {
// new constraints, maybe with reacher semantic, like conditional constraint
}I did not look at how this would be feasible, what to handle what is static vs runtime property…So, some ideas may be weird.
I was downloading XCode 11.3 GM. At about 4GB, loading slowed down.I stopped and tried to restart. Immossible.Then I notice that 11.3 GM has disappearaed from download site.Would anyone know why ?
iOS 13.2 - XCode 11..2I create (in IB) a UISegmentedControl with 8 segments. I know it goes against HIG "Limit the number of segments to improve usability. Wider segments are easier to tap. On iPhone, a segmented control should have five or fewer segments." But let's continue for the sake of investigation.I set the width of each segment to 80.I set the size of the segmentedControl to 400.So, of course, I can just see 5 of them, from n°1 to n°5.When swiping, selection moves, possible beyong the bound, so become invisible.I tried adding a right and left swipe gesture, to select the next or previous segment.Works OK, but when I reach segment n°5, next (n°6) becomes selected but still hidden outside the view of the segmented control.Is it possible to make the segmentedControl scroll to left, so that first visible segment would become n°2 and n°6 gets visible on the right ?Or do I need to set size (or select automatic) so that all segments fit into the visible area ? Or reduce the size of leftmost segments to make room for others after swipe ?
I'm trying to add headers and footers in a collectionView built as compositional.Colmlection is built perfectly, but no supplementary func is never called: neither viewForSupplementaryElementOfKind nor referenceSizeForHeaderInSection or referenceSizeForFooterInSectionSo I must miss some obvious declaration…I've set the delegates, datasource, regitered classes, made room for headers and footers (did I did this correctly though ?).Everything is for the time created in code, for easier testing.import UIKit
class QuickCell4: UICollectionViewCell {
let containerView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
configureViews()
}
func configureViews() {
addSubview(containerView)
containerView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
containerView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
containerView.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
containerView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class MyHeaderFooterClass: UICollectionReusableView {
let titleLabel = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.purple
// Customize here
addSubview(titleLabel)
print("MyHeaderFooterClass")
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func layoutSubviews() {
super.layoutSubviews()
titleLabel.sizeToFit()
titleLabel.frame.origin = CGPoint(x: 15, y: 10)
}
}
class FourthViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
var collectionView: UICollectionView!
let dataColors = [
[UIColor.red, UIColor.blue, UIColor.green, UIColor.magenta, UIColor.purple, UIColor.orange, UIColor.black, UIColor.lightGray, UIColor.blue],
[UIColor.red, UIColor.blue, UIColor.green, UIColor.magenta, UIColor.blue]
]
let collectionViewHeaderFooterReuseIdentifier = "MyHeaderFooterClass"
func createCustomLayout() -> UICollectionViewLayout {
let layout = UICollectionViewCompositionalLayout { (section: Int, environment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in
let leadingItem = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: NSCollectionLayoutDimension.fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0)))
leadingItem.contentInsets = NSDirectionalEdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5)
let leadingGroupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(0.7), heightDimension: .fractionalHeight(1))
let leadingGroup = NSCollectionLayoutGroup.vertical(layoutSize: leadingGroupSize, subitem: leadingItem, count: 1)
let trailingItem = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: NSCollectionLayoutDimension.fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0)))
trailingItem.contentInsets = NSDirectionalEdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5)
let trailingGroupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(0.3), heightDimension: .fractionalHeight(1))
let trailingGroup = NSCollectionLayoutGroup.vertical(layoutSize: trailingGroupSize, subitem: trailingItem, count: 2)
let containerGroupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .absolute(250))
let containerGroup = NSCollectionLayoutGroup.horizontal(layoutSize: containerGroupSize, subitems: [leadingGroup, trailingGroup])
let section = NSCollectionLayoutSection(group: containerGroup)
section.orthogonalScrollingBehavior = .continuousGroupLeadingBoundary
section.contentInsets = NSDirectionalEdgeInsets(top: 20, leading: 0, bottom: 20, trailing: 0)
// section.supplementariesFollowContentInsets = true
return section
}
return layout
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
collectionView = UICollectionView(frame: .zero, collectionViewLayout: createCustomLayout())
collectionView.backgroundColor = .systemTeal // .white
self.collectionView.delegate = self
self.collectionView.dataSource = self
self.collectionView.register(QuickCell4.self, forCellWithReuseIdentifier: "cellID4")
self.collectionView.register(MyHeaderFooterClass.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: collectionViewHeaderFooterReuseIdentifier)
self.collectionView.register(MyHeaderFooterClass.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionFooter, withReuseIdentifier: collectionViewHeaderFooterReuseIdentifier)
// tried adding the following, no change
// if let flowLayout = self.collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
// flowLayout.sectionFootersPinToVisibleBounds = true
// }
configureCollectionView()
}
func configureCollectionView() {
collectionView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(collectionView)
NSLayoutConstraint.activate([
self.collectionView.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor),
self.collectionView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
self.collectionView.leftAnchor.constraint(equalTo: self.view.leftAnchor),
self.collectionView.rightAnchor.constraint(equalTo: self.view.rightAnchor)
])
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
print("Sections: ", dataColors.count)
return dataColors.count
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataColors[section].count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellID4", for: indexPath) as? QuickCell4 {
let colorArray = dataColors[indexPath.section]
cell.containerView.backgroundColor = colorArray[indexPath.row]
return cell
} else {
return UICollectionViewCell()
}
}
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String,
at indexPath: IndexPath) -> UICollectionReusableView {
print("UICollectionViewDelegateFlowLayout")
switch kind {
case UICollectionView.elementKindSectionHeader:
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: collectionViewHeaderFooterReuseIdentifier, for: indexPath) as! MyHeaderFooterClass
headerView.backgroundColor = UIColor.blue
headerView.titleLabel.text = "Header"
return headerView
case UICollectionView.elementKindSectionFooter:
let footerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: collectionViewHeaderFooterReuseIdentifier, for: indexPath) as! MyHeaderFooterClass
footerView.backgroundColor = UIColor.green
footerView.titleLabel.text = "Footer"
return footerView
default:
assert(false, "Unexpected element kind")
}
}
// Step 6: Handle size / make it appear:
// Does it needs to be declared @objc
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
print("referenceSizeForHeaderInSection")
return CGSize(width: collectionView.frame.width, height: 30.0)
}
// Does it needs to be declared @objc
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
print("referenceSizeForFooterInSection")
return CGSize(width: 60.0, height: 30.0)
}
func layoutAttributesForSupplementaryView(ofKind elementKind: String, at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let layoutAttributes = UICollectionViewLayoutAttributes(forSupplementaryViewOfKind: elementKind, with: indexPath)
if elementKind == UICollectionView.elementKindSectionHeader {
layoutAttributes.frame = CGRect(x: 0.0, y: 0.0, width: 200, height: 50) // contentWidth, height: headerHeight)
// layoutAttributes.zIndex = Int.max - 3
}
return layoutAttributes
}
}Credit: h ttps://hackernoon.com/complex-collection-view-layouts-in-swift-with-compositional-layout-z0bmk35kwThe only log I get is:Sections: 2Sections: 2
I have a launch screen, with a png image.I test either on XCode 11.1 or XCode 11.2beta2.1. It shows on simulator (Version 13.2 (SimulatorApp-912.4 SimulatorKit-570.3 CoreSimulator-681.14)), but does not show anymore on device (Xs 13.1.3)However, UILabels show normally.I cannot be sure, but seems to be since I upgraded to 13.1.3 from 13.1.2I have tested in dark and light mode, no effect.I have removed the app from the device and reloaded, no effect.I tested with opaque or non opaque view as launchscreen view, no effectHowever, image is here: I move a Label to be behind it ; it does not show anymore, which indicates that the image hides it. Just as if image as bachground drew but not its content.Changed imageView background from systemBackground color to no color: no change, except it does not hide the label if moved behind (which was expected)I inserted another image, it shows.-> Conclusion, something not correct in my png image.2. In addition, I note that, in XCode, the launchscreen appears always with black backgroung (I set its color to system background) ; but other storyboards appear as white background (same system background setting).Any clue to 1 and 2 ?
I repeat this older thread, as it does not show on the forum with my added post !https://forums.developer.apple.com/message/298938#298938I answered to KMT answer (I read the referenced thread)---------------Looks like that triggered the name change dialog.Can you just right click on the watch name without that happening? Try it on the phone, on the left so see what I'm looking for.Otherwise, this sounds like what others went thru (routine pairing v o o d o o ) in this SO thread - seen it ? [ filter does not like v o o …]https://stackoverflow.com/questions/30792520/in-xcode-i-see-no-paired-apple-watch-even-though-the-watch-is-paired-and-the-w-------------------------So, my question nowI run in the same problem.I just got the Apple Watch (4, OS 5.1.1) and use XCode 10.1. OSX 10.13.6I can create the app + WatchOS on simulator without problem. But not on device.The watch is paired with iPhone.I connect iPhone with USB=> get the message :The iPhone "iPhone XS" can not be used because it requires iTunes 12.9 or later. Do you want to download the latest version of iTunes now?I ignore the message (as I think iTunes 12.9 requires Mojave, isn't it ?). Could it be the problem ???In XCode, I select the scheme iPhone Xs of *** + Apple Watch of XXXI run, it compiles OK, but at the end says:"Finished running myApp on Apple Watch of ***" in the XCode barPlus alert:App installation failedThe host is not paired with the device.I have checked in XCode Devices:- on the left, I see iPhoneXS of ***- but not the Watch- On the right of Devices window, I see the PAIRED WATCHES:Apple Watch of XXXI also checked that Apple Watch is listed with an UDID in the Devices listThe scheme was in Debug mode.So, I changed to release mode, and get the message in Scheme that paired devices not available for debug.So, Compile again, but then get message :Could not launch 'Autonomie' on iPhone XS XXXThere was an error preparing Apple Watch de *** for development.Try reattaching the device to which Apple Watch de *** is paired. The device rejected the pairing attempt.So I unpaired the device.ReattachedTruted the hostRun again, just to get again the messageThe host is not paired with the device.I do not see which and where I should pair.
After seveal years with Swift, I still find it hard to use the if case let or while case let, even worse with opotional pattern if case let x?.So, I would like to find an expression to "speak" case let more naturally.Presently, to be sure of what I do, I have to menatlly replace the if case by the full switch statement, with a single case and default ; pretty tedious.I thought of canMatch or canMatchUnwrap … with:So, following would readif case let x = y { // if canMatch x with yif case let x? = someOptional { // if canMatchUnwrap x with someOptionalwhile case let next? = node.next { // while canMatchUnwrap next with node.nextAm I the only one with such problem ? Have you found a better way ?
When compiling this OSX App in XCode 10 beta 2 (Swift 4.2), I get a warning that did not show in XCode 9.4 each time I create an NSConstraint programmaticallyInstance will be immediately deallocated because property 'myConstraint' is 'weak'fileprivate weak var myConstraint : NSLayoutConstraint!
myConstraint = NSLayoutConstraint(item: aButton, attribute: .top, relatedBy: .equal, toItem: aView, attribute: .bottom, multiplier: 1.0, constant: 30)However, there is no such warning for IBOutlet@IBOutlet fileprivate weak var anotherConstraint : NSLayoutConstraint!Is it a just a new warning for an error that existed before ? Or did something change in NSConstraint ?Should I treat IBOutlet and programmatically created differently with respect to weak ?
Just installed XCode 10.I receive the following warning:2018-06-05 13:25:47.686865+0200 simpleTest[14581:1428592] libMobileGestalt MobileGestalt.c:875: MGIsDeviceOneOfType is not supported on this platform.Cannot find what MGIsDeviceOneOfType is about.Edited : is it related to Mapping and Geographical Information System (“MGIS”) ?