So I'm facing a really odd problem and don't really know where to look.
I have a an app built in flutter. I'm using Bitrise for CI/CD. I had the configuration set to use XCode 11 until yesterday. I didn't notice that it needed changing till I got the message saying I needed to build using the iOS 14 SDK. I upgraded the stack, and was able to publish a build to testflight.
I set the version to use XCode 12.5 (latest). The app would be asking to log in again after re-opening and would get an error saying in app purchases could not be loaded. Error code: 21004
This only happens on testflight builds. Local builds using XCode 12.5 can handle IAP and firebase auth just fine. I can't attach a debugger to a testflight build.
I decided since the only difference is XCode, I'll back down to 12.4, and that seem to solve the IAP problem, but the app is still logged out every time it opens. The saved user profile on the local db is just fine. Just firebase thinks it's logged out.
Error loggs are unhelpful. The only thing I've managed to find is
default 13:45:20.643023-0600 photoanalysisd PLAccountStore accountDidChange, clearing cached properties.
default 13:45:20.643750-0600 assetsd PLAccountStore accountDidChange, clearing cached properties.
default 13:45:20.644216-0600 backboardd [1.26.0] +[ASEProcessing shouldEnhanceWidth:height:destinationWidth:destinationHeight:]: src={ 1242w x 2688h }, dest={ 1240w x 2683h }, aseFunctionOnYesOffNo=1
default 13:45:20.645602-0600 fitcored [1031] <private>::<private>
default 13:45:20.645884-0600 assetsd photoStreamAccountSettingsChanged
default 13:45:20.646817-0600 assetsd Clearing cached PLPhotoSharingHelper state
default 13:45:20.646867-0600 ptpd PLAccountStore accountDidChange, clearing cached properties.
default 13:45:20.647514-0600 wifid -[WiFiAccountStoreManager _updateIsManagedAppleIDAndNotify:]_block_invoke: No change Current (Non-Managed Account)
default 13:45:20.648268-0600 accountsd "<private> (<private>) received"
default 13:45:20.648443-0600 appstored elided platform fast path for key: re6Zb+zwFKJNlkQTUeT+/w
default 13:45:20.648542-0600 accountsd "<private> (<private>) received"
default 13:45:20.648829-0600 accountsd "<private> (<private>) received"
default 13:45:20.649444-0600 appstored AMSMescal: [IAPF9A5435D/[MY APP]:2_1] Skipping mescal - unabled to locate data to sign
error 13:45:20.649481-0600 appstored AMSURLRequest: [IAPF9A5435D/[MY APP]:2_1] Failed to add mescal header. Error: Error Domain=AMSErrorDomain Code=204 "Bag Value Missing" UserInfo={NSLocalizedDescription=Bag Value Missing, NSLocalizedFailureReason=The bag does not contain signed-actions nor did anyone register a default value. <AMSBagNetworkDataSource: 0x104e18ff0; profile: appstored; version: 1; sandbox: 1>}
default 13:45:20.649516-0600 appstored AMSURLSession: [IAPF9A5435D/[MY APP]:2_1] Preparing request: <AMSURLRequest: 0x1051bcd90> { URL: https://sandbox.itunes.apple.com/WebObjects/MZFinance.woa/wa/inAppPendingTransactions?guid=00008030-001A20E83C78802E }
default 13:45:20.649678-0600 appstored AMSURLSession: [IAPF9A5435D/[MY APP]:2_1] Task created: LocalDataTask <B3B892EF-AF0E-4185-AFE5-A28937F04BD8>.<2> Session: <__NSURLSessionLocal: 0x10762d2b0>
default 13:45:20.649717-0600 appstored Task <B3B892EF-AF0E-4185-AFE5-A28937F04BD8>.<2> resuming, timeouts(60.0, 604800.0) QOS(0x19) Voucher <private>
default 13:45:20.650280-0600 appstored [Telemetry]: Activity <nw_activity 12:2 [8861910E-6C9C-4029-8C30-FB15A400CDE9] (reporting strategy default)> on Task <B3B892EF-AF0E-4185-AFE5-A28937F04BD8>.<2> was not selected for reporting
default 13:45:20.650562-0600 appstored Task <B3B892EF-AF0E-4185-AFE5-A28937F04BD8>.<2> {strength 0, tls 4, ct 0, sub 0, sig 1, ciphers 0, bundle 1, builtin 0}
default 13:45:20.650599-0600 appstored Task <B3B892EF-AF0E-4185-AFE5-A28937F04BD8>.<2> now using Connection 2319
default 13:45:20.654134-0600 fitcored [1031] <private>::<private>
default 13:45:20.655855-0600 appstored Task <B3B892EF-AF0E-4185-AFE5-A28937F04BD8>.<2> sent request, body S 592
default 13:45:20.656338-0600 CommCenter #I querying acount name
default 13:45:20.656497-0600 accountsd "<private> (<private>) received"
default 13:45:20.657079-0600 backboardd [1.26.0] +[ASEProcessing shouldEnhanceWidth:height:destinationWidth:destinationHeight:]: src={ 1242w x 2688h }, dest={ 1240w x 2683h }, aseFunctionOnYesOffNo=1
default 13:45:20.658111-0600 fitcored Storefront matches cache: <private>
I'm at a loss, any one have any ideas?
So after having tons of fun debugging this.
I've opened up a bug with firebase.
https://github.com/FirebaseExtended/flutterfire/issues/5955
Related
This happens on Chrome v. 100 on a MacBook.
I'm using the Workbox's StaleWhileRevalidate together with the BrackgroundSyncPlugin and the BroadcastUpdatePlugin. I have the following scenario:
User opens app offline
App loads cached response
User gets internet connection
BackgroundSyncPlugin retries failed StaleWhileRevalidate request and succeeds
BackgroundSyncPlugin shows Sync completed event in Chrome's dev tools background-sync
Cache is updated
BroadcastUpdatePlugin should broadcast cache is updated
However, I never receive the broadcast. I do receive the broadcast if I refresh the page with internet connection.
Code example:
registerRoute(/^some-working-regex/,new StaleWhileRevalidate(
{
cacheName: 'some-cache-name',
matchOptions: {ignoreVary: true},
plugins: [
new ExpirationPlugin({maxEntries: 20,purgeOnQuotaError: false,}),
new BackgroundSyncPlugin('some-queue-name', {maxRetentionTime: 24 * 60}),
new BroadcastUpdatePlugin()
]}),
"GET"
)
And I do see the sync event after turning on the internet:
Expected outcome:
I expect BroadcastUpdatePlugin to fire when the cache is updated successfully by the BackgroundSyncPlugin after the user obtains connectivity again.
Am I missing a step here?
I've also created a custom plugin with a cacheDidUpdate and the handler also doesn't get called. (so it doesn't seem to be related to the BroadcastUpdatePlugin).
Thanks!
In a WKWebView I am receiving this warning when I upload the image to our server using FormData via Ajax. The entire process completes successfully.
Can anyone suggest what is the missing entitlement. I have reviewed entitlements related to WKWebView
In the console I see that the pid is associated with "webkit.uploads"
"Required client entitlement is missing"
requestedReason: FinishTaskUnbounded; reason: FinishTaskUnbounded; flags: PreventTaskSuspend>
// xcode debug console on submit
MyDomain[3002:428982] [ProcessSuspension] 0x104be68a0 - ProcessAssertion() PID 3002 Unable to acquire assertion for process with PID 3002
MyDomain[3002:427999] [ProcessSuspension] 0x104be68a0 - ProcessAssertion::processAssertionWasInvalidated()
MyDomain[3002:428982] [assertion] Error acquiring assertion: <NSError: 0x281b3b6f0; domain: RBSAssertionErrorDomain; code: 2; reason: "Required client entitlement is missing"> {
userInfo = {
RBSAssertionAttribute = <RBSLegacyAttribute: 0x100f2ee40; requestedReason: FinishTaskUnbounded; reason: FinishTaskUnbounded; flags: PreventTaskSuspend>;
}
}
// javascript upload code
var formData=new FormData();
formData.append("action", 'save');
var fileInput = document.getElementById('addImage');
if (fileInput.files && fileInput.files[0]) {
var file = fileInput.files[0
formData.append('messageImage', file);
hasFile = true;
}
if(hasFile){
$.ajax({
type: "POST",
url: "/images/save",
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function(result){}
});
}
I had a hunch about this and other errors coming from wkWebView, and I think I proved it. It has to do with the file uploads taking too long, and iOS complains about it, and wkWebView gets "released" (according to another thread). In my case, my uploads were taking between 5 and 13 seconds.
I implemented my upload in a Web Worker, which turned out to be a little tricky on Cordova, but all of the issues went away once I did this.
So my fix only seemed to address this in the emulator on my dev machine, which is using iOS 13.3. When I build on my "production" machine running iOS 13.7 the error returns. It was happening on both environments before moving file upload to a Worker.
It would seem Apple is in the process of adding something to iOS that is triggering these but has not yet documented or explained it. That's my new theory.
I have problem connecting to janus janus.plugin.videoroom plugin from iOS device using swift.
Although every steps take place correctly but janus server send following message:
{
"janus": "hangup",
"session_id": 3201104494179497,
"sender": 7759980289270843,
"reason": "ICE failed"
}
and disconnect.
Debugging the messages of connecting to janus leads me to following:
1- RTCIceGatheringState never changes to Completed
2- The generated candidates are like following:
candidate:3215141415 1 udp 1686052607 w.x.y.z 57168 typ srflx raddr w.x.y.z rport 57168 generation 0 ufrag 340a network-id 1 network-cost 10
as you can see video and audio words are replaced by 1 and 0 respectively in the generated candidate.
Do you have any idea about these two observations!
And why janus send the "ICE failed" message?
I found that the reason of getting "hang up" message is because I did not set the received jsep (from janus) to my peerconnection.
after setAnswer the jsep "hang up" message gone!
1- RTCIceGatheringState never changes to Completed
For the problem of not having "Completed" state For RTCIceGatheringState was because of "continualGatheringPolicy" options in configuring the peerConnection which was set to "gatherContinually" after setting that to "gatherOnce" the Completed state seen! :)
2- The generated candidates are like following:
It seem this is normal to have audio/video or 0/1
I'm trying to display a banner ad on an iOS app using Yahoo's Flurry
class GameViewController: UIViewController, FlurryAdBannerDelegate{
// ...
override func viewDidAppear(_ animated: Bool){
// this ad space does exist
self.advertisement = FlurryAdBanner(space: "LevelBannerBottom")
self.advertisement!.adDelegate = self
self.advertisement!.fetchAndDisplayAd(in: self.view, viewControllerForPresentation: self)
}
// ...
}
When I do this, no advertisement is displayed, and Error in AdRequest: [Unknown Error] is printed to the console. There's no non-Flurry errors anywhere, or any crashes.
The ad space does exist (I'm pretty sure). I've also tried replacing setting the ad space to the number underneath Ad Unit ID (which I removed before uploading this image) -- FlurryAdBanner(space: "123456") -- ` but that gives the same result.
I've already waited 24 hours since I added the new ad unit, and I have added my device's IDFA under Test Device IDs on the dashboard.
I have debugging turned on, so a lot of stuff is printed to the console, but the most important stuff is this (I've removed all of the times and app name)
Successfully parsed ad request schema
Load AdUnit Timed out
Picked cached ad unit 0x0 with guid (null)
Successfully created ad request.
Sending AdRequest....
Sending AdRequest of size 1456....
Flurry: HTTP connection delegate received response[<NSHTTPURLResponse: 0x17402eba0> { URL: https://ads.flurry.com/v16/getAds.do } { status code: 200, headers {
Connection = "keep-alive";
"Content-Length" = 57;
"Content-Type" = "application/octet-stream";
Date = "Tue, 11 Oct 2016 02:52:52 GMT";
"FM-Checksum" = 734757664;
"Keep-Alive" = "timeout=10";
Server = nginx;
} }]
This is a ad response of len 57
Successfully parsed ad response schema
Error in AdRequest: [Unknown Error] # << this is the important error
FlurryAdCache: skipping adunit with empty or nil adspace
******* logAdEvent:
** [<FlurryAdEvent: 0x170249000> unfilled(4), T:10040]
** <FlurryAdLog: 0x170461a80> [S:1476154362553, RS:1476154362553 ID:1, GUID (null), {(
" ** [<FlurryAdEvent: 0x170249000> unfilled(4), T:10040] "
)} transmitted {{
}} ]**
********************
Although this shouldn't be causing the problem (I didn't have to provide any information about the app anywhere), the app isn't public on the iOS App Store yet.
What could be causing this error? Is it something to do with iOS 10? I'm using Flurry 7.6.6
I believe this is the result of a bug. Please try this work around:
Log in to https://dev.flurry.com
Click 'Classic Flurry' in the upper right corner
Click the applications tab
Select your app
Go to Manage -> App Info
See if you have a category assigned to your app
If not set a category and wait an hour or so
Retry the ad integration
Otherwise send us your api key and ad space name to support#flurry.com and we can look into it.
I wrote two small programs which tried to acquire the same Remote Mutex named "The Token":
ACE_Remote_Mutex token("The Token", 1, 1);
token.acquire();
ACE_OS::sleep(5);
token.release();
return 0;
Both of them got the following debug output:
(3078597488) acquired The Token
(4243|3078597488) BIG PROBLEMS with get_connection: Connection refused
error on remote acquire, releasing shadow mutex.
(3078597488) released The Token, owner is no owner
(4243|3078597488) BIG PROBLEMS with get_connection: Connection refused
(3078597488) release failed: Permission denied.
(3078597488) shadow: release failed
Does ACE_Remote_Mutex work only with some sort of "agent" like Corba broker? Can I modify my code?
Remote_Mutex uses Token Service to acquire lock. Token Service is not a CORBA service but it plays a role similar to it. Here is an example of svc.conf entry that starts Token Service dynamically:
dynamic Token_Service Service_Object *
../lib/netsvcs:_make_ACE_Token_Acceptor()
"-p 10202"