[{"data":1,"prerenderedAt":569},["ShallowReactive",2],{"changelog-nav":3,"\u002Fchangelog\u002Fios":35},[4,7,11,15,19,23,27,31],{"path":5,"title":6},"\u002Fchangelog","Changelog home",{"title":8,"path":9,"stem":10},"Product changelog","\u002Fchangelog\u002Fproduct","3.changelog\u002F2.product",{"title":12,"path":13,"stem":14},"JavaScript changelog","\u002Fchangelog\u002Fjavascript","3.changelog\u002F3.javascript",{"title":16,"path":17,"stem":18},"Core (Node.js) changelog","\u002Fchangelog\u002Fcore","3.changelog\u002F4.core",{"title":20,"path":21,"stem":22},"Fingerprint (JavaScript) changelog","\u002Fchangelog\u002Ffingerprint","3.changelog\u002F5.fingerprint",{"title":24,"path":25,"stem":26},"iOS changelog","\u002Fchangelog\u002Fios","3.changelog\u002F6.iOS",{"title":28,"path":29,"stem":30},"Android changelog","\u002Fchangelog\u002Fandroid","3.changelog\u002F7.android",{"title":32,"path":33,"stem":34},"React Native changelog","\u002Fchangelog\u002Freact-native","3.changelog\u002F8.react native",{"id":36,"title":24,"body":37,"description":562,"extension":563,"meta":564,"navigation":565,"path":25,"seo":566,"sitemap":567,"stem":26,"__hash__":568},"changelog\u002F3.changelog\u002F6.iOS.md",{"type":38,"value":39,"toc":493},"minimark",[40,45,63,74,77,82,87,99,103,111,115,118,127,131,134,143,146,159,163,166,175,179,182,193,197,219,223,226,238,242,245,256,260,263,272,276,279,288,292,295,306,310,313,323,326,331,334,339,343,346,351,355,358,366,370,373,389,393,396,401,404,408,411,436,438,442,445,453,455,459,462,467,470,475,477,485,488],[41,42,44],"h1",{"id":43},"ios-sdk-changelog","iOS SDK changelog",[46,47,48,49,56,57,62],"p",{},"The format is based on ",[50,51,55],"a",{"href":52,"rel":53},"https:\u002F\u002Fkeepachangelog.com\u002Fen\u002F1.0.0\u002F",[54],"nofollow","Keep a Changelog",",\nand this project adheres to ",[50,58,61],{"href":59,"rel":60},"https:\u002F\u002Fsemver.org\u002Fspec\u002Fv2.0.0.html",[54],"Semantic Versioning",".",[64,65,67],"h4",{"id":66},"download-latest-sdk-binary",[50,68,73],{"href":69,"target":70,"className":71},"\u002Fios\u002Fsdk\u002FRuptClient.xcframework.zip","_blank",[72],"text-xl","Download latest SDK binary",[75,76],"br",{},[78,79,81],"h2",{"id":80},"_381-2025-10-23","[3.8.1] - 2025-10-23",[83,84,86],"h3",{"id":85},"added","Added",[88,89,90],"ul",{},[91,92,93,94,98],"li",{},"Exposed ",[95,96,97],"code",{},"hideChallenge()"," function to manually hide any open challenges and reset the challenge state.",[83,100,102],{"id":101},"changed","Changed",[88,104,105,108],{},[91,106,107],{},"Changed navigation buttons to show on all screens of the challenge instead of non-main screen only.",[91,109,110],{},"Changed back button callback to call even if challenge webview cannot go back (i.e. no navigation history).",[78,112,114],{"id":113},"_380-2025-10-22","[3.8.0] - 2025-10-22",[83,116,86],{"id":117},"added-1",[88,119,120],{},[91,121,122,123,126],{},"Exposed a ",[95,124,125],{},"getHash"," function which returns the hash for the fingerprint to be used for evaluations.",[78,128,130],{"id":129},"_370-2025-08-28","[3.7.0] - 2025-08-28",[83,132,86],{"id":133},"added-2",[88,135,136],{},[91,137,138,139,142],{},"Added ",[95,140,141],{},"onBackButtonPressed"," callback to allow for custom handling of the back button.",[83,144,102],{"id":145},"changed-1",[88,147,148],{},[91,149,150,151,154,155,158],{},"Removed requirement to set ",[95,152,153],{},"challengeViewController"," to ",[95,156,157],{},"nil"," before showing a new challenge.",[78,160,162],{"id":161},"_360-2025-08-17","[3.6.0] - 2025-08-17",[83,164,86],{"id":165},"added-3",[88,167,168],{},[91,169,170,171,174],{},"Added callback ",[95,172,173],{},"shouldPresentChallengeViewController"," to allow intercepting the challenge view controller.",[78,176,178],{"id":177},"_351-2025-08-12","[3.5.1] - 2025-08-12",[83,180,86],{"id":181},"added-4",[88,183,184],{},[91,185,93,186,188,189,192],{},[95,187,153],{}," property on the ",[95,190,191],{},"RuptClient"," instance to allow deeplink handling.",[83,194,196],{"id":195},"fixed","Fixed",[88,198,199,202,216],{},[91,200,201],{},"Fixed navigation colors to support dark mode & light mode based on the system primary color.",[91,203,204,205,208,209,212,213,62],{},"Fixed ",[95,206,207],{},"fullScreenChallenges"," not working for when ",[95,210,211],{},"showChallengeNavigation"," is set to ",[95,214,215],{},"true",[91,217,218],{},"Disabled the ability to dismiss the challenge webview by swiping down.",[78,220,222],{"id":221},"_350-2025-08-11","[3.5.0] - 2025-08-11",[83,224,86],{"id":225},"added-5",[88,227,228,233],{},[91,229,93,230,232],{},[95,231,211],{}," property on the RuptClient instance to enhance the ability to customize the challenge webview navigation.",[91,234,93,235,237],{},[95,236,207],{}," property on the RuptClient instance to allow for full screen challenges.",[78,239,241],{"id":240},"_340-2025-08-11","[3.4.0] - 2025-08-11",[83,243,86],{"id":244},"added-6",[88,246,247],{},[91,248,93,249,188,252,255],{},[95,250,251],{},"challengeWebviewNavigationDelegate",[95,253,254],{},"Rupt.shared"," instance to allow for custom navigation handling of the challenge webview.",[78,257,259],{"id":258},"_332-2025-08-06","[3.3.2] - 2025-08-06",[83,261,196],{"id":262},"fixed-1",[88,264,265],{},[91,266,267,268,271],{},"Fixed a missing call to the ",[95,269,270],{},"onLimitExceeded"," callback when the devices exceed the set limit.",[78,273,275],{"id":274},"_331-2025-07-30","[3.3.1] - 2025-07-30",[83,277,196],{"id":278},"fixed-2",[88,280,281],{},[91,282,283,284,287],{},"Fixed a bug that caused the SDK to call ",[95,285,286],{},"onCurrentDeviceLogout"," when the app was backgrounded.",[78,289,291],{"id":290},"_330-2025-07-06","[3.3.0] - 2025-07-06",[83,293,86],{"id":294},"added-7",[88,296,297,300],{},[91,298,299],{},"Moved iOS challenges to use WebView instead of native challenges to provide UX parity with web and Android.",[91,301,93,302,305],{},[95,303,304],{},"onChallengeCompleted"," callback to the SDK when a challenge is completed.",[78,307,309],{"id":308},"_320-2025-07-02","[3.2.0] - 2025-07-02",[83,311,86],{"id":312},"added-8",[88,314,315],{},[91,316,93,317,188,320,322],{},[95,318,319],{},"version",[95,321,254],{}," instance to get the current version of the SDK. This helps with debugging and compatibility checks.",[83,324,102],{"id":325},"changed-2",[88,327,328],{},[91,329,330],{},"Updated behavior of logout button to be more user-friendly.",[83,332,196],{"id":333},"fixed-3",[88,335,336],{},[91,337,338],{},"Error alert was not showing up when user entered the wrong authentication code.",[78,340,342],{"id":341},"_310-2025-06-18","[3.1.0] - 2025-06-18",[83,344,102],{"id":345},"changed-3",[88,347,348],{},[91,349,350],{},"Updated the SDK for to support the latest Swift 5 version.",[78,352,354],{"id":353},"_302-2024-04-16","[3.0.2] - 2024-04-16",[83,356,196],{"id":357},"fixed-4",[88,359,360,363],{},[91,361,362],{},"The framework had build errors for ARM64 devices. This has been fixed.",[91,364,365],{},"Added missing library versions for server side handling.",[78,367,369],{"id":368},"_300-2024-01-07","[3.0.0] - 2024-01-07",[83,371,102],{"id":372},"changed-4",[88,374,375,378,381],{},[91,376,377],{},"Updated the SDK to use the new v3 API for Rupt. V2 is deprecated.",[91,379,380],{},"This is a breaking change. You will need to update your code to use the new API.",[91,382,383,384,388],{},"See the quick ",[50,385,387],{"href":386},"\u002Fdocs\u002Fios\u002Fquick-start","start guide"," for the updated usage.",[78,390,392],{"id":391},"_222-2023-02-27","[2.2.2] - 2023-02-27",[83,394,102],{"id":395},"changed-5",[88,397,398],{},[91,399,400],{},"Change the name of the iOS SDK to Rupt",[402,403],"hr",{},[78,405,407],{"id":406},"_220-2022-11-22","[2.2.0] - 2022-11-22",[83,409,86],{"id":410},"added-9",[88,412,413,423,430],{},[91,414,138,415,418,419,422],{},[95,416,417],{},"metadata"," to the ",[95,420,421],{},"attach"," function.",[91,424,425,426,429],{},"Exposed the ",[95,427,428],{},"identify"," function to the SDK.",[91,431,432,433,435],{},"Exposed the device identity property on the ",[95,434,254],{}," instance.",[402,437],{},[78,439,441],{"id":440},"_211-2022-11-06","[2.1.1] - 2022-11-06",[83,443,196],{"id":444},"fixed-5",[88,446,447],{},[91,448,449,450,452],{},"An issue causing ",[95,451,286],{}," to be called multiple times when triggered.",[402,454],{},[78,456,458],{"id":457},"_210-2022-11-06","[2.1.0] - 2022-11-06",[83,460,86],{"id":461},"added-10",[88,463,464],{},[91,465,466],{},"Support for realtime device events. When user is remotely logged out, the device will immediately trigger the necessary callbacks.",[83,468,102],{"id":469},"changed-6",[88,471,472],{},[91,473,474],{},"Dependencies of the library now include SSE event implementation by our friends in LaunchDarkly.",[402,476],{},[78,478,480,484],{"id":479},"_200-2022-08-31",[481,482,483],"span",{},"2.0.0"," - 2022-08-31",[83,486,102],{"id":487},"changed-7",[88,489,490],{},[91,491,492],{},"Used the new v2 API for Rupt. V1 is deprecated.",{"title":494,"searchDepth":495,"depth":495,"links":496},"",2,[497,502,505,509,512,516,519,522,525,528,531,536,539,542,545,548,551,554,558],{"id":80,"depth":495,"text":81,"children":498},[499,501],{"id":85,"depth":500,"text":86},3,{"id":101,"depth":500,"text":102},{"id":113,"depth":495,"text":114,"children":503},[504],{"id":117,"depth":500,"text":86},{"id":129,"depth":495,"text":130,"children":506},[507,508],{"id":133,"depth":500,"text":86},{"id":145,"depth":500,"text":102},{"id":161,"depth":495,"text":162,"children":510},[511],{"id":165,"depth":500,"text":86},{"id":177,"depth":495,"text":178,"children":513},[514,515],{"id":181,"depth":500,"text":86},{"id":195,"depth":500,"text":196},{"id":221,"depth":495,"text":222,"children":517},[518],{"id":225,"depth":500,"text":86},{"id":240,"depth":495,"text":241,"children":520},[521],{"id":244,"depth":500,"text":86},{"id":258,"depth":495,"text":259,"children":523},[524],{"id":262,"depth":500,"text":196},{"id":274,"depth":495,"text":275,"children":526},[527],{"id":278,"depth":500,"text":196},{"id":290,"depth":495,"text":291,"children":529},[530],{"id":294,"depth":500,"text":86},{"id":308,"depth":495,"text":309,"children":532},[533,534,535],{"id":312,"depth":500,"text":86},{"id":325,"depth":500,"text":102},{"id":333,"depth":500,"text":196},{"id":341,"depth":495,"text":342,"children":537},[538],{"id":345,"depth":500,"text":102},{"id":353,"depth":495,"text":354,"children":540},[541],{"id":357,"depth":500,"text":196},{"id":368,"depth":495,"text":369,"children":543},[544],{"id":372,"depth":500,"text":102},{"id":391,"depth":495,"text":392,"children":546},[547],{"id":395,"depth":500,"text":102},{"id":406,"depth":495,"text":407,"children":549},[550],{"id":410,"depth":500,"text":86},{"id":440,"depth":495,"text":441,"children":552},[553],{"id":444,"depth":500,"text":196},{"id":457,"depth":495,"text":458,"children":555},[556,557],{"id":461,"depth":500,"text":86},{"id":469,"depth":500,"text":102},{"id":479,"depth":495,"text":559,"children":560},"2.0.0 - 2022-08-31",[561],{"id":487,"depth":500,"text":102},"The format is based on Keep a Changelog,\nand this project adheres to Semantic Versioning.","md",{},true,{"title":24,"description":562},{"loc":25},"igmKV3Mb21cam0tkaYil-_K07Q4XnkEV4WPiEYgy0gY",1777051954482]