Any help much appreciated
Steve
Details:
It was written on windows and works on that platform. Once upon a time I would’ve had Livecode installed on a mac too and would build the Mac standalone there. Now, what with licence requirements and all I’m trying to do the build on windows and simply install the finished .app folder for testing.
On the mac I put the built .app folder into the applications folder (where it crashes when clicked).
The app uses a standalone splash-screen, on windows this get put in the program files(x86) folder, on macs it gets put in a folder contents/macOS in the .app folder.
The splash-screen opens a livecode ‘home’ stack where everything else is done.
On windows this livecode home stack gets put in /AppData/Roaming.
On the mac I’ve put it into the .app folder/resources folder.
A preferences text file is created, so users can set their own scaleFactor and font choice. This I try to put in Documents (nothing gets created on the mac, it crashes beforehand).
The file-paths get put into globals (splashscreen, prefsFile, HomeStak) so hopefully it shouldn't matter if they're different.
I have no idea why it’s crashing. I tried putting answer messages in the standalone but they’re not working (presumably the crash happens before then).
I could perhaps install livecode on the mac (switching seats? not sure if I can do this with my employer's indy licence, and I'd rather not unless I have to -- this project is already overdue).
The main stack (in the code below this is 'homeStak') has sound files and is quite large (144mb). It also has thousands of lines of code. I can't see any easy way of providing it. I don’t think it’s getting as far as opening the main stack.
The issue may even be with my standalone build mac settings. (Which I could supply if it'd help).
The splash-screen stack (pre-build) is tiny. Here's the code:
Code: Select all
on preOpenStack
if the platform is Win32 then
put Arial into theFont
else
put Helvetica into theFont
end if
repeat with i = 1 to the number of flds of this stack
set the textFont of this stack to theFont
end repeat
set the loc of this stack to the screenloc
set the passkey of this stack to [password goes here]
set the navigationArrows to false
set the visible of this stack to true
set the loc of this stack to the screenLoc -- middle of screen
show img 1
set lockcursor to true
end preOpenStack
on openStack
global splashScreen, homeStak, prefsFile, fullScn, theScale, openCount -- all set/initialised here
put 0 into openCount
get the long name of this stack --file path on hard drive
delete the first word of it --stack
delete the first char of it -- "
delete the last char of it -- "
put it into splashScreen -- exe file
put it into thisStackPath
set itemDel to "/"
delete the last item of thisStackPath --the name of the current stack, leaving the file path (separated by commas)
if the platform is Win32 then
set the dontuseqteffects to true
set the dontuseQT to true
put specialfolderpath(0x001a) into appData --C:/Users/Steve/AppData/Roaming
put specialfolderpath(0x0005) into myDocs --C:\Users\Steve\Documents CSIDL_PERSONAL = 0x0005
put "/Gupapuyngu_" & fld exeVerFld after appData
else
put specialfolderpath(resources) into appData
put specialfolderpath(documents) into myDocs --
end if
put "/Gupapuyngu_" & fld exeVerFld after myDocs
if there is not a folder myDocs then
create folder myDocs
end if
put appData & "/Gup_main.livecode" into homeStak
put myDocs & "/Gupapuyngu_prefs.txt" into prefsFile -- global set here
put empty into theScale
if there is a file prefsFile then
open file prefsFile for read
read from file prefsFile until EOF
put it into fld prefsFld of cd 1 of stack homeStak
else -- create text file
put fld prefsDefaultFld of cd 1 of stack homeStak into fld prefsFld of cd 1 of stack homeStak
open file prefsFile for write
write fld prefsFld of cd 1 of stack homeStak to file prefsFile
end if
close file prefsFile
if the platform is Win32 then
put lineOffset("winfont:", fld prefsFld of cd 1 of stack homeStak) into fontLine
else
put lineOffset("macfont:", fld prefsFld of cd 1 of stack homeStak) into fontLine
end if
put line fontLine of fld prefsFld of cd 1 of stack homeStak into theFont
set itemDel to ":"
put item 2 of theFont into theFont
repeat with p = 1 to the number of cds of stack homeStak
repeat with i = 1 to the number of flds of cd p of stack homeStak
set the textFont of fld i of cd p of stack homeStak to theFont
end repeat
end repeat
put lineOffset("scale:", fld prefsFld of cd 1 of stack homeStak) into viewSetting
put item 2 of viewSetting into viewSetting
if viewSetting is "Full" then -- will start in fullscreen mode
put "true" into fullScn
end if
if viewSetting is a number then -- will start at this scale
put viewSetting into theScale
end if
if there is a stack homeStak then
if fullScn is "true" then
set the fullscreenmode of stack homeStak to "letterbox"
set the fullscreen of stack homeStak to true
else
set the fullscreen of stack homeStak to false
if theScale is not empty then -- will be a number from above
set the scaleFactor of stack homeStak to theScale
end if
end if
end if
set the passkey of stack homeStak to [password goes here]
set the loc of stack homeStak to the screenLoc
set the visible of stack splashScreen to false
set the visible of stack homeStak to true
set lockMessages to false
set the loc of stack homeStak to the screenLoc
go to cd 1 of stack homeStak
set cursor to arrow
lock cursor
unlock screen
end openStack