Post

Replies

Boosts

Views

Activity

iCloud Key-value Storage: avoid user to see contents
Hello all, we are working on a game for iOs using Unity.We have been able to save our game data using the iCloud KVS, but when i used a tool to explore the iPhone content (iExplorer) i found the dictionary with all our values. We dont want users to tamper with the savefiles so I would like to know if there's any way of avoiding this data to be found, or if its available some kind of encryption, or simply we shuld encrypt it ourselves before saving.Thanks a lot!pistoleta
3
0
1.6k
Jan ’20
GKLocalPlayer.FetchSavedGames showing 0 results on just installed first run
My game has several SavedGames and they are retrieved succesfully using FetchSavedGames except when I run the game for first time after install, no exceptions, no errors, just shows 0 saved games.Once I'm inside the game I call the method again and shows the correct results.This call is one of the first actions the game algorythm makes, just in case has something to do.Any idea why this might happen?Thanks,pistoleta.EDIT: More people with same problem, no sollutions:https://stackoverflow.com/questions/40992442/gklocalplayer-fetchsavedgameswithcompletionhandler-returns-0-games-on-installati/60728584#60728584
4
0
1.1k
Mar ’20
fetchSavedGamesWithCompletionHandler not working on iOS 14
iOS 14 devices are not able fetch games saved on, previous iOS versions (tested with iOS 13 and 12), no matter how much you wait or how many times you try, or even if you restart the device. Tested more than 20 times, it simply doesn't work. It works the other way around, games saved on iOS 12 and 13 are fetched without problems among them and on iOS 14. By the way the app container in device (iCloud settings>Storage management) appears, and even shows the size of the save file. But still, it won't fetch. Anybody else?
0
0
367
Oct ’20
CloudKit private database costs
I know this has been asked multiple times, but posts are really old, some links are missing and official documentation is not clear about this. I dont understand the 40 request per second thing. At some post I've read it scales up per user, does this apply for private databases too? I simply dont get it, And how does it scale up ? Is it linear or how is the formula? And what's exactly a request? Any operation of querying, fetching, updating or saving? I simply can't get it because 40 requests per second seems extremely low, I mean just with a few thousands of users saving his progress (even if its just a 50K string) would end up being extremely expensive. (Overage Fee: $100 per 10 requests ) So what do you do then if you need more requests per second, you simply pay the overage? There must be something I'm not understanding. Thats why I'm asking. Thanks a lot EDIT: is maybe 40 request / user ? that would make more sense
2
0
2.7k
Nov ’20
App crash when not connected to Xcode with iOS 14.2 Release candidate
If I run the app using Xcode I have no problems. Incident Identifier: 457D137B-4C71-4234-B00C-A7FCFB54B83E CrashReporter Key: 8209fa6a3cb483ad2e2f83c4080e8b5156eec66d Hardware Model: iPhone11,8 Process: city [744] Path: /private/var/containers/Bundle/Application/BB8D479E-0C9F-4A22-ABB0-6E4371CA3CA3/city.app/city Identifier: com.myapp.app Version: 836 (0.97) Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] Coalition: com.myapp.app [572] Date/Time: 2020-11-04 17:38:27.4634 +0100 Launch Time: 2020-11-04 17:38:07.3599 +0100 OS Version: iPhone OS 14.2 (18B91) Release Type: User Baseband Version: 3.01.01 Report Version: 104 Exception Type: EXCCRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXCCORPSENOTIFY Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d Termination Description: SPRINGBOARD, <RBSTerminateContext| domain:10 code:0x8BADF00D explanation:process-launch watchdog transgression: application<com.myapp.app>:744 exhausted real (wall clock) time allowance of 20.00 seconds | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: process-launch | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 9.720 (user 9.720, system 0.000), 8% CPU", | "Elapsed application CPU time (seconds): 0.105, 0% CPU" | ) reportType:CrashLog maxTerminationResistance:Interactive> Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libsystemkernel.dylib 0x00000001d217bf5c _ulockwait + 8 1 libdispatch.dylib 0x00000001a4e71794 dlockwait + 56 2 libdispatch.dylib 0x00000001a4e716c0 dispatchoncewait + 124 3 UIKitCore 0x00000001a782c430 -[UIApplicationConfigurationLoader loadInitializationContext] + 152 4 UIKitCore 0x00000001a782c77c -[UIApplicationConfigurationLoader applicationInitializationContext] + 32 5 UIKitCore 0x00000001a7813394 -[UIScreenInitialDisplayConfigurationLoader initialDisplayContext] + 180 6 UIKitCore 0x00000001a7813680 +[UIScreen initialize] + 128 7 libobjc.A.dylib 0x00000001b97cdc58 CALLINGSOME+initializeMETHOD + 24 8 libobjc.A.dylib 0x00000001b97d4318 initializeNonMetaClass + 716 9 libobjc.A.dylib 0x00000001b97d5910 initializeAndMaybeRelock+ 39184 (objcclass*, objcobject*, mutextt<false>&, bool) + 280 10 libobjc.A.dylib 0x00000001b97e4498 lookUpImpOrForward + 956 11 libobjc.A.dylib 0x00000001b97ce524 objcmsgSenduncached + 68 12 UIKitCore 0x00000001a782cc80 UIGetCurrentFallbackTraitCollection + 100 13 UIKitCore 0x00000001a78299d8 +[UITraitCollection currentTraitCollectionWithFallback:markFallback:] + 176 14 UIKitCore 0x00000001a7831454 UICurrentImageTraitCollection + 28 15 UIKitCore 0x00000001a78310f4 +[UIImageConfiguration completeConfiguration:fromConfiguration:] + 164 16 UIKitCore 0x00000001a77dfad0 +[UIImage imageNamed:inBundle:withConfiguration:] + 180 17 UnityFramework 0x00000001059fbb38 +[LUTheme initialize] + 10468152 (LUTheme.m:150) 18 libobjc.A.dylib 0x00000001b97cdc58 CALLINGSOME+initializeMETHOD + 24 19 libobjc.A.dylib 0x00000001b97d4318 initializeNonMetaClass + 716 20 libobjc.A.dylib 0x00000001b97d5910 initializeAndMaybeRelock+ 39184 (objcclass*, objcobject*, mutextt<false>&, bool) + 280 21 libobjc.A.dylib 0x00000001b97e4498 lookUpImpOrForward + 956 22 libobjc.A.dylib 0x00000001b97ce524 objcmsgSenduncached + 68 23 UnityFramework 0x00000001059ddd00 +[LUConsoleLogEntry load] + 10345728 (LUConsoleLogEntry.m:44) 24 libobjc.A.dylib 0x00000001b97dd21c loadimages + 928 25 libdyld.dylib 0x00000001a4ec1840 invocation function for block in dyld3::AllImages::runInitialzersBottomUp+ 71744 (dyld3::closure::Image const*) + 224 26 libdyld.dylib 0x00000001a4eb318c dyld3::closure::Image::forEachImageToInitBefore(void + 12684 (unsigned int, bool&) blockpointer) const + 104 27 libdyld.dylib 0x00000001a4ec2344 dyld3::AllImages::loadImage+ 74564 (Diagnostics&, char const*, unsigned int, dyld3::closure::DlopenClosure const*, bool, bool, bool, bool, void const*) + 828 28 libdyld.dylib 0x00000001a4ec1e2c dyld3::AllImages::dlopen+ 73260 (Diagnostics&, char const*, bool, bool, bool, bool, bool, void const*, bool) + 904 29 libdyld.dylib 0x00000001a4ec3d14 dyld3::dlopeninternal+ 81172 (char const*, int, void*) + 372 30 libdyld.dylib 0x00000001a4eb5d44 dlopeninternal+ 23876 (char const*, int, void*) + 112 31 CoreFoundation 0x00000001a51d2124 CFBundleDlfcnLoadFramework + 140 32 CoreFoundation 0x00000001a51a1e10 _CFBundleLoadExecutableAndReturnError + 384 33 Foundation 0x00000001a64d1908 -[NSBundle loadAndReturnError:] + 336 34 city 0x0000000102533cb0 UnityFrameworkLoad() + 31920 (main.mm:12) 35 city 0x0000000102533db4 main + 32180 (main.mm:25) 36 libdyld.dylib 0x00000001a4eb16c0 start + 4
0
0
1k
Nov ’20
Exception "The operation couldn’t be completed" (CKErrorDomain error 3 )
This exception triggers when the app tries to get the instance of the local database. It works well on other devices so far. I've tried 3 different devices with 3 different iOS versions (13, 14.1 and 14.2) And the one having this problem is the one with the 14.1 although I doubt this is an iOS problem. CKErrorDomain 3 seems to show connectivity problems but the device has good internet connection, also the iCloud is enabled. Anybody experiencing same issue?
1
0
2.0k
Nov ’20
Cloudkit Dashboard shows NO EVENTS at all
Whenever I enter the CloudKit and check the logs in the development database I can see NO EVENTS at all. Neither in history or live events while I test the app. Although I can see on telemetrics that records have been created, modified, deleted and even some conflicts have occurred. Do I have to enable something actively to send logs? or they should be showing up by default? Is this happening to anybody else? I tried resetting the development environment just in case but it didn't solve the problem. Thank you very much.
0
0
637
Nov ’20
Apple FeedBack service
I have a general question for the apple customers here... Does the Feedback assistant ever solved any problem you have reported? Because I've filled 2 DTS and both have redirected me to this nice assistant to post the problem there... the first one maybe 1 month ago, has been completely ignored, even being an iOS 14.0 and 14.0.1 bug confirmed by several users. And seems the other one I filled is going to be ignored too. So I'm just wondering if this is the kind of support I must expect by using apple's services.
5
0
1.3k
Nov ’20
Cloudkit Dashboard shows no events at all
Whenever I enter the CloudKit and check the logs in the development database I can see NO EVENTS at all. Neither in history or live events while I test the app. Although I can see on telemetrics that records have been created, modified, deleted and even some conflicts have occurred. I tried resetting the development environment just in case but it didn't solve the problem. By the way seems it's happening to more users: https://developer.apple.com/forums/thread/659851 Thank you very much.
3
0
925
Nov ’20
CloudKit, avoid 2 devices to use simultaneously the private database using a subscription
I'm trying to do something quite simple. I want to avoid 2 devices with the same appleID to use the private database at the same time. For this purpose I thought about using a subscription. This way whenever a device enters the game it updates a register with the deviceUID. And if another device (using the same appleID and private database) is playing, gets notification and I let him know before kicking him out of the game. (We dont want 2 devices to use the database at the same time) Is this possible using the subscriptions? or did I misunderstood something? Because I was able to create the subscription and the code is supposedly listening to it but I dont get any notification by code when the register declared as 'suscriptionType' is modified or even deleted. Thanks a lot.
0
0
1.1k
Nov ’20
CloudKit: how to prevent 2 devices read/write the same private database
I'm using CloudKit private database to sync the progress of my game among the different devices of a determinate user. So far so good, works nicely. But I don't know how to avoid this user to play the game with 2 different devices at the same time. Ideally I would like to kick the first device out of the game when the second one enters, but not allowing the second device would also be an option. I thought about using subscriptions but the more I read about them the more they seem oriented for push notifications so I was wondering if there's an easier way. Also thought about creating a 'keepAlive' register which I could set the timestamp every minute or something like that to tell the second device the game is in use... but I also find it a bit messy and unnecessary... I guess there has to be an easy way to do this that I'm missing. Any hint?
0
0
994
Nov ’20
Open iCloud settings from my app URI / URL Schemes
I went through some old posts and seems this is not possible but I would like to know if there's any update: Is it not possible to open iCloud settings from the app? I tried with the following URI Schemes: prefs:root=CASTLE (doesn't work) App-Prefs:root=CASTLE (brings me to the default settings window) Considering the iCloud settings need to be enabled to use CloudKit or GameKit and some users don't even know where are the iCloud settings I think this is quite important.
0
0
889
Nov ’20
Hiding IAP's in certain countries to avoid anti-lootbox laws
Hi, as far as I found there's not a way of hiding In App Purchases in certain countries. Actually, Apple's Guidelines suggest that is not even allowed. But not long ago countries like Belgium and Netherlands have taken legal actions against studios that offer this kind of In App Purchases so... Whats the solution? Completely remove any type of loot boxing from our game? Remove the game from those countries App Store ? (I dont know if this is even possible, I guess it is) Find the location of the player programmatically and show/hide IAP's (not very reliable) I'm surprised I couldn't find more debate about this since tons of games offer this kind of purchase. Thanks in advance!
1
0
1.5k
Jul ’21
Do bots/testers open my app when uploading to TestFlight?
I'm receiving exceptions and user reports from devices that don't belong to my testers. One of them even has the Chinese language set in it. Another thing is they dont seem to have any iCloud account set up so it makes me think its an emulator of some type. Is it possible these reports are coming from any TestFlight bot or tester ? Or should I start to worry of who's having access to my app? Thanks
0
0
692
Nov ’21