-
Content Count
1569 -
Joined
-
Last visited
-
Days Won
36
Everything posted by Dave Nottage
-
I hadn't noticed that, thanks!
- 12 replies
-
- ios
- instrument usage
-
(and 2 more)
Tagged with:
-
I guess I was wrong about that part 🙂
- 12 replies
-
- ios
- instrument usage
-
(and 2 more)
Tagged with:
-
There's a known issue with Xcode 13: https://quality.embarcadero.com/browse/RSP-35701 However it's a different error message to the one you're seeing. Regarding the above issue, please see: The workaround may or may not resolve your issue. Your problem may be a new issue in that Xcode 13 beta.
-
This one possibly means there's a bug in TFMXTextRange.Destroy (FMX.Platform.iOS on line 1768 in 10.4.2). The references are being set to nil, but they're Delphi object references. Some of the others may be happening as a result. One way to check would be to make a copy of FMX.Platform.iOS and put it in the project folder, then modify TFMXTextRange.Destroy to call Free on the references
- 12 replies
-
- ios
- instrument usage
-
(and 2 more)
Tagged with:
-
Which version of Xcode are you using? Can you do a Clean first, then Build/Deploy?
-
I expect that part of the reason is because the minSdkVersion is 23, which corresponds to Android 6. You should change %minSdkVersion% in AndroidManifest.template.xml to 21, and refer to the section "Important information about the NDK settings" here regarding changing the NDK settings.
-
The xml in the file is invalid, because of a missinq quote on line 40: Perhaps AndroidManifest.template.xml was modified and the closing quote was removed by mistake?
-
Not at present, deploying iOS apps for App Store configuration with Xcode 13 is currently broken: https://quality.embarcadero.com/browse/RSP-35701 One solution is to revert to Xcode 12.5.1. Another is to use a workaround I have created, however it requires installing at least Mosco 1.2.1 (a macOS app): Workaround steps: Install at least Mosco, and Codex if using the workaround from Delphi Build/Deploy your app using App Store config (which will "fail" with Xcode 13) If using the workaround in Delphi itself, in Project Manager, right click the root node of the project and click "Build IPA". If using the workaround in Mosco, click the Mosco icon in the system bar to bring up the menu, click Fixes > Build App Store IPA. Select the app from the ~/PAServer/scratch-dir/[username]-[profile]/ folder and click Build Links to installers: https://github.com/DelphiWorlds/Codex/blob/master/Bin/CodexSetup_1.5.1.exe https://github.com/DelphiWorlds/Mosco/blob/master/Bin/Mosco.1.2.1.pkg
-
Are you sure the error doesn't actually say: "..problem parsing the package"? It is important to ensure that error messages you quote are exact, otherwise it may be difficult for others to help. In your case, it may be an issue with the manifest (AndroidManifest.xml in the project's output folder). Can you attach it here?
-
Regarding UDP, please refer to: https://developer.apple.com/forums/thread/662082 As for HTTP, I'm not sure why you'd have any issues with that
-
Do you have example code that you're using now?
-
D11, Android new App Billing Service
Dave Nottage replied to John van de Waeter's topic in Cross-platform
Is this your experience, @Chris Pim ? I am yet to submit an app to Play Store that has IAP. https://quality.embarcadero.com/browse/RSP-35834 -
D11, Android new App Billing Service
Dave Nottage replied to John van de Waeter's topic in Cross-platform
The In App Purchase Service option adds the activity entry for the billing service, not the meta-data tag. -
Delphi 10.4.2 with XCode13 SDK15.0 packaging ipa fail
Dave Nottage replied to Raymond Ng's topic in Cross-platform
I have a workaround now which is implemented in the Codex and Mosco tools (or just using Mosco if you're OK with using the Mac to perform the fix) The tools with the workaround are presently in beta, and can be accessed via my Slack workspace which you can self-invite to here. (if not joined already). Go to the #codex channel and there is a pinned post with the installers for Codex and Mosco -
Other than by changing line 99 in PythonEngine.pas?
-
D11, Android new App Billing Service
Dave Nottage replied to John van de Waeter's topic in Cross-platform
Oops.. it looks like something may have been missed. Can you add the following to the application node of AndroidManifest.template.xml: <meta-data android:name="com.google.android.play.billingclient.version" android:value="4.0.0" /> ..and try again? If this fixes it, I'll file a report in the Quality Portal, unless you want to 🙂 If it doesn't fix it, you might like to use this tool: https://github.com/skylot/jadx to look inside classes.dex in the project output folder, and make sure com.android.billingclient is in there. Perhaps do this first -
Delphi 10.4.2 with XCode13 SDK15.0 packaging ipa fail
Dave Nottage replied to Raymond Ng's topic in Cross-platform
I may have one in the next day or so. That is likely to be a completely different issue. Does it happen on other iPhone models? Can you provide code that reproduces the problem? I have access to an iPhone 13 that I can test on. iOS 15.0 SDK comes with Xcode 13 (not earlier versions). I'm not sure if you can switch back to Xcode 12.5.1 and still build against iOS 15.0 SDK The issue we've been discussing affects Delphi 11 and earlier. -
Delphi 10.4.2 with XCode13 SDK15.0 packaging ipa fail
Dave Nottage replied to Raymond Ng's topic in Cross-platform
Known issue, caused by changes in Xcode 13. At present, reverting to Xcode 12.x is a solution -
Please write to Embarcadero to get a free Delphi 11 edition for Andreas Hausladen
Dave Nottage replied to PeterPanettone's topic in Delphi IDE and APIs
The title of the issue you lodged, and the question itself seemed to indicate that you did not have a version for Delphi 11 Alexandria. Perhaps I should have asked whether or not you could compile. I guess your answer means that you can. Given that, is the issue resolved? -
Please write to Embarcadero to get a free Delphi 11 edition for Andreas Hausladen
Dave Nottage replied to PeterPanettone's topic in Delphi IDE and APIs
Is there some reason you're unable to compile the library yourself? The Delphi 11 project files have even been added -
D11, Android new App Billing Service
Dave Nottage replied to John van de Waeter's topic in Cross-platform
It says the officially supported versions are Android 8 and above. That does not mean apps will not run on lower versions - I have apps built with Delphi 11 running on Android 4.4. -
I wish to use the App Store Connect REST API to retrieve some information, and I have created a key as per these instructions. Next thing is to create a JWT for passing in the Authorization as per these instructions. I have chosen Paolo Rossi's excellent JOSE JWT library for Delphi (especially since it now includes an ES256 signing algorithm), and have come up with the following code for generating the JWT and sending via HTTP: const cTokenExpirySeconds = 60; cIssuerID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; cKeyID = 'yyyyyyyy'; cAppStoreConnectAPIURL = 'https://api.appstoreconnect.apple.com/v1'; cAppStoreConnectAPIGetProfiles = cAppStoreConnectAPIURL + '/profiles'; // AIssuer = id obtained from https://appstoreconnect.apple.com/access/api // AKeyID = id associated with the key // ASecret = text read from the .p8 file function CreateJWT(const AIssuer, AKeyID, ASecret: string): string; var LJWT: TJWT; LSigner: TJWS; LKey: TJWK; // LScope: TJSONArray; begin LJWT := TJWT.Create; try LJWT.Header.Algorithm := 'ES256'; LJWT.Header.KeyID := AKeyID; LJWT.Claims.Audience := 'appstoreconnect-v1'; LJWT.Claims.Issuer := AIssuer; LJWT.Claims.IssuedAt := Now; LJWT.Claims.Expiration := IncSecond(Now, cTokenExpirySeconds); // LScope := TJSONArray.Create; // LScope.Add('GET /v1/profiles') ; // LJWT.Claims.JSON.AddPair('scope', LScope); LSigner := TJWS.Create(LJWT); try LSigner.SkipKeyValidation := False; LKey := TJWK.Create(ASecret); try LSigner.Sign(LKey, TJOSEAlgorithmId.ES256); finally LKey.Free; end; Result := LSigner.Payload + '.' + LSigner.Signature; finally LSigner.Free; end; finally LJWT.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var LHTTP: THTTPClient; LResponse: IHTTPResponse; LToken: string; begin LToken := CreateJWT(cIssuerID, cKeyID, TFile.ReadAllText('Z:\Config\AppStoreConnectAPI\AuthKey.p8')); LHTTP := THTTPClient.Create; try LHTTP.CustomHeaders['Authorization'] := 'Bearer ' + LToken; LResponse := LHTTP.Get(cAppStoreConnectAPIGetProfiles); Memo1.Lines.Add(LResponse.ContentAsString); finally LHTTP.Free; end; end; The response is: { "errors": [{ "status": "401", "code": "NOT_AUTHORIZED", "title": "Authentication credentials are missing or invalid.", "detail": "Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests https://developer.apple.com/go/?id=api-generating-tokens" }] } So I assume I am missing something. According to the documentation, adding the scope (the code that is commented out) can be optional depending on the request. Adding the scope yields the same result in this case. Any clues as to what the problem may be?
-
App Store Connect REST API problem
Dave Nottage replied to Dave Nottage's topic in Network, Cloud and Web
D'Oh. Should be: Result := LSigner.CompactToken; Bit of a head-slap moment, there.. -
App Store Connect REST API problem
Dave Nottage replied to Dave Nottage's topic in Network, Cloud and Web
-
App Store Connect REST API problem
Dave Nottage replied to Dave Nottage's topic in Network, Cloud and Web
Mine looks exactly like that, but I've obfuscated the value in the code, since I don't want to give out my private info