Jump to content

Sherlock

Moderators
  • Content Count

    1196
  • Joined

  • Last visited

  • Days Won

    23

Posts posted by Sherlock


  1. Delphi 10.3.2, XCode 10.3 (coincidence?) and MacOS 10.14.6

     

    So, I was trying to update an old demo project to run with iOS 12. Last time it was successfully compiled and installed was with Tokyo and iOS 11. But today it is just giving me a really hard time with the strangest errors I never saw before (details below). So I started a minimal App to get get things rolling again, and this at least runs on the simulator, but not on my iPad. Another App, in constant development, does both perfectly fine, btw. And I already "turned it off and on again".

     

    With the new App I started from scratch, compilation is fine, but deployment results in:

    Quote

    [Error Fehler] Required local file "iOSDevice64\Release\TesterApp" not found. Deployment failed.

    I found a TesterApp.app in my Macs scratch-dir so I decided to add it to my device manually, which gives me

    Quote

    “TesterApp” does not contain a valid Info.plist, so it cannot be installed on myiPad

    (“CFBundleExecutable” is not specified)

    And there really is no info.plist, and no executable. It baffles me. I have no idea how to get those things into the App. Delphi should take care of that.

     

    As for the older App I'm trying to revive, compilation seems fine as well, but this is what I get when running it (F9) with Dev-Settings:

    Quote

    ---------------------------
    Fehler
    ---------------------------
    Zugriffsverletzung bei Adresse 21086E0A in Modul 'designide260.bpl'. Lesen von Adresse 00000000.
    ---------------------------
    OK   Details <<   
    ---------------------------
    [21086E0A]{designide260.bpl} DeploymentAPI.GetDeploymentRemoteDir (Line 413, "DeploymentAPI.pas" + 1) + $7
    [514BBC09]{xmlrtl260.bpl} Xml.XMLDoc.TXMLNode._AddRef (Line 1304, "Xml.XMLDoc.pas" + 1) + $1
    [5005FA71]{rtl260.bpl  } System.TObject.GetInterface (Line 17839, "System.pas" + 15) + $10
    [500679A8]{rtl260.bpl  } System.@IntfClear (Line 38159, "System.pas" + 10) + $0
    [0DD8E625]{profiledeployide260.bpl} DeploymentImpl.TDeploymentModuleHandler.GetProjectOutputFile (Line 805, "DeploymentImpl.pas" + 20) + $10
    [209114A7]{coreide260.bpl} UIUtils.DeployAppName (Line 4635, "UIUtils.pas" + 4) + $5
    [203C61D9]{dbkdebugide260.bpl} Debug.TDebugger.Run (Line 12663, "Debug.pas" + 36) + $B
    [539502C0]{DDevExtensionsD103.dll} StartParameterManagerReg.HookedTDebugger_Run + $18
    [203C0722]{dbkdebugide260.bpl} Debug.TDebugger.Run (Line 10395, "Debug.pas" + 0) + $2
    [2087F5D5]{coreide260.bpl} DebuggerMgr.TDebuggerMgr.Run (Line 2067, "DebuggerMgr.pas" + 21) + $1
    [004AFF23]{bds.exe     } AppMain.TAppBuilder.RunRun (Line 3413, "AppMain.pas" + 0) + $7
    [5017894F]{rtl260.bpl  } System.Classes.TBasicAction.Execute (Line 17428, "System.Classes.pas" + 6) + $1
    [50CFDEE2]{vcl260.bpl  } Vcl.ActnList.TCustomAction.Execute (Line 261, "Vcl.ActnList.pas" + 19) + $35
    [0B6A8F46]{IDEFixPack.dll} RefactoringActionUpdateFix.CustomActionExecute (Line 87, "RefactoringActionUpdateFix.pas" + 4) + $0
    [0B6A8F60]{IDEFixPack.dll} RefactoringActionUpdateFix.CustomActionExecute (Line 89, "RefactoringActionUpdateFix.pas" + 6) + $4
    [501787B7]{rtl260.bpl  } System.Classes.TBasicActionLink.Execute (Line 17337, "System.Classes.pas" + 3) + $3
    [50E5203F]{vcl260.bpl  } Vcl.Menus.TMenuItem.Click (Line 2553, "Vcl.Menus.pas" + 17) + $7
    [50E53CAB]{vcl260.bpl  } Vcl.Menus.DoClick (Line 3766, "Vcl.Menus.pas" + 41) + $4
    [50E53D97]{vcl260.bpl  } Vcl.Menus.TMenu.IsShortCut (Line 3819, "Vcl.Menus.pas" + 38) + $6
    [0B6A8EF0]{IDEFixPack.dll} RefactoringActionUpdateFix.MenuIsShortCut (Line 74, "RefactoringActionUpdateFix.pas" + 4) + $4
    [004B4F05]{bds.exe     } AppMain.TAppBuilder.FormShortCut (Line 5102, "AppMain.pas" + 2) + $C
    [50E6A608]{vcl260.bpl  } Vcl.Forms.TCustomForm.IsShortCut (Line 7716, "Vcl.Forms.pas" + 2) + $16
    [50D1C264]{vcl260.bpl  } Vcl.Controls.TWinControl.IsMenuKey (Line 11932, "Vcl.Controls.pas" + 13) + $C
    [50D1C2B1]{vcl260.bpl  } Vcl.Controls.TWinControl.CNKeyDown (Line 11947, "Vcl.Controls.pas" + 5) + $4
    [50D15292]{vcl260.bpl  } Vcl.Controls.TControl.WndProc (Line 7420, "Vcl.Controls.pas" + 91) + $6
    [218A5147]{vclactnband260.bpl} Vcl.ActnMenus.CallWindowHook (Line 757, "Vcl.ActnMenus.pas" + 20) + $F
    [5005FDDF]{rtl260.bpl  } System.TObject.Dispatch (Line 18324, "System.pas" + 11) + $0
    [087C8E82]{themeloader260.bpl} Idetheme.Vclstylehooks.TIDEStyleHook.WndProc + $7A
    [500679A8]{rtl260.bpl  } System.@IntfClear (Line 38159, "System.pas" + 10) + $0
    [087C893B]{themeloader260.bpl} Idetheme.Vclstylehooks.TIDEStyleHook.HandleMessage + $B7
    [500679A8]{rtl260.bpl  } System.@IntfClear (Line 38159, "System.pas" + 10) + $0
    [50063FD8]{rtl260.bpl  } System.@FinalizeArray (Line 32812, "System.pas" + 144) + $0
    [08801CC2]{themeloader260.bpl} Idetheme.Stylemanager.TIDEThemeStyleEngine.UnRegisterSysStyleHook + $106
    [50D197BC]{vcl260.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10122, "Vcl.Controls.pas" + 10) + $48
    [50D19D47]{vcl260.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10278, "Vcl.Controls.pas" + 166) + $6
    [212E57B4]{vclide260.bpl} IDEVirtualTrees.TBaseVirtualTree.WndProc (Line 23720, "IDEVirtualTrees.pas" + 32) + $4
    [50D19314]{vcl260.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9977, "Vcl.Controls.pas" + 3) + $6
    [501796A4]{rtl260.bpl  } System.Classes.StdWndProc (Line 17932, "System.Classes.pas" + 11) + $2
    [150127AE]{ParnassusCoreEditor.dll} Unbekannte Funktion bei __dbk_fcall_wrapper + $2B0EEE
    [50E6E964]{vcl260.bpl  } Vcl.Forms.TApplication.IsKeyMsg (Line 10655, "Vcl.Forms.pas" + 25) + $12
    [50E6E9F2]{vcl260.bpl  } Vcl.Forms.TApplication.IsHintMsg (Line 10675, "Vcl.Forms.pas" + 2) + $10
    [50E6EC0F]{vcl260.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10741, "Vcl.Forms.pas" + 17) + $31
    [50E6EC76]{vcl260.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10777, "Vcl.Forms.pas" + 1) + $4
    [50E6EFA9]{vcl260.bpl  } Vcl.Forms.TApplication.Run (Line 10915, "Vcl.Forms.pas" + 26) + $3
    [0051D022]{bds.exe     } bds.bds (Line 214, "" + 7) + $7

     

    Leaving me with a seemingly half finished .App file without an executable in my scratch-dir.Setting to Ad-hoc build gets even stranger messages in the IDE and still no executable:

    Quote

    [PAClient Fehler] Fehler: E0776 2019-09-09 14:56:59.509 xcodebuild[2815:120321] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/8v/g5srdlf108jc_tgm8grn4_jc0000gn/T/KRS_Manager_2019-09-09_14-56-59.509.xcdistributionlogs'.
    [PAClient Fehler] Fehler: E0776 2019-09-09 14:56:59.540 xcodebuild[2815:120321] [MT] IDEDistribution: Failed to generate distribution items with error: Error Domain=IDEDistributionErrorDomain Code=13 "The archive contains nothing that can be signed." UserInfo={NSLocalizedDescription=The archive contains nothing that can be signed., NSLocalizedRecoverySuggestion=Verify that your build process has compiled binaries and copied in bundled resources.}
    [PAClient Fehler] Fehler: E0776 error: exportArchive: The archive contains nothing that can be signed.
    [PAClient Fehler] Fehler: E0776 Error Domain=IDEDistributionErrorDomain Code=13 "The archive contains nothing that can be signed." UserInfo={NSLocalizedDescription=The archive contains nothing that can be signed., NSLocalizedRecoverySuggestion=Verify that your build process has compiled binaries and copied in bundled resources.}
    [PAClient Fehler] Fehler: E0776 ** EXPORT FAILED **

    Any ideas?


  2. 1 hour ago, Arnaud Bouchez said:

    And if you are confused by with someclass do x := a * b and don't know to which class a, b, or x belongs to, it is time renaming the properties/functions to something more explicit!

    I beg to differ. Naming a property/function more explicitly for the sake of with is...how do I put this politely?...not helpful. Say I have a class TCar with properties Wheel and Engine and functions Drive and Park. If I understand you correctly you would expect me to call those properties and functions CarWheel, CarEngine, CarDrive and CarPark, to be explicit enough for the rare case when someone uses with on my TCar...

    • Like 3

  3. Considering Delphi is not the only product that can create iOS Apps, Apple will surely have not removed this functionality altogether. Just from looking at the Help you provided I think it is possible to upload our Apps (archives in Help lingo) from there. Maybe uploading wont take forever then? Seeing as that big ole Apploader was a laggy piece of software, it was just about time they overhauled it.


  4. OK, I finally got around to finding out what the problem is. turns out string comparisons got massively slower from 10.3.1 to 10.3.3 for iOS.

    Here is what I did approximately 6000 times:

      function QualityToInt(aQuality: string): ShortInt;
      begin
        if aQuality = rsPoor then
          Result := 0
        else if aQuality = rsAcceptable then
          Result := 1
        else if aQuality = rsGood then
          Result := 2
        else
          Result := 0;
      end;

    Where rsPoor etc. are defined as resourcestring. This (plus some other stuff) took 100 seconds.

    Changing that to filling a TDictionary with the appropriate pairs once and doing a

        if not QualityDict.TryGetValue(aQuality, Result) then
          Result := 0;

    instead not only improved iOS performance (now 20 seconds) but the Windows version is noticeably faster too.

     

    So...granted the latter is better code. But still: What got broken along the way?

    • Like 1

  5. That is indeed a steep price. You should consider using external SSDs via USB3 to compensate for small built in drives. Saves you lots of money. Secondly don't buy it now because the next MacBook Pro is looming around the corner (Sep. 10th). That one wont be cheaper, but this one just might.

    Then for development purposes only a the smalles Mac suffices. Connect to it through LAN and have it sign your Apps, finished.  You don't have to have an expensive MacBook just to develop Apps.

     

    Finally I don't expect more competence from the "Geniuses" or the common sales folk at the Apple store than from any other sakes guy at an electronics outlet like MediMarkt and such.

×