我的Delphi 10.2.3应用程序已经提交给Google Play,并提供了以下答案:Delphi Android app API level 26? Google Play报道此版本支持400多种设备.
同一个项目是使用10.3 Rio构建的,但在提交时,Google Play警告说这个新版本仅支持223个设备.
导致支持设备减少的原因是什么?
我正在使用 Android Studio 2020.3.1 在 logcat 中查看我的应用程序的调试消息。该应用程序是一个用 Delphi 11 制作的空白项目。
将 logcat 过滤器设置为 com.bookup 会出现以下两行:
2022-01-16 16:07:41.227 1247-1378/? I/AppsFilter: interaction: PackageSetting{138dd45 com.bookup.ThisIsMikesTestProjectOfDoom/10332} -> PackageSetting{3e91e66 com.paypal.android.p2pmobile/10229} BLOCKED
0222-01-16 16:08:02.394 1247-1378/? I/AppsFilter: interaction: PackageSetting{138dd45 com.bookup.ThisIsMikesTestProjectOfDoom/10332} -> PackageSetting{3e91e66 com.paypal.android.p2pmobile/10229} BLOCKED
Run Code Online (Sandbox Code Playgroud)
PayPal 应用程序在 Android 设备上运行。
我是否正确地理解这些行,说我的空应用程序试图与 PayPal 应用程序“交互”并被“阻止”?这正常吗?
我将我的应用程序带入Google Play的应用程序商店,但我也收到以下警告:
您的应用当前以API级别14为目标,并且必须至少以API级别26为目标,以确保其基于针对安全性和性能进行了优化的最新API构建。
从2018年8月开始,新应用必须至少针对Android 8.0(API级别26)。从2018年11月开始,应用程序更新必须针对Android 8.0(API级别26)。
如何使Delphi 10.2.3达到“目标API级别26”?
我的网络共享应用有时无法访问互联网。在这些情况下,Windows 不会询问应用程序是否有权使用 Internet。我的应用程序不会产生任何错误,但当然不会束缚。
如何测试我的 Delphi 应用程序是否可以访问互联网以进行网络共享?
Delphi 10.2.3 FMX应用共享
以下代码中的标签有时会更新,但通常不会更新。在网络共享RescourceReceived过程中更新视觉组件是否不安全?
procedure TMainForm.MyTetheringAppProfileResourceReceived(
const Sender: TObject; const AResource: TRemoteResource);
begin
if AResource.Hint = 'InfoPrincipleVariation'
then
begin
MyInformationLabel.Text := AResource.Value.AsString; // Fails to update
Exit;
end;
end;
Run Code Online (Sandbox Code Playgroud)
通过将值存储在AResource.Value.AsString中,然后启用一个稍后设置标签文本值的计时器,可以解决此问题。
我的 Delphi 10.3.2 应用程序未通过 Apple 公证。
我已经能够获得另一个不同的应用程序来成功进行公证。
如何查看包含失败公证结果的日志文件?
(Xcode 的说明没有帮助,因为 Xcode 似乎认为日志与 Xcode 产品档案相关,而这是一个 Delphi 项目。)
在 PAServer 中打开详细设置会显示使用 altool 请求 --notarization-info 的最后一个命令。这是该类型中唯一的命令。在此命令之后不久,Apple 就发送了一封电子邮件,通知我公证失败。
当我的另一个项目成功公证时,--notarization-info命令在PAServer中出现了几十次才成功。
我回去尝试去公证这个项目,一直成功。我收到 Apple 发来的电子邮件,说它已经过公证,但 Delphi(不是 PAServer)显示了此错误:
[PAClient 错误] 错误:E5896 2019-07-24 11:16:23.235 altool[2270:146899] *** 错误:Apple 服务操作失败。找不到 RequestUUID。
PAServer 的输出:
> command_line: "/usr/bin/plutil" -convert binary1 "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app/Contents/Info.plist"
> command_line: "/usr/bin/codesign" -o runtime --timestamp --entitlements "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.entitlements" --deep -s "Developer ID Application: Bookup" -f "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app"
> command_line: "/usr/bin/ditto" -c …Run Code Online (Sandbox Code Playgroud) 我正在将 2,000 个名称加载到 FMX TListBox 中,但花费的时间太长(例如 35 秒或更长)。
这是测试代码:
procedure TDocWindow.DEBUGAddLotsOfStringsToList;
var
theTimeAtStart: Integer;
J: Integer;
begin
ListBox1.Clear;
theTimeAtStart := TThread.GetTickCount;
for J := 1 to 2200 do
begin
ListBox1.Items.Add(j.toString);
end;
ShowMessage('There were ' + J.ToString + ' strings added to the list in ' + (TThread.GetTickCount - theTimeAtStart).ToString + ' milliseconds.');
end;
Run Code Online (Sandbox Code Playgroud)
TListBox 是否有什么东西使得它对于几千个字符串来说太慢了?
如何在 Firemonkey 中获得 UTC 时间?
我从另一个 Stackoverflow 答案中尝试了此代码,但似乎 GetSystemTime() 在 FMX 中不可用。
function NowUTC: TDateTime;
Var UTC: TSystemTime;
begin
GetSystemTime(UTC);
Result := SystemTimeToDateTime(UTC);
end;
Run Code Online (Sandbox Code Playgroud) Delphi 10.2.3 MacOS Mojave(我很遗憾)
我有Xcode 10,但它不适用于Delphi。我删除了Xcode 10,并安装了Xcode 9.4.1及其命令工具。
在启动时,PAServer继续给出此消息:
正在获取支持调试的权限...失败
Delphi在部署iOS应用程序的“启动:”阶段挂起。
在我升级到Mohave并尝试使用Xcode 10之前,一切正常。
要让Delphi 10.2.3在Mojave上使用Xcode 9调试iOS应用程序,要做什么?
我的 Delphi 项目从未使用过实际的 sqlite3.dll,而是使用了嵌入式库。
我用 10.4 重新编译了项目并将其发送给看到此错误的测试人员:
007C6FDC 处的 ChessOpeningsWizardProfessional2016.exe 模块中的异常 EFDException。[FireDAC][物理][SQLite]-314。无法加载供应商库 [sqlite3.dll 或 libdb_sql51.dll]。找不到指定的模块 提示:检查它是否在 PATH 或应用程序 EXE 目录中,并且具有 x86 位。
它在我的机器上运行良好,没有任何 Dll。
FireDac 中关于 Delphi 10.4 Sydney 中的 Sqlite3 有什么改变吗?
在一个空白的 Delphi 11 项目中,我放置了一个按钮和一个 TIdHTTP 组件。
该按钮尝试获取 .txt 文件。
procedure TForm1.Button1Click(Sender: TObject);
var
Stream: TMemoryStream;
begin
Stream := TMemoryStream.Create;
try
IdHTTPGetProgramUpdateFile.Get('https://www.bookup.com/cowupdates/build129.txt',
Stream);
except
on E: Exception do
begin
MessageDlg(E.Message,
TMsgDlgType.mtInformation,
[TMsgDlgBtn.mbOK],
E.HelpContext);
end;
end;
Stream.SaveToFile('downloaded.txt');
Stream.Free;
end;
Run Code Online (Sandbox Code Playgroud)
如果 Windows 项目请求带有 https 的 URL,则错误为“无法加载 SSL 库”。
如果 Windows 或 Macintosh 上的项目请求带有 http 的 URL,则错误为“301 Moved Permanently”。(该文件位于网站上。)
如果该项目在带有 https 的 Macintosh 上运行,则 PAServer 会报告该项目“正在以不安全的方式加载 libcrypto”。
IdSSLOpenSSL.pas在 Windows 上运行时,该项目会在源代码注释中抛出异常:
这里的异常可能意味着您使用了错误版本的 openssl 库。请参阅该文件顶部的注释。
文件顶部的注释对我来说没有用。
我正在尝试从网站下载文本文件的内容,但我对互联网协议知之甚少。我缺少什么?