Post

Replies

Boosts

Views

Activity

Reply to Communicate between iOS and macOS ?
You're effectively asking how to implement networking in a heterogeneous peer-to-peer environment. That phrase and some keywords from the above answers should give you search strings. I used a variation of that and got to a Stack Overflow topic entitled Android/iOS Peer-To-Peer architecture [closed] (can't link to SO from here) and to the above-linked Apple Support article on peer-to-peer protocols. You might also find yourself incorporating and using libtls or libsodium (can't link to that) for network communications here, as most of these cases will want encrypted connections. Stanford CS193A provides an intro to Android including networking, and CS193P is the equivalent course for iPhone and iPad development. Both have classes posted on YouTube. For an app that is cross-platform, networked, and targets secure communications, Signal has source code posted. Depending on exactly what you're doing, Unity or another third-party product might be of interest here, too.
Topic: Programming Languages SubTopic: Swift Tags:
Mar ’22
Reply to Unauthorized connection to my MacBook Air
The message reported is probably "your screen is being observed". Various of the possibilities are harmless. This message can be triggered by remote access for screen sharing when that is configured and enabled (System Preferences > Sharing > Screen Sharing, and Remote Login, and Remote Management), if AirPlay is in use, by a screen recording session previously triggered and left to record, and by add-on apps that tie into the display (System Preferences > Security & Privacy > Accessibility will list the apps that can access the display). What to do? Update to current macOS, ensure your backups are complete and current and rotating off-site if your data is sufficiently valuable, remove any add-on security apps or add-on VPN client apps or related sorts of apps, and change your macOS login password or passwords, and change your Apple ID password. Use new and unique and robust values for all passwords, as attackers routinely search for re-used passwords are actively sought and that can be with disastrous consequences. If you're connected on a private network that you control, also make sure that somebody hasn't poked paths in through the network firewall / router / gateway / NAT box; if somebody has unnecessarily enabled port forwarding for any ports, and particularly for TCP port 5900. (List of Apple well-known ports.) As for tracking the origin of a remote connection, that tends to be approximately futile. These sorts of questions are generally better addressed in the Apple Support Communities, too. FWIW.
Topic: App & System Services SubTopic: Hardware Tags:
Mar ’22
Reply to How exactly did 32 bit support get removed in OSX? (read carefully please)
The technical aspects have been well-answered above, and—for books—Levin's three-volume new OS X book replaces the book that was mentioned above, and is a good resource. Now consider this at a higher level... Compatibility is something all users and developers want, as we're otherwise building apps on a shifting foundation of mud and sticks, and that gets tedious and expensive. Conversely, rote rigidity is not desirable, however. We don't get updates and enhancements, or they're slower, or more complex. As valuable as API and ABI compatibility is, rote compatibility means the platform is locked into older designs and older limits and older bugs, which can constrain or even prevent desirable changes, and increases the costs of current and future work. More generally, removing the older and limited and insecure APIs and ABIs means the old code supporting all that can also be ripped out, and the bug reports around issues and exploits that might be present closed, and which means you're writing more code in your hypothetical replacement project to retrofit those older interfaces into the newer environment. Using something else that you're probably familiar with (this based on your nick) as an example of the strategy that Apple follows here, transport layer security (TLS) is a wrapper that is intended to provide a range of different choices for a secure key exchange, for the encryption used, and the handshake itself. This design allows a range of choices that can be used, and allows newer and more secure choices to be made available, while also allowing older and insecure key exchanges, ciphers, and handshakes to be deprecated and eventually to be removed as and if necessary. What happens with TLS is also what happens with APIs and ABIs within most any platform that is being actively updated, though not necessarily as "cleanly" as the TLS design. ABIs and APIs can need to be retired and replaced, though—to avoid churning apps and developers—that deprecation and retirement and (where applicable) replacement preferably happens at timeframes longer than the LTS for the platform, or longer. In the case of Apple, the 64-bit transition started with OS X 10.5 and 10.6; a while ago. The 64-bit transition also removed the Carbon APIs, which were deprecated at OS X 10.8. Among other older and 32-bit code. Could you craft a completely compatible design, given sufficient time and money? Probably. But parts of it will—like older TLS versions—be insecure or busted or otherwise limited. And now your platform code is that much more complex and convoluted and unstable and limited. And that much more insecure. And can block some of the changes you might want to implement—such as a hypothetical ABI that previously specified an eight byte user-allocated buffer for a cryptographic hash being replaced with a now-secure cryptographic hash requiring sixteen or thirty-two bytes. Keeping that old ABI means you're inherently dragging around fodder for exploits. Or for your retrofit, now you're reimplementing the bug. Even ill-used code has to be built and maintained and tested and secured. The other wrinkle here is that all this app compatibility work and all this investment is intended for apps that aren't being maintained or invested by their vendors, or by users wishing to avoid purchasing newer versions of those apps. Or put differently, folks that aren't spending or aren't buying. In short, the "can't be done" is pretty close. Not at a price and with a development schedule and with the inherent limitations to changes that most of us would be willing to pay. Boot a hypervisor guest on Intel platforms. Maybe boot an emulator and a guest (QEMU?) on Apple silicon. Or maybe update the apps once a decade, or purchase newer versions or alternatives of those same apps occasionally.
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’22
Reply to Terminal problem
Clean out your local login scripts, as you've or something you've installed has seemingly modified one of them in an untoward way. Finder can be used to rename the scripts. Use Command-Shift-Period to toggle hidden files, and you can then temporarily rename the zsh login files to reset your environment. Here's an intro to what goes where among the login scripts, and indirectly an intro to the scripts involved with zsh: https://newbedev.com/what-should-shouldn-t-go-in-zshenv-zshrc-zlogin-zprofile-zlogout
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’22
Reply to Port 25 blocked, can't figure out by whom?
You need to set up port forwarding in your firewall for TCP 25, TCP 587, and TCP 993 or TCP 995, and that forwarding needs to map to your mail server IP address. The mail server IP address on your internal network—one of the three private IP blocks most likely, if you don't have a block of public static addresses and don't have your mail server directly connected—should be a static IP address. You need a static IP address and proper forward and reverse DNS—and you don't presently have that for DNS, with no MX and a reverse that tracks back to TWC/RR—or you need to set up a mail relay. Mismatched DNS means your mail server is considered a spam engine by other mail servers, based solely on DNS. It'll get dropped. Other than fixing your DNS, or relaying, there is nothing you can do about this. And if the remote server uses reputation or other filtering techniques, mail can still get dropped on the destination server. As for incoming or arriving mail, I've worked with various mail servers which will reject sending messages to servers with misconfigured DNS. If you do have a static IP with TWC/RR, then chat with them about setting up forward and reverse DNS correctly for your usage here both in the TWC/RR network, and port forwarding within your firewall. % dig +short -x 107.15.211.220 cpe-107-15-211-220.nc.res.rr.com. % dig +short -t MX Goravani.com 5 Goravani.com. % dig +short Goravani.com 107.15.211.220 % Start with a discussion with your ISP about TCP 25, 587, and 993 or 995. Fix the PTR record for your mail server (from TWC/RR to your domain), too. Or set up to relay through the TWC/RR mail servers. Or host remotely, of course.
Topic: App & System Services SubTopic: Hardware Tags:
Apr ’22
Reply to macOS sign app
And the other part of that question... Apple documents manual code-signing using the codesign tool and the command line in the Code Signing Guide. You'll become quite familiar with the tools referenced in that document, too. As a potential alternative, Xcode can use external build scripts for whatever tools or languages are involved in your app.
Topic: App & System Services SubTopic: Core OS Tags:
Apr ’22
Reply to Macro en excel
Sería mejor preguntarle a Microsoft: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel?sort=LastReplyDate&dir=Desc&tab=All&status=all&mod=&modAge=&advFil=&postedAfter=&postedBefore=&threadType=all&isFilterExpanded=false&page=1
Topic: App & System Services SubTopic: Core OS Tags:
Apr ’22
Reply to How to block "Force quit" from activity monitor on my application
If somebody is deliberately issuing a force-quit or a SIGKILL against a daemon or agent (which mostly or entirely lack a UI, and quite possibly operating "behind" XPC) and you need to prevent that force-quit or SIGKILL, there are seemingly bigger issues with the app design, or with the administration of the Mac. Might you be writing either security-related code (malware scanner, etc), or maybe code that's caching data when it probably shouldn't (and thus also potentially vulnerable to ill-timed power outages)? Remediating those two situations goes in very different directions... For anyone here unfamiliar with the, um, background: Technical Note TN2083: Daemons and Agents
Apr ’22
Reply to Emulate Big Sur on M1 Monterey
Emulating x86-64 system hardware and processor on an Apple silicon Arm AArch64 system hardware and processor, sufficient to boot an operating system? From Apple? Absolutely not going to happen. Rosetta 2 does user-mode x86-64 emulation, uses calls macOS itself to run the macOS code, and is not full hardware emulation. From QEMU or such, maybe, possibly, probably. This with the older operating system booted as a guest, with both virtualization and emulation active. Won't be speedy. More generally, it's time to update or to replace or to retire your remaining x86-64-only apps, or to lock down your hardware and software plans and accrue the spare parts necessary to remain on an older version and older hardware for the foreseeable future for whatever now-older apps are in use here.
Topic: App & System Services SubTopic: Core OS Tags:
May ’22
Reply to Universal Control Stability
It's listed as a beta. Apple uses that phrasing when they expect or when they know gremlins await. If you can figure out any pattern to your disconnective discontrol discombobulations, log a radar bug report with Apple with any reproducer and details and hardware involved.
Topic: App & System Services SubTopic: Core OS Tags:
May ’22
Reply to iPhone models to support
This is centrally your decision. Considering this support question more generally, I’d be inclined to pick a smaller subset of (newer) that can be tested and supported and that can run your app with adequate performance and features, and then expand that list over time as warranted. If you decide to support them, you’ll want to test with older and smaller (and slower) iPhone models, just so you know what your app looks like on those. iOS 13, iOS 14, and iOS 15 do require iPhone 6s and newer. The features available with iOS 13, iOS 14, and iOS 15 further depend on the particular iPhone model. Older iPhone models such as iPhone 6s—though supported—lack access to certain newer features of iOS 13, iOS 14, and iOS 15. For details on these older models and associated feature limits, scan these footnotes. Though it’s entirely your call, I wouldn’t spend all that much time with iOS 13 and iOS 14 support (to start with), as those versions tend to be used by folks either with insufficient storage, or with lackluster update practices. Folks that can potentially be support problems awaiting, in other words. As for other considerations you might not have pondered, maybe also iPad, and maybe what your app looks like on Mac M1—if you want to enable that for your app. With the upcoming WWDC, we’ll likely know more about what Apple plans for iOS support for the various models. Again, your call, and your trade-offs.
May ’22
Reply to Prevent iOS from killing the app while suspended
Re-code the app to contend with what can and variously will happen here; that the app can quite possibly be suspended and resumed. That re-coding might involve storing the data locally and/or queuing an event for later, or contacting a remote server and logging / tracking the activity there. And as for your questions, no, and no. https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/about_the_background_execution_sequence https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/extending_your_app_s_background_execution_time
Topic: App & System Services SubTopic: Core OS Tags:
Jun ’22