How do I profile an Objective-C program without Xcode? - objective-c

I want to create a Release-build of some Objective-C program with Xcode, install it on a very slow machine, generate profiling output, and analyze that output on my machine. I need to do this in order to chase down a specific bug, which only happens on the slow machine.
Machine 1: has Xcode installed. Can compile the program. Is relatively fast. macOS 10.12
Machine 2: doesn't have Xcode installed. Doesn't have Xcode Instruments installed. Will run the program. Should generate profiling output. If I install Xcode on that machine, it will probably slow down to a level that it becomes completely unusable. Is relatively slow. macOS 10.12
The Xcode command "Build for profiling" sounds promising. But.. if I run that "profile build", what has changed? Does it generate profiling output? If yes, where will it be stored? How can I analyze these files?
Any thoughts, or pointers to Apple documentation? I only found the "Instruments User Guide". It tells me how to use Instruments to profile an application.
This is not an iPhone-question. If you are an iPhone-developer and have never worked with macOS-applications, please don't answer ;)

Related

Is there a way to run IOS Simulator on Windows 10?

I want to run IOS Simulator on Windows 10.
Is there a way to do this?
I dont think its possible to get the iOS simulator working on Windows. But if you are willing to explore a dual boot setup, have patience (and a supported motherboard/processor), then you could use OpenCore or Clover to get a macOS running on your pc. This will give you access to the iOS simulator and the other xcode tools.
If you take this route then you should know that macOS doesnt support ntfs writes out the box. This means that if you decide to create a shared volume that both the mac and windows partition would read and write from, then you would either need a 3rd party ntfs drive (e.g. macfuse) or to format your volume to exFAT (this gave me the best results and was free)
If you intend to run the latest macOS I would recommend going with OpenCore. The latest Clover versions ports pieces of OpenCore to it, and finding documentation on configuring the new Clover was a hassle for me. If you are fine with running Catalina and using an older xcode (and thus older iOS simulator), then I would recommend giving tonymac tools a shot. Building the installer took with very little effort. You need an account to download the tools (this is free but they ask for motherboard/gpu model for community posts and verification that you can actually run their software)
Native testing of iOS apps is only possible on an Apple device. But there are some ways to overcome that.
Some reference to external iOS simulating platforms: https://fossbytes.com/best-ios-emulators-pc-windows-mac/

Does React Native support Apple's M1 macbook pro?

Can ios apps be compiled on the new M1 chipset?
Is there any schedule for official support?
The short answer is yes.
The latest version of XCode (version 12) is compiled as a universal app. This means that it runs on both Intel-based and Mac Sillicon machines natively. From Apple's website:
Xcode 12 is built as a Universal app that runs 100% natively on Intel-based CPUs and Apple Silicon for great performance and a snappy interface.* It also includes a unified macOS SDK that includes all the frameworks, compilers, debuggers, and other tools you need to build apps that run natively on Apple Silicon and the Intel x86_64 CPU.
This means that you should be able to compile iOS with the latest version of XCode without a problem. It would be kind of crazy for Apple to release professional hardware (MacBook Pro) without this capability.
Keep in mind that a number of third party applications may not work well on the ARM machines yet. VSCode is not currently supported on M1 devices (although Microsoft have said that it's coming). VSCode is an Electron based app which currently can't be emulated with Apple's Rosetta II platform. You might not use VSCode, but keep in mind that any Electron based apps that you use may not work straight away.
If you exclusively use XCode and don't critically rely on any third-party apps you should be ok.
EDIT: I just noticed that you tagged your post for react-native. Information is pretty slim for compatibility at the moment, so I would be cautious. If you need a Macbook Pro to do commercial work or school projects right now then you run the risk of things not working as intended. The M1 MacBooks will undoubtedly support everything that you need as a developer in the future and they're particularly great candidates for iOS development because of the parallels made possible by the shared ARM architecture.
If you're relying on a new machine to get work done right now, going with an Intel-based machine is probably the best option. For reference, I recently got an Intel-based 16" MacBook Pro with work because I need to get things done right now without any issues. The commercial value far outweighs the potential benefits that an M1 machine might bring in a year or two. If you're ok with running into some issues over the next few months, I'm sure that the M1 machines will provide plenty of value for years ahead.
While there are problems that do not allow compiling the application.
brew and cocoapods are installed in the console with rosetta enabled.
pod install / update fails because flipper and some parts of RN are not supported by the platform
if you use expo - without cli then everything is ok
updates: now cli working (after update all - homebrew, cocoapods and other to last version)
from what I know, iOS app only compiles on Mac os, so it should work with whatever macOS uses.

How do I setup and run gfortran on Xcode 8 and Sierra

I modified my old fortran code to run on my Mac. Not having an application to develop I left it alone for the last 2.5 years. Now I have an application that I want to write but find that I am generating some error messages. I assume that Xcode and Sierra have changed things enough that the gfortran I am trying to run is not configured correctly, or they just don't match.
I know Xcode was not written for fortran but some of my old code is in a project. I have no idea if was an attempt to use it as a development spot or just a holder for the code. Can someone point me in a direction that will get me going again. I am presently trying to use Terminal but without full success.
The best way to get your code running is to compile gfortran. It will work just fine with macOS Sierra - I have tested it in the past.
All you have to do is to go here:
https://gcc.gnu.org/wiki/GFortran
And compile the code. Simply download sources:
https://gcc.gnu.org/wiki/GFortranSource
> ./configure
> make
and that's it. You can also take a look here:
gfortran is not working on Mac OS X 10.9 (Mavericks)

Temporary iOS Development on Windows [duplicate]

This question already has answers here:
How can I develop for iPhone using a Windows development machine?
(42 answers)
Closed 5 years ago.
I am currently designing and planning an app that I intend to release for iPhone and iPad. I don't currently have a Mac, so I really have no way to actually publish the app, but I don't really want to buy a Mac either just for the development of the app.
Is there any way that I can write (and maybe even test) the app on Windows, then, once I have a finished product, buy a Mac or borrow a friends Mac to publish it.
I know that there is no way to publish to the Apple App Store without a Mac, but I was wondering if there is a way that I could develop and test the app (in Objective-C) on Windows.
I was wondering if there is a way that I could develop and test the app (in Objective-C) on Windows.
No, there is not. XCode is required for iOS development, and it is only available on Mac OS.
You could get a second, cheap hard drive, and install OS X on the hard drive to make your computer into a Hackintosh. You'd need a copy of OS X, and a willingness to break the TOS for the operating system.
This is actually a very frequently asked question, and I'm afraid the answer is no, you cannot do iOS development on Windows.
Back in the iPhone OS 2.0 days there was a cross-compiling framework that did accomplish this but it's abandoned and doesn't work for years now and AFAIK nobody bothered to make it work again (it's a lot of work and requires intimate knowledge about cross-compiling and hunts a constantly moving target).
The usual recommendation is to buy a used Mac Mini since they're cheaply available on sites like eBay.
duskwuff is right to a point... XCode itself is not actually requred in fact there is IDEA's AppCode IDE. Unfortunately, that only runs on OS X. The best thing you can do (other than get a cheap Mac) is install GCC on windows or a Linux VM compile from the command line, as GCC can compile Objective-C. However, that still is not a good solution since you won't have Access to Cocoa Touch and all those calls will error out as undefined or undeclared....
No, you can't. If your going to buy a Mac to publish in the future, why not just buy it now?
You can use OS X in a virtual machine on your windows system. I have read few articles on the internet how to do it using VirtualBox for that (google for it). Even if it's not officially supported by VirtualBox, it's possible. This breaks the TOC for OS X, and you need to buy a copy as well, but VirtualBox is free.
Yes you can!!!
Use virtual box.
Search some guides on "lifehacker.com" about getting mac on virtual box.
It's what I always used before getting a mac.

Is there anyway to compile mac binaries from a windows machine?

Seems like there wouldn't be, but it would help us out if there was. I wish to pull the source down to a windows server and compile it and have it be the same as if I had pulled the source code down to a mac machine and used xcode on it. Any Ideas?
Reasons: Release Engineering and IT are much more familiar and comfortable on windows, so it would be easier on us, and LaunchD sucks.
Your original question had less detail... I think you are creating more problems than you are solving buy not using a Mac. Is it really that hard to learn to compile under Xcode or type make in the console?
Anyway...
Apple uses a modified version of the GCC C/C++/Objective C compiler with a proprietary runtime library... You could develop using a port of this code to Windows. See GNUStep.Org. This is not binary compatible though but it isn't impossible that you could rebuild it to cross compile to something that was Mac OS X compatible.
Another idea would be to develop using c# .NET and then move the binaries across to Mac OS X and run the binaries using Mono....
None of these options are robust enough to allow you to do this blind without a Macintosh to test and get up and running in the first place.
You can compile cross app with Cocotron but only on Mac
Why do you need launchd? cron works just as well on Mac as it does on Linux, just have a cronjob that does (Extremely simplified version ahead):
cd /my/source/dir
git pull # You are using Git, right?
xcodebuild MyCoolProject.xcodeproj
cp -r build/MyApp.app /the/distribution/folder