From a3d496fd464b3d68d5467608bfcd81b94293d7b0 Mon Sep 17 00:00:00 2001 From: Jason Morley Date: Tue, 10 Sep 2024 20:37:55 -1000 Subject: [PATCH] feat: Mac Catalyst builds (#360) This change disables the Lua embedding step as this doesn't work with Catalyst builds thanks to an Xcode/SwiftPM bug. Instead, we're relying on a separate build step to catch Lua syntax errors in CI. It's imperfect, but better than nothing. --- .github/workflows/build.yaml | 2 + ...rtOptions.plist => ExportOptions-iOS.plist | 0 ExportOptions-macCatalyst.plist | 27 ++ OpoLua.xcodeproj/project.pbxproj | 239 ++---------------- OpoLua/Info.plist | 2 + OpoLua/Model/Sound.swift | 1 + OpoLua/OpoLua.entitlements | 2 + .../AllProgramsViewController.swift | 2 + .../DirectoryViewController.swift | 2 + ...atalyst_App_Store_Profile.provisionprofile | Bin 0 -> 13710 bytes scripts/build.sh | 59 +++-- scripts/release.sh | 14 + swift/PsiLuaEnv.swift | 6 +- 13 files changed, 110 insertions(+), 246 deletions(-) rename ExportOptions.plist => ExportOptions-iOS.plist (100%) create mode 100644 ExportOptions-macCatalyst.plist create mode 100644 profiles/OpoLua_Mac_Catalyst_App_Store_Profile.provisionprofile diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c6007e5f..a2356ce4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,6 +34,8 @@ jobs: APPLE_DISTRIBUTION_CERTIFICATE_BASE64: ${{ secrets.PERSONAL_APPLE_DISTRIBUTION_CERTIFICATE_BASE64 }} APPLE_DISTRIBUTION_CERTIFICATE_PASSWORD: ${{ secrets.PERSONAL_APPLE_DISTRIBUTION_CERTIFICATE_PASSWORD }} + MACOS_DEVELOPER_INSTALLER_CERTIFICATE_BASE64: ${{ secrets.PERSONAL_MACOS_DEVELOPER_INSTALLER_CERTIFICATE_BASE64 }} + MACOS_DEVELOPER_INSTALLER_CERTIFICATE_PASSWORD: ${{ secrets.PERSONAL_MACOS_DEVELOPER_INSTALLER_CERTIFICATE_PASSWORD }} APPLE_API_KEY_BASE64: ${{ secrets.PERSONAL_APPLE_API_KEY_BASE64 }} APPLE_API_KEY_ISSUER_ID: ${{ secrets.PERSONAL_APPLE_API_KEY_ISSUER_ID }} diff --git a/ExportOptions.plist b/ExportOptions-iOS.plist similarity index 100% rename from ExportOptions.plist rename to ExportOptions-iOS.plist diff --git a/ExportOptions-macCatalyst.plist b/ExportOptions-macCatalyst.plist new file mode 100644 index 00000000..083dcd95 --- /dev/null +++ b/ExportOptions-macCatalyst.plist @@ -0,0 +1,27 @@ + + + + + destination + export + installerSigningCertificate + C44BC9291462AE6729496E2CAC18CE475688F8CD + manageAppVersionAndBuildNumber + + method + app-store-connect + provisioningProfiles + + uk.co.inseven.opolua + OpoLua Mac Catalyst App Store Profile + + signingCertificate + 91DADFE184A1526FA94D4513D5B4C75E1DB3B252 + signingStyle + manual + teamID + QS82QFHKWB + uploadSymbols + + + diff --git a/OpoLua.xcodeproj/project.pbxproj b/OpoLua.xcodeproj/project.pbxproj index 10e02b0a..14a0a46d 100644 --- a/OpoLua.xcodeproj/project.pbxproj +++ b/OpoLua.xcodeproj/project.pbxproj @@ -33,6 +33,7 @@ D82A37B827A9B43F00D8F5F4 /* DirectoryMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D82A37B727A9B43F00D8F5F4 /* DirectoryMonitor.swift */; }; D82D2FCC27AB4FBC001A4283 /* RecursiveDirectoryMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D82D2FCB27AB4FBC001A4283 /* RecursiveDirectoryMonitor.swift */; }; D82D2FCE27AC3E62001A4283 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = D82D2FCD27AC3E62001A4283 /* Error.swift */; }; + D82D76082C9142740040265E /* src in Resources */ = {isa = PBXBuildFile; fileRef = D82D76072C9142740040265E /* src */; }; D84ADB162771D937001ABFB4 /* Device.swift in Sources */ = {isa = PBXBuildFile; fileRef = D84ADB152771D937001ABFB4 /* Device.swift */; }; D84ADB182771DAB9001ABFB4 /* NSNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = D84ADB172771DAB9001ABFB4 /* NSNotification.swift */; }; D8535A28277139AB00DFCE29 /* Sound.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8535A27277139AB00DFCE29 /* Sound.swift */; }; @@ -108,64 +109,21 @@ D8FE60092757208000711717 /* ApplicationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8FE60082757208000711717 /* ApplicationError.swift */; }; DB0366A82C42E85500187DD0 /* PsiLuaEnv.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB0366A72C42E85500187DD0 /* PsiLuaEnv.swift */; }; DB0B914A276E1BC5006F5CD0 /* OplKeyCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB0B9149276E1BC5006F5CD0 /* OplKeyCode.swift */; }; - DB0B91862771031F006F5CD0 /* sis.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB0B91842771031F006F5CD0 /* sis.lua */; }; DB0B9191278369A4006F5CD0 /* BitmapFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB0B9190278369A4006F5CD0 /* BitmapFont.swift */; }; DB0B919327836E70006F5CD0 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = DB0B919227836E70006F5CD0 /* fonts */; }; - DB0B91952789C561006F5CD0 /* directfilestore.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB0B91942789C561006F5CD0 /* directfilestore.lua */; }; - DB10E5892C84567C00F63541 /* printer_oxh.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB10E5882C84567C00F63541 /* printer_oxh.lua */; }; - DB10E58B2C84568800F63541 /* printer.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB10E58A2C84568700F63541 /* printer.lua */; }; - DB10E5B62C845A0700F63541 /* gprinter.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB10E5B52C845A0700F63541 /* gprinter.lua */; }; - DB10E6392C848E7900F63541 /* dbase.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB10E6382C848E7900F63541 /* dbase.lua */; }; - DB10E63B2C848E8800F63541 /* dbase_oxh.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB10E63A2C848E8800F63541 /* dbase_oxh.lua */; }; DB3FAC2E27C2CA4A004155C1 /* CGRect.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB3FAC2D27C2CA49004155C1 /* CGRect.swift */; }; - DB5AC970275198A20043FE5C /* database.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB5AC96F275198A20043FE5C /* database.lua */; }; - DB5AC972275577990043FE5C /* mbm.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB5AC971275577980043FE5C /* mbm.lua */; }; DB5AC974275681510043FE5C /* CanvasView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB5AC973275681510043FE5C /* CanvasView.swift */; }; DB5AC9762757B6ED0043FE5C /* OpoIoHandler_CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB5AC9752757B6ED0043FE5C /* OpoIoHandler_CoreGraphics.swift */; }; - DB5AC97A275AC72A0043FE5C /* sound.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB5AC979275AC72A0043FE5C /* sound.lua */; }; - DB5AC97C275CD5690043FE5C /* opl.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB5AC97B275CD5690043FE5C /* opl.lua */; }; DB6B438427A55D1200625788 /* RootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB6B438327A55D1200625788 /* RootView.swift */; }; DB79001D2746BC33005E904F /* OpoIoHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB79001B2746B88F005E904F /* OpoIoHandler.swift */; }; - DB7900262746D915005E904F /* defaultiohandler.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB7900242746D915005E904F /* defaultiohandler.lua */; }; DB79FFBE2742D99C005E904F /* ProgramViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB79FFBD2742D99C005E904F /* ProgramViewController.swift */; }; DB79FFDF2742DEBE005E904F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB79FE6227428292005E904F /* AppDelegate.swift */; }; DB79FFE62742E596005E904F /* OpoInterpreter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB79FFE52742E596005E904F /* OpoInterpreter.swift */; }; - DB79FFF02742E631005E904F /* runtime.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFE82742E631005E904F /* runtime.lua */; }; - DB79FFF12742E631005E904F /* init.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFE92742E631005E904F /* init.lua */; }; - DB79FFF22742E631005E904F /* fns.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFEA2742E631005E904F /* fns.lua */; }; - DB79FFF32742E631005E904F /* opofile.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFEB2742E631005E904F /* opofile.lua */; }; - DB79FFF42742E631005E904F /* runopo.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFEC2742E631005E904F /* runopo.lua */; }; - DB79FFF52742E631005E904F /* dumpopo.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFED2742E631005E904F /* dumpopo.lua */; }; - DB79FFF62742E631005E904F /* stack.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFEE2742E631005E904F /* stack.lua */; }; - DB79FFF72742E631005E904F /* ops.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB79FFEF2742E631005E904F /* ops.lua */; }; - DB93498A27DD2F1000DB8723 /* sibosyscalls.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB93498927DD2F1000DB8723 /* sibosyscalls.lua */; }; - DB93498E27E659CA00DB8723 /* oplkeycode.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB93498D27E659CA00DB8723 /* oplkeycode.lua */; }; DB9533FE27AC06A1001CF58D /* FlagSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB9533FD27AC06A1001CF58D /* FlagSet.swift */; }; - DB95340127AE91B6001CF58D /* recognizer.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB95340027AE91B6001CF58D /* recognizer.lua */; }; DB9F837127D3834000940D5C /* z-s5 in Resources */ = {isa = PBXBuildFile; fileRef = DB9F837027D3834000940D5C /* z-s5 */; }; - DBA18836279C408A00B2954B /* dialog.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBA18835279C408A00B2954B /* dialog.lua */; }; - DBBC73F52BA21EFB008BBC72 /* compiler.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC73F32BA21ECE008BBC72 /* compiler.lua */; }; - DBBC73F62BA21F06008BBC72 /* system_oxh.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC73E92BA21EAA008BBC72 /* system_oxh.lua */; }; - DBBC73F72BA21F06008BBC72 /* date_oxh.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC73EA2BA21EAA008BBC72 /* date_oxh.lua */; }; - DBBC73F82BA21F06008BBC72 /* const_oph.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC73EB2BA21EAA008BBC72 /* const_oph.lua */; }; - DBBC73F92BA21F06008BBC72 /* bmp_oxh.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC73EC2BA21EAA008BBC72 /* bmp_oxh.lua */; }; - DBBC73FA2BA21F06008BBC72 /* toolbar_oph.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBBC73ED2BA21EAA008BBC72 /* toolbar_oph.lua */; }; - DBE2917C278CCB0B00EE824B /* crc.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBE2917B278CCB0B00EE824B /* crc.lua */; }; DBE2917E27932C5400EE824B /* ClockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE2917D27932C5300EE824B /* ClockView.swift */; }; - DBE291802794813F00EE824B /* rsc.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBE2917F2794813D00EE824B /* rsc.lua */; }; DBE291822795F86200EE824B /* UIKeyModifierFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE291812795F86100EE824B /* UIKeyModifierFlags.swift */; }; - DBE291842796FA1900EE824B /* const.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBE291832796FA1900EE824B /* const.lua */; }; - DBE29186279747D100EE824B /* menu.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBE29185279747D000EE824B /* menu.lua */; }; - DBE91523276A9D0A00BDB8F5 /* memory.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBE91522276A9D0900BDB8F5 /* memory.lua */; }; DBE91525276D25AA00BDB8F5 /* UIKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE91524276D25A900BDB8F5 /* UIKey.swift */; }; - DBF28C5C2B49C0A00044C330 /* toolbar.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C5B2B49C0A00044C330 /* toolbar.lua */; }; - DBF28C612B49C3630044C330 /* aif.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB0B91832771031F006F5CD0 /* aif.lua */; }; - DBF28C6A2B49C52D0044C330 /* systinfo.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C642B49C52D0044C330 /* systinfo.lua */; }; - DBF28C6B2B49C52D0044C330 /* system.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C652B49C52D0044C330 /* system.lua */; }; - DBF28C6C2B49C52D0044C330 /* alarm.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C662B49C52D0044C330 /* alarm.lua */; }; - DBF28C6D2B49C52D0044C330 /* sysram1.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C672B49C52D0044C330 /* sysram1.lua */; }; - DBF28C6E2B49C52D0044C330 /* date.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C682B49C52D0044C330 /* date.lua */; }; - DBF28C6F2B49C52D0044C330 /* bmp.lua in CopyFiles */ = {isa = PBXBuildFile; fileRef = DBF28C692B49C52D0044C330 /* bmp.lua */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -175,49 +133,6 @@ dstPath = dummyCopyLocationForLuaFiles; dstSubfolderSpec = 16; files = ( - DBBC73F62BA21F06008BBC72 /* system_oxh.lua in CopyFiles */, - DBBC73F72BA21F06008BBC72 /* date_oxh.lua in CopyFiles */, - DBBC73F82BA21F06008BBC72 /* const_oph.lua in CopyFiles */, - DBBC73F92BA21F06008BBC72 /* bmp_oxh.lua in CopyFiles */, - DBBC73FA2BA21F06008BBC72 /* toolbar_oph.lua in CopyFiles */, - DBBC73F52BA21EFB008BBC72 /* compiler.lua in CopyFiles */, - DB5AC97C275CD5690043FE5C /* opl.lua in CopyFiles */, - DBE291842796FA1900EE824B /* const.lua in CopyFiles */, - DBE291802794813F00EE824B /* rsc.lua in CopyFiles */, - DBE2917C278CCB0B00EE824B /* crc.lua in CopyFiles */, - DB0B91952789C561006F5CD0 /* directfilestore.lua in CopyFiles */, - DB93498E27E659CA00DB8723 /* oplkeycode.lua in CopyFiles */, - DBF28C5C2B49C0A00044C330 /* toolbar.lua in CopyFiles */, - DBF28C612B49C3630044C330 /* aif.lua in CopyFiles */, - DB5AC97A275AC72A0043FE5C /* sound.lua in CopyFiles */, - DB5AC970275198A20043FE5C /* database.lua in CopyFiles */, - DB79FFF22742E631005E904F /* fns.lua in CopyFiles */, - DBE29186279747D100EE824B /* menu.lua in CopyFiles */, - DB95340127AE91B6001CF58D /* recognizer.lua in CopyFiles */, - DBA18836279C408A00B2954B /* dialog.lua in CopyFiles */, - DB79FFF72742E631005E904F /* ops.lua in CopyFiles */, - DB79FFF52742E631005E904F /* dumpopo.lua in CopyFiles */, - DBE91523276A9D0A00BDB8F5 /* memory.lua in CopyFiles */, - DB79FFF62742E631005E904F /* stack.lua in CopyFiles */, - DB7900262746D915005E904F /* defaultiohandler.lua in CopyFiles */, - DB79FFF32742E631005E904F /* opofile.lua in CopyFiles */, - DB79FFF42742E631005E904F /* runopo.lua in CopyFiles */, - DB79FFF12742E631005E904F /* init.lua in CopyFiles */, - DB79FFF02742E631005E904F /* runtime.lua in CopyFiles */, - DB93498A27DD2F1000DB8723 /* sibosyscalls.lua in CopyFiles */, - DB5AC972275577990043FE5C /* mbm.lua in CopyFiles */, - DB0B91862771031F006F5CD0 /* sis.lua in CopyFiles */, - DBF28C6C2B49C52D0044C330 /* alarm.lua in CopyFiles */, - DBF28C6B2B49C52D0044C330 /* system.lua in CopyFiles */, - DBF28C6E2B49C52D0044C330 /* date.lua in CopyFiles */, - DBF28C6F2B49C52D0044C330 /* bmp.lua in CopyFiles */, - DBF28C6A2B49C52D0044C330 /* systinfo.lua in CopyFiles */, - DBF28C6D2B49C52D0044C330 /* sysram1.lua in CopyFiles */, - DB10E5892C84567C00F63541 /* printer_oxh.lua in CopyFiles */, - DB10E58B2C84568800F63541 /* printer.lua in CopyFiles */, - DB10E5B62C845A0700F63541 /* gprinter.lua in CopyFiles */, - DB10E63B2C848E8800F63541 /* dbase_oxh.lua in CopyFiles */, - DB10E6392C848E7900F63541 /* dbase.lua in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -247,6 +162,7 @@ D82A37B727A9B43F00D8F5F4 /* DirectoryMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectoryMonitor.swift; sourceTree = ""; }; D82D2FCB27AB4FBC001A4283 /* RecursiveDirectoryMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecursiveDirectoryMonitor.swift; sourceTree = ""; }; D82D2FCD27AC3E62001A4283 /* Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = ""; }; + D82D76072C9142740040265E /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = src; sourceTree = ""; }; D84ADB152771D937001ABFB4 /* Device.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Device.swift; sourceTree = ""; }; D84ADB172771DAB9001ABFB4 /* NSNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSNotification.swift; sourceTree = ""; }; D8535A27277139AB00DFCE29 /* Sound.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sound.swift; sourceTree = ""; }; @@ -321,26 +237,13 @@ D8FE60082757208000711717 /* ApplicationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationError.swift; sourceTree = ""; }; DB0366A72C42E85500187DD0 /* PsiLuaEnv.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PsiLuaEnv.swift; sourceTree = ""; }; DB0B9149276E1BC5006F5CD0 /* OplKeyCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OplKeyCode.swift; sourceTree = ""; }; - DB0B91832771031F006F5CD0 /* aif.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aif.lua; sourceTree = ""; }; - DB0B91842771031F006F5CD0 /* sis.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sis.lua; sourceTree = ""; }; DB0B9190278369A4006F5CD0 /* BitmapFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BitmapFont.swift; sourceTree = ""; }; DB0B919227836E70006F5CD0 /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = fonts; sourceTree = ""; }; - DB0B91942789C561006F5CD0 /* directfilestore.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = directfilestore.lua; sourceTree = ""; }; - DB10E5882C84567C00F63541 /* printer_oxh.lua */ = {isa = PBXFileReference; lastKnownFileType = text; path = printer_oxh.lua; sourceTree = ""; }; - DB10E58A2C84568700F63541 /* printer.lua */ = {isa = PBXFileReference; lastKnownFileType = text; path = printer.lua; sourceTree = ""; }; - DB10E5B52C845A0700F63541 /* gprinter.lua */ = {isa = PBXFileReference; lastKnownFileType = text; path = gprinter.lua; sourceTree = ""; }; - DB10E6382C848E7900F63541 /* dbase.lua */ = {isa = PBXFileReference; lastKnownFileType = text; path = dbase.lua; sourceTree = ""; }; - DB10E63A2C848E8800F63541 /* dbase_oxh.lua */ = {isa = PBXFileReference; lastKnownFileType = text; path = dbase_oxh.lua; sourceTree = ""; }; DB3FAC2D27C2CA49004155C1 /* CGRect.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGRect.swift; sourceTree = ""; }; - DB5AC96F275198A20043FE5C /* database.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = database.lua; sourceTree = ""; }; - DB5AC971275577980043FE5C /* mbm.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mbm.lua; sourceTree = ""; }; DB5AC973275681510043FE5C /* CanvasView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CanvasView.swift; sourceTree = ""; }; DB5AC9752757B6ED0043FE5C /* OpoIoHandler_CoreGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpoIoHandler_CoreGraphics.swift; sourceTree = ""; }; - DB5AC979275AC72A0043FE5C /* sound.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sound.lua; sourceTree = ""; }; - DB5AC97B275CD5690043FE5C /* opl.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = opl.lua; sourceTree = ""; }; DB6B438327A55D1200625788 /* RootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootView.swift; sourceTree = ""; }; DB79001B2746B88F005E904F /* OpoIoHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpoIoHandler.swift; sourceTree = ""; }; - DB7900242746D915005E904F /* defaultiohandler.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = defaultiohandler.lua; sourceTree = ""; }; DB79FE6227428292005E904F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; DB79FE6427428294005E904F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; DB79FE6927428294005E904F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -348,41 +251,11 @@ DB79FFA62742D88A005E904F /* OpoLua.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpoLua.app; sourceTree = BUILT_PRODUCTS_DIR; }; DB79FFBD2742D99C005E904F /* ProgramViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgramViewController.swift; sourceTree = ""; }; DB79FFE52742E596005E904F /* OpoInterpreter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpoInterpreter.swift; sourceTree = ""; }; - DB79FFE82742E631005E904F /* runtime.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = runtime.lua; sourceTree = ""; }; - DB79FFE92742E631005E904F /* init.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = init.lua; sourceTree = ""; }; - DB79FFEA2742E631005E904F /* fns.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = fns.lua; sourceTree = ""; }; - DB79FFEB2742E631005E904F /* opofile.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = opofile.lua; sourceTree = ""; }; - DB79FFEC2742E631005E904F /* runopo.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = runopo.lua; sourceTree = ""; }; - DB79FFED2742E631005E904F /* dumpopo.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dumpopo.lua; sourceTree = ""; }; - DB79FFEE2742E631005E904F /* stack.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stack.lua; sourceTree = ""; }; - DB79FFEF2742E631005E904F /* ops.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ops.lua; sourceTree = ""; }; - DB93498927DD2F1000DB8723 /* sibosyscalls.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sibosyscalls.lua; sourceTree = ""; }; - DB93498D27E659CA00DB8723 /* oplkeycode.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = oplkeycode.lua; sourceTree = ""; }; DB9533FD27AC06A1001CF58D /* FlagSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlagSet.swift; sourceTree = ""; }; - DB95340027AE91B6001CF58D /* recognizer.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = recognizer.lua; sourceTree = ""; }; DB9F837027D3834000940D5C /* z-s5 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = "z-s5"; path = "OpoLua/Resources/z-s5"; sourceTree = SOURCE_ROOT; }; - DBA18835279C408A00B2954B /* dialog.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dialog.lua; sourceTree = ""; }; - DBBC73E92BA21EAA008BBC72 /* system_oxh.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = system_oxh.lua; sourceTree = ""; }; - DBBC73EA2BA21EAA008BBC72 /* date_oxh.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = date_oxh.lua; sourceTree = ""; }; - DBBC73EB2BA21EAA008BBC72 /* const_oph.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = const_oph.lua; sourceTree = ""; }; - DBBC73EC2BA21EAA008BBC72 /* bmp_oxh.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bmp_oxh.lua; sourceTree = ""; }; - DBBC73ED2BA21EAA008BBC72 /* toolbar_oph.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = toolbar_oph.lua; sourceTree = ""; }; - DBBC73F32BA21ECE008BBC72 /* compiler.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = compiler.lua; sourceTree = ""; }; - DBE2917B278CCB0B00EE824B /* crc.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = crc.lua; sourceTree = ""; }; DBE2917D27932C5300EE824B /* ClockView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClockView.swift; sourceTree = ""; }; - DBE2917F2794813D00EE824B /* rsc.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rsc.lua; sourceTree = ""; }; DBE291812795F86100EE824B /* UIKeyModifierFlags.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIKeyModifierFlags.swift; sourceTree = ""; }; - DBE291832796FA1900EE824B /* const.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = const.lua; sourceTree = ""; }; - DBE29185279747D000EE824B /* menu.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = menu.lua; sourceTree = ""; }; - DBE91522276A9D0900BDB8F5 /* memory.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = memory.lua; sourceTree = ""; }; DBE91524276D25A900BDB8F5 /* UIKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKey.swift; sourceTree = ""; }; - DBF28C5B2B49C0A00044C330 /* toolbar.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = toolbar.lua; sourceTree = ""; }; - DBF28C642B49C52D0044C330 /* systinfo.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = systinfo.lua; sourceTree = ""; }; - DBF28C652B49C52D0044C330 /* system.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = system.lua; sourceTree = ""; }; - DBF28C662B49C52D0044C330 /* alarm.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = alarm.lua; sourceTree = ""; }; - DBF28C672B49C52D0044C330 /* sysram1.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sysram1.lua; sourceTree = ""; }; - DBF28C682B49C52D0044C330 /* date.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = date.lua; sourceTree = ""; }; - DBF28C692B49C52D0044C330 /* bmp.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bmp.lua; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -577,11 +450,11 @@ DB79FE5627428292005E904F = { isa = PBXGroup; children = ( + D82D76072C9142740040265E /* src */, D8C679BC27484BF400BD8720 /* examples */, D8C3BD682774F4A2003B1AD0 /* Frameworks */, DB79FE6127428292005E904F /* OpoLua */, DB79FE6027428292005E904F /* Products */, - DB79FFE72742E631005E904F /* src */, DB79FFE12742E52B005E904F /* swift */, ); sourceTree = ""; @@ -627,80 +500,6 @@ path = swift; sourceTree = ""; }; - DB79FFE72742E631005E904F /* src */ = { - isa = PBXGroup; - children = ( - DBBC73F32BA21ECE008BBC72 /* compiler.lua */, - DBBC73E82BA21EAA008BBC72 /* includes */, - DBF28C632B49C52D0044C330 /* opx */, - DBE291832796FA1900EE824B /* const.lua */, - DB79FFE92742E631005E904F /* init.lua */, - DB79FFE82742E631005E904F /* runtime.lua */, - DBE91522276A9D0900BDB8F5 /* memory.lua */, - DB79FFEA2742E631005E904F /* fns.lua */, - DB79FFEB2742E631005E904F /* opofile.lua */, - DB79FFEC2742E631005E904F /* runopo.lua */, - DB79FFED2742E631005E904F /* dumpopo.lua */, - DB79FFEE2742E631005E904F /* stack.lua */, - DB5AC97B275CD5690043FE5C /* opl.lua */, - DBE29185279747D000EE824B /* menu.lua */, - DBA18835279C408A00B2954B /* dialog.lua */, - DB79FFEF2742E631005E904F /* ops.lua */, - DB7900242746D915005E904F /* defaultiohandler.lua */, - DB5AC96F275198A20043FE5C /* database.lua */, - DB5AC971275577980043FE5C /* mbm.lua */, - DB5AC979275AC72A0043FE5C /* sound.lua */, - DB0B91832771031F006F5CD0 /* aif.lua */, - DB0B91842771031F006F5CD0 /* sis.lua */, - DB0B91942789C561006F5CD0 /* directfilestore.lua */, - DBE2917B278CCB0B00EE824B /* crc.lua */, - DBE2917F2794813D00EE824B /* rsc.lua */, - DB95340027AE91B6001CF58D /* recognizer.lua */, - DB93498927DD2F1000DB8723 /* sibosyscalls.lua */, - DB93498D27E659CA00DB8723 /* oplkeycode.lua */, - DBF28C5A2B49C0A00044C330 /* modules */, - ); - path = src; - sourceTree = ""; - }; - DBBC73E82BA21EAA008BBC72 /* includes */ = { - isa = PBXGroup; - children = ( - DBBC73EC2BA21EAA008BBC72 /* bmp_oxh.lua */, - DBBC73EB2BA21EAA008BBC72 /* const_oph.lua */, - DBBC73EA2BA21EAA008BBC72 /* date_oxh.lua */, - DB10E63A2C848E8800F63541 /* dbase_oxh.lua */, - DB10E5882C84567C00F63541 /* printer_oxh.lua */, - DBBC73E92BA21EAA008BBC72 /* system_oxh.lua */, - DBBC73ED2BA21EAA008BBC72 /* toolbar_oph.lua */, - ); - path = includes; - sourceTree = ""; - }; - DBF28C5A2B49C0A00044C330 /* modules */ = { - isa = PBXGroup; - children = ( - DBF28C5B2B49C0A00044C330 /* toolbar.lua */, - ); - path = modules; - sourceTree = ""; - }; - DBF28C632B49C52D0044C330 /* opx */ = { - isa = PBXGroup; - children = ( - DBF28C662B49C52D0044C330 /* alarm.lua */, - DBF28C692B49C52D0044C330 /* bmp.lua */, - DBF28C682B49C52D0044C330 /* date.lua */, - DB10E6382C848E7900F63541 /* dbase.lua */, - DB10E5B52C845A0700F63541 /* gprinter.lua */, - DB10E58A2C84568700F63541 /* printer.lua */, - DBF28C672B49C52D0044C330 /* sysram1.lua */, - DBF28C642B49C52D0044C330 /* systinfo.lua */, - DBF28C652B49C52D0044C330 /* system.lua */, - ); - path = opx; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -716,7 +515,6 @@ buildRules = ( ); dependencies = ( - DB2363262B499772004802AD /* PBXTargetDependency */, ); name = OpoLua; packageProductDependencies = ( @@ -773,6 +571,7 @@ D87A9249274C517000254DE9 /* Assets.xcassets in Resources */, D893EAD5276073CA00E64219 /* Borders in Resources */, DB9F837127D3834000940D5C /* z-s5 in Resources */, + D82D76082C9142740040265E /* src in Resources */, D805F95127A1D7FF00DFBC20 /* License.txt in Resources */, D8C679BD27484BF400BD8720 /* examples in Resources */, DB0B919327836E70006F5CD0 /* fonts in Resources */, @@ -897,13 +696,6 @@ }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - DB2363262B499772004802AD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - productRef = DB2363252B499772004802AD /* EmbedLuaPlugin */; - }; -/* End PBXTargetDependency section */ - /* Begin XCBuildConfiguration section */ DB79FE6B27428294005E904F /* Debug */ = { isa = XCBuildConfiguration; @@ -1046,6 +838,7 @@ DEVELOPMENT_TEAM = QS82QFHKWB; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = OpoLua/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1054,9 +847,12 @@ PRODUCT_BUNDLE_IDENTIFIER = uk.co.inseven.opolua; PRODUCT_NAME = OpoLua; SDKROOT = iphoneos; - SUPPORTS_MACCATALYST = NO; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = "1,2,6"; }; name = Debug; }; @@ -1067,12 +863,15 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = OpoLua/OpoLua.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 9GNGYP6YR7; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = QS82QFHKWB; + "DEVELOPMENT_TEAM[sdk=macosx*]" = QS82QFHKWB; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = OpoLua/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1082,10 +881,14 @@ PRODUCT_NAME = OpoLua; PROVISIONING_PROFILE_SPECIFIER = "OpoLua App Store Profile"; "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "OpoLua App Store Profile"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "OpoLua Mac Catalyst App Store Profile"; SDKROOT = iphoneos; - SUPPORTS_MACCATALYST = NO; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = "1,2,6"; VALIDATE_PRODUCT = YES; }; name = Release; @@ -1137,10 +940,6 @@ isa = XCSwiftPackageProductDependency; productName = Diligence; }; - DB2363252B499772004802AD /* EmbedLuaPlugin */ = { - isa = XCSwiftPackageProductDependency; - productName = "plugin:EmbedLuaPlugin"; - }; /* End XCSwiftPackageProductDependency section */ }; rootObject = DB79FE5727428292005E904F /* Project object */; diff --git a/OpoLua/Info.plist b/OpoLua/Info.plist index 71549282..a3a17300 100644 --- a/OpoLua/Info.plist +++ b/OpoLua/Info.plist @@ -2,6 +2,8 @@ + LSApplicationCategoryType + public.app-category.utilities CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName diff --git a/OpoLua/Model/Sound.swift b/OpoLua/Model/Sound.swift index c49c6f7b..012c911c 100644 --- a/OpoLua/Model/Sound.swift +++ b/OpoLua/Model/Sound.swift @@ -21,6 +21,7 @@ import AudioUnit import AVFoundation import Combine +import CoreAudio import Foundation class PlaySoundRequest: Scheduler.Request { diff --git a/OpoLua/OpoLua.entitlements b/OpoLua/OpoLua.entitlements index 625af03d..bcc27ba5 100644 --- a/OpoLua/OpoLua.entitlements +++ b/OpoLua/OpoLua.entitlements @@ -8,5 +8,7 @@ com.apple.security.network.client + com.apple.security.personal-information.photos-library + diff --git a/OpoLua/View Controllers/AllProgramsViewController.swift b/OpoLua/View Controllers/AllProgramsViewController.swift index 1316be29..75597c0e 100644 --- a/OpoLua/View Controllers/AllProgramsViewController.swift +++ b/OpoLua/View Controllers/AllProgramsViewController.swift @@ -101,9 +101,11 @@ class AllProgramsViewController : UICollectionViewController { } private func configureRefreshControl() { +#if !targetEnvironment(macCatalyst) let refreshControl = UIRefreshControl() refreshControl.addTarget(self, action: #selector(refreshControlDidChange(_:)), for: .valueChanged) collectionView.refreshControl = refreshControl +#endif } override func viewWillAppear(_ animated: Bool) { diff --git a/OpoLua/View Controllers/DirectoryViewController.swift b/OpoLua/View Controllers/DirectoryViewController.swift index ac2fd666..3eda9e56 100644 --- a/OpoLua/View Controllers/DirectoryViewController.swift +++ b/OpoLua/View Controllers/DirectoryViewController.swift @@ -106,9 +106,11 @@ class DirectoryViewController : UICollectionViewController { } private func configureRefreshControl() { +#if !targetEnvironment(macCatalyst) let refreshControl = UIRefreshControl() refreshControl.addTarget(self, action: #selector(refreshControlDidChange(_:)), for: .valueChanged) collectionView.refreshControl = refreshControl +#endif } override func viewWillAppear(_ animated: Bool) { diff --git a/profiles/OpoLua_Mac_Catalyst_App_Store_Profile.provisionprofile b/profiles/OpoLua_Mac_Catalyst_App_Store_Profile.provisionprofile new file mode 100644 index 0000000000000000000000000000000000000000..c813976570ac42e83c42bd21fcda8495e2ed0ff4 GIT binary patch literal 13710 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 amtDJZ{9^w-H-AM>S@_oDhnzh*68H};9ucAd literal 0 HcmV?d00001 diff --git a/scripts/build.sh b/scripts/build.sh index a7ca99a0..23a60794 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -35,7 +35,8 @@ BUILD_DIRECTORY="$ROOT_DIRECTORY/build" TEMPORARY_DIRECTORY="$ROOT_DIRECTORY/temp" KEYCHAIN_PATH="$TEMPORARY_DIRECTORY/temporary.keychain" -ARCHIVE_PATH="$BUILD_DIRECTORY/OpoLua.xcarchive" +MACOS_ARCHIVE_PATH="${BUILD_DIRECTORY}/Archive-macOS.xcarchive" +IOS_ARCHIVE_PATH="${BUILD_DIRECTORY}/Archive-iOS.xcarchive" ENV_PATH="$APP_DIRECTORY/.env" RELEASE_SCRIPT_PATH="$SCRIPTS_DIRECTORY/release.sh" @@ -75,20 +76,6 @@ if [ -f "$ENV_PATH" ] ; then source "$ENV_PATH" fi -function xcode_project { - xcodebuild \ - -project OpoLua.xcodeproj "$@" -} - -function build_scheme { - # Disable code signing for the build server. - xcode_project \ - -scheme "$1" \ - CODE_SIGN_IDENTITY="" \ - CODE_SIGNING_REQUIRED=NO \ - CODE_SIGNING_ALLOWED=NO "${@:2}" -} - # Ensure the Lua source compiles. cd "$SRC_DIRECTORY" luac -p *.lua @@ -100,7 +87,9 @@ IOS_XCODE_PATH=${IOS_XCODE_PATH:-/Applications/Xcode.app} sudo xcode-select --switch "$IOS_XCODE_PATH" # List the available schemes. -xcode_project -list +xcodebuild \ + -project OpoLua.xcodeproj \ + -list # Clean up the build directory. if [ -d "$BUILD_DIRECTORY" ] ; then @@ -137,28 +126,51 @@ BUILD_NUMBER=`build-tools generate-build-number` # Import the certificates into our dedicated keychain. echo "$APPLE_DISTRIBUTION_CERTIFICATE_PASSWORD" | build-tools import-base64-certificate --password "$KEYCHAIN_PATH" "$APPLE_DISTRIBUTION_CERTIFICATE_BASE64" +echo "$MACOS_DEVELOPER_INSTALLER_CERTIFICATE_PASSWORD" | build-tools import-base64-certificate --password "$KEYCHAIN_PATH" "$MACOS_DEVELOPER_INSTALLER_CERTIFICATE_BASE64" # Install the provisioning profiles. build-tools install-provisioning-profile "$APP_DIRECTORY/profiles/OpoLua_App_Store_Profile.mobileprovision" +build-tools install-provisioning-profile "$APP_DIRECTORY/profiles/OpoLua_Mac_Catalyst_App_Store_Profile.provisionprofile" # Build and archive the iOS project. -xcode_project \ +sudo xcode-select --switch "$IOS_XCODE_PATH" +xcodebuild \ + -project OpoLua.xcodeproj \ -scheme "OpoLua" \ -config Release \ - -archivePath "$ARCHIVE_PATH" \ + -archivePath "$IOS_ARCHIVE_PATH" \ + -destination "generic/platform=iOS" \ OTHER_CODE_SIGN_FLAGS="--keychain=\"${KEYCHAIN_PATH}\"" \ CURRENT_PROJECT_VERSION=$BUILD_NUMBER \ MARKETING_VERSION=$VERSION_NUMBER \ clean archive xcodebuild \ - -archivePath "$ARCHIVE_PATH" \ + -archivePath "$IOS_ARCHIVE_PATH" \ -exportArchive \ -exportPath "$BUILD_DIRECTORY" \ - -exportOptionsPlist "${APP_DIRECTORY}/ExportOptions.plist" + -exportOptionsPlist "$APP_DIRECTORY/ExportOptions-iOS.plist" +IPA_PATH="$BUILD_DIRECTORY/OpoLua.ipa" -if $RELEASE ; then +# Builds the macOS project. +sudo xcode-select --switch "$MACOS_XCODE_PATH" +xcodebuild \ + -project OpoLua.xcodeproj \ + -scheme "OpoLua" \ + -config Release \ + -archivePath "$MACOS_ARCHIVE_PATH" \ + -destination "generic/platform=macOS,variant=Mac Catalyst" \ + OTHER_CODE_SIGN_FLAGS="--keychain=\"${KEYCHAIN_PATH}\"" \ + CURRENT_PROJECT_VERSION=$BUILD_NUMBER \ + MARKETING_VERSION=$VERSION_NUMBER \ + clean archive +xcodebuild \ + -archivePath "$MACOS_ARCHIVE_PATH" \ + -exportArchive \ + -exportPath "$BUILD_DIRECTORY" \ + -exportOptionsPlist "$APP_DIRECTORY/ExportOptions-macCatalyst.plist" +PKG_PATH="$BUILD_DIRECTORY/OpoLua.pkg" - IPA_PATH="$BUILD_DIRECTORY/OpoLua.ipa" +if $RELEASE ; then # Archive the build directory. ZIP_BASENAME="build-${VERSION_NUMBER}-${BUILD_NUMBER}.zip" @@ -176,7 +188,6 @@ if $RELEASE ; then --pre-release \ --push \ --exec "${RELEASE_SCRIPT_PATH}" \ - "${IPA_PATH}" "${ZIP_PATH}" - + "$IPA_PATH" "$PKG_PATH" "$ZIP_PATH" fi diff --git a/scripts/release.sh b/scripts/release.sh index b9b61448..32cdac94 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -41,6 +41,20 @@ xcrun altool --upload-app \ --apiIssuer "$APPLE_API_KEY_ISSUER_ID" \ --type ios +# Validate and upload the macOS build. +xcrun altool --validate-app \ + -f "$2" \ + --apiKey "$APPLE_API_KEY_ID" \ + --apiIssuer "$APPLE_API_KEY_ISSUER_ID" \ + --output-format json \ + --type macos +xcrun altool --upload-app \ + -f "$2" \ + --primary-bundle-id "uk.co.inseven.opolua" \ + --apiKey "$APPLE_API_KEY_ID" \ + --apiIssuer "$APPLE_API_KEY_ISSUER_ID" \ + --type macos + # Actually make the release. FLAGS=() if $CHANGES_INITIAL_DEVELOPMENT ; then diff --git a/swift/PsiLuaEnv.swift b/swift/PsiLuaEnv.swift index 795c8836..ad35b5e0 100644 --- a/swift/PsiLuaEnv.swift +++ b/swift/PsiLuaEnv.swift @@ -35,8 +35,10 @@ public class PsiLuaEnv { L = LuaState(libraries: [.package, .table, .io, .os, .string, .math, .utf8, .debug]) L.setDefaultStringEncoding(kDefaultEpocEncoding) - L.setRequireRoot(nil) - L.addModules(lua_sources) + let srcRoot = Bundle.main.url(forResource: "init", + withExtension: "lua", + subdirectory: "src")!.deletingLastPathComponent() + L.setRequireRoot(srcRoot.path) // Finally, run init.lua require("init")