Converting 32 bit Cocoa app to 64 bit


Peter Hudson
 

I am looking at converting a 32 bit Cocoa app to 64 bit.
I have found some archived Apple docs on the subject, namely "64-Bit Transition Guide for Cocoa

Two questions :-

1. This guide was last Updated: 2013-09-17  -   Is there a later version of this guide ?  
2. The guide speaks of a script  - ConvertCocoa64 to run in the terminal. 
I can’t find this script on my machine - and it doesn’t run using the instructions given.

Any help gratefully received.

Peter


Gary L. Wade
 

Not sure which Xcode that was against, but you might look at developer.apple.com downloads to find the Xcode or more tools available at that time to see if it’s in there, but that’s no guarantee it’ll help with a modern Xcode project. You might try the Convert to Modern Objective-C Syntax and ARC. And turn on pedantic warnings and warnings to errors to ensure the right types.

On Dec 20, 2018, at 2:55 PM, Peter Hudson via Groups.Io <Peter.hudson@...> wrote:

I am looking at converting a 32 bit Cocoa app to 64 bit.
I have found some archived Apple docs on the subject, namely "64-Bit Transition Guide for Cocoa

Two questions :-

1. This guide was last Updated: 2013-09-17  -   Is there a later version of this guide ?  
2. The guide speaks of a script  - ConvertCocoa64 to run in the terminal. 
I can’t find this script on my machine - and it doesn’t run using the instructions given.

Any help gratefully received.

Peter


 



On Dec 20, 2018, at 5:35 PM, Gary L. Wade <garywade@...> wrote:

 And turn on pedantic warnings and warnings to errors to ensure the right types.

“pedantic” is probably overkill, but “-Wall” (or the equivalent in the Build Settings UI) is good, as is “-Werror” / “Treat Warnings As Errors”.

The most important warnings to enable are the ones related to implicit conversions, like “Implicit Conversion to 32-bit Type”, “Suspicious Implicit Conversions”, etc. These will catch attempts to cast a size_t or NSUInteger or pointer to a 32-bit int.

It’s also useful to look for the literal “4”, i.e. places where sizeof( ) should have been used but someone just assumed that an int or pointer or whatever was 4 bytes long.

—Jens