From 8f353676c9b4250efe91fbc76373718582f36773 Mon Sep 17 00:00:00 2001 From: Natalie Bunduwongse Date: Fri, 6 Sep 2024 14:35:36 +1200 Subject: [PATCH 1/9] feat: allow logout redirect uri to be set for device code auth --- sample/Assets/Scripts/SelectAuthMethodScript.cs | 4 ++-- .../Runtime/Scripts/Private/Model/Request/InitRequest.cs | 1 + src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/sample/Assets/Scripts/SelectAuthMethodScript.cs b/sample/Assets/Scripts/SelectAuthMethodScript.cs index e422602b..1df74e95 100644 --- a/sample/Assets/Scripts/SelectAuthMethodScript.cs +++ b/sample/Assets/Scripts/SelectAuthMethodScript.cs @@ -44,7 +44,7 @@ private bool IsPKCESupported() public void UseDeviceCodeAuth() { SampleAppManager.UsePKCE = false; - InitialisePassport(); + InitialisePassport(logoutRedirectUri: "https://www.immutable.com"); } /// @@ -61,7 +61,7 @@ public void UsePKCE() /// /// (Android, iOS and macOS only) The URL to which auth will redirect the browser after /// authorisation has been granted by the user - /// (Android, iOS and macOS only) The URL to which auth will redirect the browser + /// The URL to which auth will redirect the browser /// after log out is complete private async void InitialisePassport(string redirectUri = null, string logoutRedirectUri = null) { diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/InitRequest.cs b/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/InitRequest.cs index 6fc2cf3e..61ceb5ce 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/InitRequest.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/InitRequest.cs @@ -18,6 +18,7 @@ internal class InitRequest { public string clientId; public string environment; + public string logoutRedirectUri; public VersionInfo engineVersion; } } diff --git a/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs b/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs index 4e57a358..79b6e73c 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs @@ -71,7 +71,7 @@ public async UniTask Init(string clientId, string environment, string redirectUr }; string initRequest; - if (redirectUri != null && logoutRedirectUri != null) + if (redirectUri != null) { InitRequestWithRedirectUri requestWithRedirectUri = new InitRequestWithRedirectUri() { @@ -89,6 +89,7 @@ public async UniTask Init(string clientId, string environment, string redirectUr { clientId = clientId, environment = environment, + logoutRedirectUri = logoutRedirectUri, engineVersion = versionInfo }; initRequest = JsonUtility.ToJson(request); From 971563ceb79b2f26dd4847e029fba86e97a1f412 Mon Sep 17 00:00:00 2001 From: nattb8 Date: Fri, 6 Sep 2024 03:06:15 +0000 Subject: [PATCH 2/9] chore: update game bridge to 1.51.3 --- .../Passport/Runtime/Resources/index.html | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Packages/Passport/Runtime/Resources/index.html b/src/Packages/Passport/Runtime/Resources/index.html index 5fade945..7137f90e 100644 --- a/src/Packages/Passport/Runtime/Resources/index.html +++ b/src/Packages/Passport/Runtime/Resources/index.html @@ -1,4 +1,4 @@ -GameSDK Bridge

Bridge Running

\ No newline at end of file +)[]`,e4=(e,t)=>{let r=[],i=new f.ethers.utils.Interface(c.walletContracts.mainModule.abi);for(let n of t){let t=(0,f.ethers).utils.arrayify(n.data||"0x");if(n.to===e&&(0,f.ethers).utils.hexlify(t.slice(0,4))===e5){let e=t.slice(4),i=(0,f.ethers).utils.defaultAbiCoder.decode([e8],e)[0];r.push(...e4(n.to,i.map(e=>d({},e,{to:e.target}))))}else try{let n=i.decodeFunctionData("execute",t)[0],a=e4(e,n.map(e=>d({},e,{to:e.target})));r.push(...a)}catch(e){r.push(n)}}return r};var e7=Object.freeze({__proto__:null,MetaTransactionsType:eZ,intendTransactionBundle:function(e,t,r,i){return d({},e,{chainId:r,intent:{id:i,wallet:t}})},intendedTransactionID:function(e){return(0,f.ethers).utils.keccak256((0,f.ethers).utils.defaultAbiCoder.encode(["address","uint256","bytes32"],[e.intent.wallet,e.chainId,e.intent.id]))},unpackMetaTransactionsData:function(e){let t=(0,f.ethers).utils.defaultAbiCoder.decode(["uint256",eZ],e);if(2!==t.length||!t[0]||!t[1])throw Error("Invalid meta transaction data");return[t[0],t[1]]},packMetaTransactionsData:eX,digestOfTransactions:e$,subdigestOfTransactions:function(e,t,r,i){return l({address:e,chainId:t,digest:e$(r,i)})},subdigestOfGuestModuleTransactions:function(e,t,r){return l({address:e,chainId:t,digest:(0,f.ethers).utils.keccak256((0,f.ethers).utils.defaultAbiCoder.encode(["string",eZ],["guest:",e2(r)]))})},toSequenceTransactions:eY,toSequenceTransaction:eQ,isSequenceTransaction:e0,hasSequenceTransactions:e1,sequenceTxAbiEncode:e2,fromTxAbiEncode:function(e){return e.map(e=>({delegateCall:e.delegateCall,revertOnError:e.revertOnError,gasLimit:e.gasLimit,to:e.target,value:e.value,data:e.data}))},encodeNonce:function(e,t){let r=(0,f.ethers).BigNumber.from(e),i=(0,f.ethers).BigNumber.from(t),n=(0,f.ethers).constants.Two.pow((0,f.ethers).BigNumber.from(96));if(!i.div(n).eq(f.ethers.constants.Zero))throw Error("Space already encoded");return i.add(r.mul(n))},decodeNonce:function(e){let t=(0,f.ethers).BigNumber.from(e),r=(0,f.ethers).constants.Two.pow((0,f.ethers).BigNumber.from(96));return[t.div(r),t.mod(r)]},fromTransactionish:function(e,t){if(Array.isArray(t)){if(e1(t))return t;{let r=eY(e,t);return r.map(e=>e.transaction)}}return e0(t)?[t]:[eQ(e,t).transaction]},isTransactionBundle:e6,isSignedTransactionBundle:e3,encodeBundleExecData:function(e){let t=new f.ethers.utils.Interface(c.walletContracts.mainModule.abi);return t.encodeFunctionData(t.getFunction("execute"),e3(e)?[e2(e.transactions),e.nonce,e.signature]:[e2(e.transactions),0,[]])},selfExecuteSelector:e5,selfExecuteAbi:e8,unwind:e4});let e9="0x608060405234801561001057600080fd5b5060405161124a38038061124a83398101604081905261002f91610124565b600060405161003d906100dd565b604051809103906000f080158015610059573d6000803e3d6000fd5b5090506000816001600160a01b0316638f0684308686866040518463ffffffff1660e01b815260040161008e939291906101fb565b6020604051808303816000875af11580156100ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d19190610244565b9050806000526001601ff35b610fdc8061026e83390190565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561011b578181015183820152602001610103565b50506000910152565b60008060006060848603121561013957600080fd5b83516001600160a01b038116811461015057600080fd5b6020850151604086015191945092506001600160401b038082111561017457600080fd5b818601915086601f83011261018857600080fd5b81518181111561019a5761019a6100ea565b604051601f8201601f19908116603f011681019083821181831017156101c2576101c26100ea565b816040528281528960208487010111156101db57600080fd5b6101ec836020830160208801610100565b80955050505050509250925092565b60018060a01b0384168152826020820152606060408201526000825180606084015261022e816080850160208701610100565b601f01601f191691909101608001949350505050565b60006020828403121561025657600080fd5b8151801515811461026657600080fd5b939250505056fe608060405234801561001057600080fd5b50610fbc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806376be4cea1161005057806376be4cea146100a65780638f068430146100b957806398ef1ed8146100cc57600080fd5b80631c6453271461006c5780633d787b6314610093575b600080fd5b61007f61007a366004610ad4565b6100df565b604051901515815260200160405180910390f35b61007f6100a1366004610ad4565b61023d565b61007f6100b4366004610b3e565b61031e565b61007f6100c7366004610ad4565b6108e1565b61007f6100da366004610ad4565b61096e565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea9061012890889088908890889088908190600401610bc3565b6020604051808303816000875af1925050508015610181575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261017e91810190610c45565b60015b610232573d8080156101af576040519150601f19603f3d011682016040523d82523d6000602084013e6101b4565b606091505b508051600181900361022757816000815181106101d3576101d3610c69565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f0100000000000000000000000000000000000000000000000000000000000000149250610235915050565b600092505050610235565b90505b949350505050565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea906102879088908890889088906001908990600401610bc3565b6020604051808303816000875af19250505080156102e0575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526102dd91810190610c45565b60015b610232573d80801561030e576040519150601f19603f3d011682016040523d82523d6000602084013e610313565b606091505b506000915050610235565b600073ffffffffffffffffffffffffffffffffffffffff87163b6060827f64926492649264926492649264926492649264926492649264926492649264928888610369602082610c98565b610375928b9290610cd8565b61037e91610d02565b1490508015610484576000606089828a610399602082610c98565b926103a693929190610cd8565b8101906103b39190610e18565b955090925090508415806103c45750865b1561047d576000808373ffffffffffffffffffffffffffffffffffffffff16836040516103f19190610eb2565b6000604051808303816000865af19150503d806000811461042e576040519150601f19603f3d011682016040523d82523d6000602084013e610433565b606091505b50915091508161047a57806040517f9d0d6e2d0000000000000000000000000000000000000000000000000000000081526004016104719190610f18565b60405180910390fd5b50505b50506104be565b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294505050505b80806104ca5750600083115b156106bb576040517f1626ba7e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b1690631626ba7e90610523908c908690600401610f2b565b602060405180830381865afa92505050801561057a575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261057791810190610f44565b60015b61060f573d8080156105a8576040519150601f19603f3d011682016040523d82523d6000602084013e6105ad565b606091505b50851580156105bc5750600084115b156105db576105d08b8b8b8b8b600161031e565b9450505050506108d7565b806040517f6f2a95990000000000000000000000000000000000000000000000000000000081526004016104719190610f18565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f1626ba7e000000000000000000000000000000000000000000000000000000001480158161065f575086155b801561066b5750600085115b1561068b5761067f8c8c8c8c8c600161031e565b955050505050506108d7565b841580156106965750825b80156106a0575087155b156106af57806000526001601ffd5b94506108d79350505050565b6041871461074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5369676e617475726556616c696461746f72237265636f7665725369676e657260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610471565b600061075a6020828a8c610cd8565b61076391610d02565b90506000610775604060208b8d610cd8565b61077e91610d02565b905060008a8a604081811061079557610795610c69565b919091013560f81c915050601b81148015906107b557508060ff16601c14155b15610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f5369676e617475726556616c696461746f723a20696e76616c6964207369676e60448201527f617475726520762076616c7565000000000000000000000000000000000000006064820152608401610471565b6040805160008152602081018083528e905260ff831691810191909152606081018490526080810183905273ffffffffffffffffffffffffffffffffffffffff8e169060019060a0016020604051602081039080840390855afa1580156108ad573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff161496505050505050505b9695505050505050565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea9061092b9088908890889088906001908990600401610bc3565b6020604051808303816000875af115801561094a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102329190610c45565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea906109b790889088908890889088908190600401610bc3565b6020604051808303816000875af1925050508015610a10575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a0d91810190610c45565b60015b610232573d808015610a3e576040519150601f19603f3d011682016040523d82523d6000602084013e610a43565b606091505b5080516001819003610a6257816000815181106101d3576101d3610c69565b8082fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a8857600080fd5b50565b60008083601f840112610a9d57600080fd5b50813567ffffffffffffffff811115610ab557600080fd5b602083019150836020828501011115610acd57600080fd5b9250929050565b60008060008060608587031215610aea57600080fd5b8435610af581610a66565b935060208501359250604085013567ffffffffffffffff811115610b1857600080fd5b610b2487828801610a8b565b95989497509550505050565b8015158114610a8857600080fd5b60008060008060008060a08789031215610b5757600080fd5b8635610b6281610a66565b955060208701359450604087013567ffffffffffffffff811115610b8557600080fd5b610b9189828a01610a8b565b9095509350506060870135610ba581610b30565b91506080870135610bb581610b30565b809150509295509295509295565b73ffffffffffffffffffffffffffffffffffffffff8716815285602082015260a060408201528360a0820152838560c0830137600060c085830181019190915292151560608201529015156080820152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019392505050565b600060208284031215610c5757600080fd5b8151610c6281610b30565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b81810381811115610cd2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b60008085851115610ce857600080fd5b83861115610cf557600080fd5b5050820193919092039150565b80356020831015610cd2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610d7e57600080fd5b813567ffffffffffffffff80821115610d9957610d99610d3e565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610ddf57610ddf610d3e565b81604052838152866020858801011115610df857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610e2d57600080fd5b8335610e3881610a66565b9250602084013567ffffffffffffffff80821115610e5557600080fd5b610e6187838801610d6d565b93506040860135915080821115610e7757600080fd5b50610e8486828701610d6d565b9150509250925092565b60005b83811015610ea9578181015183820152602001610e91565b50506000910152565b60008251610ec4818460208701610e8e565b9190910192915050565b60008151808452610ee6816020860160208601610e8e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610c626020830184610ece565b8281526040602082015260006102356040830184610ece565b600060208284031215610f5657600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c6257600080fdfea26469706673582212201a72aed4b15ffb05b6502997a9bb655992e06590bd26b336dfbb153d7ff6f34b64736f6c63430008120033";async function te(e,t,r,i){return"0x01"===await e.call({data:(0,f.ethers).utils.concat([e9,new(0,f.ethers).utils.AbiCoder().encode(["address","bytes32","bytes"],[t,r,i])])})}var tt=Object.freeze({__proto__:null,EIP_6492_OFFCHAIN_DEPLOY_CODE:e9,EIP_6492_SUFFIX:"0x6492649264926492649264926492649264926492649264926492649264926492",validateEIP6492Offchain:te}),tr=Object.freeze({__proto__:null,config:u,signature:p,context:eJ,signer:_,EIP1271:g,transaction:e7,reader:Object.freeze({__proto__:null,OnChainReader:class{constructor(e){this.isDeployedCache=new Set,this.provider=e}module(e){return new f.ethers.Contract(e,[...c.walletContracts.mainModuleUpgradable.abi,...c.walletContracts.mainModule.abi,...c.walletContracts.erc1271.abi],this.provider)}async isDeployed(e){if(this.isDeployedCache.has(e))return!0;let t=await this.provider.getCode(e).then(e=>(0,f.ethers).utils.arrayify(e)),r=0!==t.length;return r&&this.isDeployedCache.add(e),r}async implementation(e){let t=(0,f.ethers).utils.defaultAbiCoder.encode(["address"],[e]),r=await this.provider.getStorageAt(e,t).then(e=>(0,f.ethers).utils.arrayify(e));return 20===r.length?(0,f.ethers).utils.getAddress((0,f.ethers).utils.hexlify(r)):32===r.length?(0,f.ethers).utils.defaultAbiCoder.decode(["address"],r)[0]:void 0}async imageHash(e){try{let t=await this.module(e).imageHash();return t}catch(e){}}async nonce(e,t=0){try{let r=await this.module(e).readNonce(t);return r}catch(t){if(!await this.isDeployed(e))return 0;throw t}}async isValidSignature(e,t,r){return te(this.provider,e,t,r)}}}),EIP6492:tt,isWalletSignRequestMetadata:function(e){return e&&e.address&&e.digest&&void 0!==e.chainId&&e.config}});let ti=[{config:P,signature:k},{config:eq,signature:em}];function tn(e){let t=e-1;if(t<0||t>=ti.length)throw Error(`No coder for version: ${e}`);return ti[t]}var ta=Object.freeze({__proto__:null,ALL_CODERS:ti,coderFor:tn,genericCoderFor:function(e){return tn(e)}});let ts=[j,eW]},{ethers:"8wpcu","@0xsequence/abi":"NeOck","@parcel/transformer-js/src/esmodule-helpers.js":"cI3Jn"}]},["8Vdv4"],"8Vdv4","parcelRequire59a4");

Bridge Running

\ No newline at end of file From c4f5018ab2720e481452fa2488f474f120ba7b51 Mon Sep 17 00:00:00 2001 From: Andrew Yang Date: Thu, 19 Sep 2024 16:59:26 +1000 Subject: [PATCH 3/9] feat: rename webview plugin --- .github/workflows/test.yml | 4 +- .../project.pbxproj | 34 +++++----- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../{WebView.mm => ImmutableWebView.mm} | 24 +++---- Plugins/Mac/install.sh | 4 +- .../Immutable.Passport.Runtime.Private.asmdef | 2 +- .../Public/Immutable.Passport.Runtime.asmdef | 2 +- ...ndle.meta => ImmutableWebView.bundle.meta} | 0 .../Contents/Info.plist | 20 +++--- .../Contents/MacOS/ImmutableWebView} | Bin 217008 -> 200720 bytes .../Contents/Resources/InfoPlist.strings | Bin .../Contents/_CodeSignature/CodeResources | 0 .../Gree/Assets/Plugins/WebViewObject.cs | 56 +++++++-------- .../Gree/Assets/Plugins/WebViewObject.cs.meta | 2 +- .../iOS/{WebView.mm => ImmutableWebView.mm} | 64 +++++++++--------- ...bView.mm.meta => ImmutableWebView.mm.meta} | 0 ...webview.asmdef => ImmutableWebView.asmdef} | 4 +- ...mdef.meta => ImmutableWebView.asmdef.meta} | 0 19 files changed, 109 insertions(+), 107 deletions(-) rename Plugins/Mac/{WebView.xcodeproj => ImmutableWebView.xcodeproj}/project.pbxproj (89%) rename Plugins/Mac/{WebView.xcodeproj => ImmutableWebView.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename Plugins/Mac/{WebView.xcodeproj => ImmutableWebView.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename Plugins/Mac/Sources/{WebView.mm => ImmutableWebView.mm} (94%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/{WebView.bundle.meta => ImmutableWebView.bundle.meta} (100%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/{WebView.bundle => ImmutableWebView.bundle}/Contents/Info.plist (78%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/{WebView.bundle/Contents/MacOS/WebView => ImmutableWebView.bundle/Contents/MacOS/ImmutableWebView} (58%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/{WebView.bundle => ImmutableWebView.bundle}/Contents/Resources/InfoPlist.strings (100%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/{WebView.bundle => ImmutableWebView.bundle}/Contents/_CodeSignature/CodeResources (100%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/{WebView.mm => ImmutableWebView.mm} (86%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/{WebView.mm.meta => ImmutableWebView.mm.meta} (100%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/{unity-webview.asmdef => ImmutableWebView.asmdef} (84%) rename src/Packages/Passport/Runtime/ThirdParty/Gree/{unity-webview.asmdef.meta => ImmutableWebView.asmdef.meta} (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 40728c78..56991855 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,13 +25,13 @@ jobs: projectPath: './sample' githubToken: ${{ secrets.GITHUB_TOKEN }} testMode: 'EditMode' - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 if: always() with: name: Test results path: ${{ steps.passportTest.outputs.artifactsPath }} - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 if: always() with: name: Coverage results diff --git a/Plugins/Mac/WebView.xcodeproj/project.pbxproj b/Plugins/Mac/ImmutableWebView.xcodeproj/project.pbxproj similarity index 89% rename from Plugins/Mac/WebView.xcodeproj/project.pbxproj rename to Plugins/Mac/ImmutableWebView.xcodeproj/project.pbxproj index 62c5f4aa..58e1dd71 100644 --- a/Plugins/Mac/WebView.xcodeproj/project.pbxproj +++ b/Plugins/Mac/ImmutableWebView.xcodeproj/project.pbxproj @@ -12,7 +12,7 @@ 81B8C535151078DB000C56DC /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81B8C534151078DB000C56DC /* WebKit.framework */; }; 81B8C53815108B89000C56DC /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81B8C53715108B89000C56DC /* Carbon.framework */; }; 81E2C20C14C5684A004CE5C2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81E2C20B14C5684A004CE5C2 /* Cocoa.framework */; }; - 81F4B4D914C6888B001B4465 /* WebView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 81F4B4D814C6888B001B4465 /* WebView.mm */; }; + 81F4B4D914C6888B001B4465 /* ImmutableWebView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 81F4B4D814C6888B001B4465 /* ImmutableWebView.mm */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -23,11 +23,11 @@ 8102525614C569D80022296D /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = Resources/Prefix.pch; sourceTree = SOURCE_ROOT; }; 81B8C534151078DB000C56DC /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 81B8C53715108B89000C56DC /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - 81E2C20814C5684A004CE5C2 /* WebView.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WebView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 81E2C20814C5684A004CE5C2 /* ImmutableWebView.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ImmutableWebView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 81E2C20B14C5684A004CE5C2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 81E2C20E14C5684A004CE5C2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 81E2C21014C5684A004CE5C2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 81F4B4D814C6888B001B4465 /* WebView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebView.mm; path = Sources/WebView.mm; sourceTree = ""; }; + 81F4B4D814C6888B001B4465 /* ImmutableWebView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ImmutableWebView.mm; path = Sources/ImmutableWebView.mm; sourceTree = ""; }; 81F81AEC14D76D2400845D4C /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -49,7 +49,7 @@ 8102525914C573EB0022296D /* Sources */ = { isa = PBXGroup; children = ( - 81F4B4D814C6888B001B4465 /* WebView.mm */, + 81F4B4D814C6888B001B4465 /* ImmutableWebView.mm */, ); name = Sources; sourceTree = ""; @@ -67,7 +67,7 @@ 81E2C20914C5684A004CE5C2 /* Products */ = { isa = PBXGroup; children = ( - 81E2C20814C5684A004CE5C2 /* WebView.bundle */, + 81E2C20814C5684A004CE5C2 /* ImmutableWebView.bundle */, ); name = Products; sourceTree = ""; @@ -101,9 +101,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 81E2C20714C5684A004CE5C2 /* WebView */ = { + 81E2C20714C5684A004CE5C2 /* ImmutableWebView */ = { isa = PBXNativeTarget; - buildConfigurationList = 81E2C21A14C5684A004CE5C2 /* Build configuration list for PBXNativeTarget "WebView" */; + buildConfigurationList = 81E2C21A14C5684A004CE5C2 /* Build configuration list for PBXNativeTarget "ImmutableWebView" */; buildPhases = ( 81E2C20414C5684A004CE5C2 /* Sources */, 81E2C20514C5684A004CE5C2 /* Frameworks */, @@ -113,9 +113,9 @@ ); dependencies = ( ); - name = WebView; + name = ImmutableWebView; productName = WebView; - productReference = 81E2C20814C5684A004CE5C2 /* WebView.bundle */; + productReference = 81E2C20814C5684A004CE5C2 /* ImmutableWebView.bundle */; productType = "com.apple.product-type.bundle"; }; /* End PBXNativeTarget section */ @@ -127,7 +127,7 @@ BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1200; }; - buildConfigurationList = 81E2C20214C5684A004CE5C2 /* Build configuration list for PBXProject "WebView" */; + buildConfigurationList = 81E2C20214C5684A004CE5C2 /* Build configuration list for PBXProject "ImmutableWebView" */; compatibilityVersion = "Xcode 8.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -140,7 +140,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 81E2C20714C5684A004CE5C2 /* WebView */, + 81E2C20714C5684A004CE5C2 /* ImmutableWebView */, ); }; /* End PBXProject section */ @@ -161,7 +161,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 81F4B4D914C6888B001B4465 /* WebView.mm in Sources */, + 81F4B4D914C6888B001B4465 /* ImmutableWebView.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -280,7 +280,8 @@ LD_RUNPATH_SEARCH_PATHS = ""; LIBRARY_SEARCH_PATHS = "$(inherited)"; MACOSX_DEPLOYMENT_TARGET = 12.4; - PRODUCT_BUNDLE_IDENTIFIER = "net.gree.unitywebview.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = "Immutable.Browser.--PRODUCT-NAME-rfc1034identifier-"; + "PRODUCT_BUNDLE_IDENTIFIER[sdk=macosx*]" = Immutable.Browser.WebView; PRODUCT_NAME = "$(TARGET_NAME)"; USE_HEADERMAP = YES; WRAPPER_EXTENSION = bundle; @@ -301,7 +302,8 @@ LD_RUNPATH_SEARCH_PATHS = ""; LIBRARY_SEARCH_PATHS = "$(inherited)"; MACOSX_DEPLOYMENT_TARGET = 12.4; - PRODUCT_BUNDLE_IDENTIFIER = "net.gree.unitywebview.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = "Immutable.Browser.--PRODUCT-NAME-rfc1034identifier-"; + "PRODUCT_BUNDLE_IDENTIFIER[sdk=macosx*]" = Immutable.Browser.WebView; PRODUCT_NAME = "$(TARGET_NAME)"; USE_HEADERMAP = YES; WRAPPER_EXTENSION = bundle; @@ -311,7 +313,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 81E2C20214C5684A004CE5C2 /* Build configuration list for PBXProject "WebView" */ = { + 81E2C20214C5684A004CE5C2 /* Build configuration list for PBXProject "ImmutableWebView" */ = { isa = XCConfigurationList; buildConfigurations = ( 81E2C21814C5684A004CE5C2 /* Debug */, @@ -320,7 +322,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 81E2C21A14C5684A004CE5C2 /* Build configuration list for PBXNativeTarget "WebView" */ = { + 81E2C21A14C5684A004CE5C2 /* Build configuration list for PBXNativeTarget "ImmutableWebView" */ = { isa = XCConfigurationList; buildConfigurations = ( 81E2C21B14C5684A004CE5C2 /* Debug */, diff --git a/Plugins/Mac/WebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Plugins/Mac/ImmutableWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Plugins/Mac/WebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Plugins/Mac/ImmutableWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Plugins/Mac/WebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Plugins/Mac/ImmutableWebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from Plugins/Mac/WebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Plugins/Mac/ImmutableWebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Plugins/Mac/Sources/WebView.mm b/Plugins/Mac/Sources/ImmutableWebView.mm similarity index 94% rename from Plugins/Mac/Sources/WebView.mm rename to Plugins/Mac/Sources/ImmutableWebView.mm index 300168a7..c9c39e0c 100644 --- a/Plugins/Mac/Sources/WebView.mm +++ b/Plugins/Mac/Sources/ImmutableWebView.mm @@ -374,26 +374,26 @@ - (nonnull ASPresentationAnchor)presentationAnchorForWebAuthenticationSession:(n @end extern "C" { -void *_CWebViewPlugin_Init(const char *ua); -void _CWebViewPlugin_Destroy(void *instance); -void _CWebViewPlugin_LoadURL(void *instance, const char *url); -void _CWebViewPlugin_EvaluateJS(void *instance, const char *url); -void _CWebViewPlugin_SetDelegate(DelegateCallbackFunction callback); -void _CWebViewPlugin_LaunchAuthURL(void *instance, const char *url, const char *redirectUri); +void *_CImmutableWebViewPlugin_Init(const char *ua); +void _CImmutableWebViewPlugin_Destroy(void *instance); +void _CImmutableWebViewPlugin_LoadURL(void *instance, const char *url); +void _CImmutableWebViewPlugin_EvaluateJS(void *instance, const char *url); +void _CImmutableWebViewPlugin_SetDelegate(DelegateCallbackFunction callback); +void _CImmutableWebViewPlugin_LaunchAuthURL(void *instance, const char *url, const char *redirectUri); } -void _CWebViewPlugin_SetDelegate(DelegateCallbackFunction callback) { +void _CImmutableWebViewPlugin_SetDelegate(DelegateCallbackFunction callback) { delegateCallback = callback; } -void *_CWebViewPlugin_Init(const char *ua) +void *_CImmutableWebViewPlugin_Init(const char *ua) { CWebViewPlugin *webViewPlugin = [[CWebViewPlugin alloc] initWithUa:ua]; [_instances addObject:webViewPlugin]; return (__bridge_retained void *)webViewPlugin; } -void _CWebViewPlugin_Destroy(void *instance) +void _CImmutableWebViewPlugin_Destroy(void *instance) { if (instance == NULL) return; @@ -403,7 +403,7 @@ void _CWebViewPlugin_Destroy(void *instance) webViewPlugin = nil; } -void _CWebViewPlugin_LoadURL(void *instance, const char *url) +void _CImmutableWebViewPlugin_LoadURL(void *instance, const char *url) { if (instance == NULL) return; @@ -411,7 +411,7 @@ void _CWebViewPlugin_LoadURL(void *instance, const char *url) [webViewPlugin loadURL:url]; } -void _CWebViewPlugin_EvaluateJS(void *instance, const char *js) +void _CImmutableWebViewPlugin_EvaluateJS(void *instance, const char *js) { if (instance == NULL) return; @@ -419,7 +419,7 @@ void _CWebViewPlugin_EvaluateJS(void *instance, const char *js) [webViewPlugin evaluateJS:js]; } -void _CWebViewPlugin_LaunchAuthURL(void *instance, const char *url, const char *redirectUri) +void _CImmutableWebViewPlugin_LaunchAuthURL(void *instance, const char *url, const char *redirectUri) { if (instance == NULL) return; diff --git a/Plugins/Mac/install.sh b/Plugins/Mac/install.sh index 59951737..eb5e05ce 100755 --- a/Plugins/Mac/install.sh +++ b/Plugins/Mac/install.sh @@ -1,9 +1,9 @@ #!/bin/bash DSTDIR="../../src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/" rm -rf DerivedData -xcodebuild -target WebView -configuration Release -arch x86_64 -arch arm64 build CONFIGURATION_BUILD_DIR='DerivedData' | xcbeautify +xcodebuild -target ImmutableWebView -configuration Release -arch x86_64 -arch arm64 build CONFIGURATION_BUILD_DIR='DerivedData' | xcbeautify mkdir -p $DSTDIR -cp -r DerivedData/WebView.bundle $DSTDIR +cp -r DerivedData/ImmutableWebView.bundle $DSTDIR rm -rf DerivedData cp *.bundle.meta $DSTDIR diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Immutable.Passport.Runtime.Private.asmdef b/src/Packages/Passport/Runtime/Scripts/Private/Immutable.Passport.Runtime.Private.asmdef index afa21bb6..c686db84 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Immutable.Passport.Runtime.Private.asmdef +++ b/src/Packages/Passport/Runtime/Scripts/Private/Immutable.Passport.Runtime.Private.asmdef @@ -5,7 +5,7 @@ "VoltstroStudios.UnityWebBrowser", "UniTask", "Immutable.Browser.Core", - "unity-webview", + "Immutable.Browser.Gree", "Immutable.Passport.Core.Logging" ], "includePlatforms": [ diff --git a/src/Packages/Passport/Runtime/Scripts/Public/Immutable.Passport.Runtime.asmdef b/src/Packages/Passport/Runtime/Scripts/Public/Immutable.Passport.Runtime.asmdef index 882b7caa..3571bee6 100644 --- a/src/Packages/Passport/Runtime/Scripts/Public/Immutable.Passport.Runtime.asmdef +++ b/src/Packages/Passport/Runtime/Scripts/Public/Immutable.Passport.Runtime.asmdef @@ -5,7 +5,7 @@ "VoltstroStudios.UnityWebBrowser", "UniTask", "Immutable.Browser.Core", - "unity-webview", + "Immutable.Browser.Gree", "Immutable.Passport.Runtime.Private", "Immutable.Passport.Core.Logging" ], diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle.meta b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle.meta similarity index 100% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle.meta rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle.meta diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/Info.plist b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/Info.plist similarity index 78% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/Info.plist rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/Info.plist index 6c26a9f4..b53c3f00 100644 --- a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/Info.plist +++ b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/Info.plist @@ -3,17 +3,17 @@ BuildMachineOSBuild - 23B81 + 23G93 CFBundleDevelopmentRegion English CFBundleExecutable - WebView + ImmutableWebView CFBundleIdentifier - net.gree.unitywebview.WebView + Immutable.Browser.WebView CFBundleInfoDictionaryVersion 6.0 CFBundleName - WebView + ImmutableWebView CFBundlePackageType BNDL CFBundleShortVersionString @@ -29,19 +29,19 @@ DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - + 24A336 DTPlatformName macosx DTPlatformVersion - 14.0 + 15.0 DTSDKBuild - 23A334 + 24A336 DTSDKName - macosx14.0 + macosx15.0 DTXcode - 1501 + 1600 DTXcodeBuild - 15A507 + 16A242d LSMinimumSystemVersion 12.4 diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/MacOS/WebView b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/MacOS/ImmutableWebView similarity index 58% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/MacOS/WebView rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/MacOS/ImmutableWebView index ce554fbb458103dda710b9fd84910eb013112c7e..69570514f2f6067f66da134c953dfc87a1bf4a43 100755 GIT binary patch delta 30435 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 o;x#I3I6}+;k5FtVgCQ2hto%X zHu(A|UH)%AoNnRtYXNvM9g_raqAOv1M@{Sh#=xblUR2dODr5ar$@1H%>p`)xW`omcPFJmKN~X`+=KxZFPJc^=YpS&$ZMx z%vLP6d7Gd4{k=a}?%Vr@<-XqPZ2bqeJwNU-uHLcxg(njIC%=8WOZO2O0ecGfN18T< zUd>te=S81gT?RIdDBON*!JCJ&%4UCB>eZHY}oPDi#>BXT^wibee}i4IRSp3_55LNXk1Zcmpl6_76csi ze)HI-TaA6SH@Xh(WgX=)>aUyq-e2ZmAraPq@@@mYpS{1TP2rZWoA2#fRCLL#uP)m+ z?d8uuTD>?$+b~DTwDjN5BYw{1)K5!KY@hvG#!t=5!Z%IrxckKM;RjY^^{E+B80j;k zMZ3^%Ui&PhX>wezjox!69=NJO-o5ST?kfxzjWO+Ci`=Ka-8eS$%Fg%mO_P65 z85eH4UOpu4n{S?4RMovjeA^qFbGI4JZ`OV1jOtcvzFRlP{fCO{S;y+ zm{8Qg^5y=C>g;DyZ~p#|zF`xmEP>r64XUBECoUCKmDa5{mzE0AqNUPP?f?6&z1NO0J-+9C&wHNd``-PSS^Ky4+H2qU zUVG1yHF<#r8-v!=4soVvnpVxEX@Q`cW-7wxnF7SBZH@V?n{IUL?upMah3hGC&1wve zB@s>A9Us(_2r&QpS1*7#&@m;Ms%x;TfDG>Hs8&hB3 z9B;F}mm+xD9?nGAOo?Ujwi=nKGSMQ5mYM3gXqduuOF|{RU-x=7ayWfikQB&C)#r8Z zTEl;)gab5#rh{! z@I);&tz!dVtH(IXJvmFt&K9kHiv!pg)(JO}> z5vCLRHAg>>%Vp|cJ%{sZvK}c;&o!5+O}!LA%2^kmn-xvkDB$b{_|h*Yb@o3VYSJRt z#?Jd`bk|SM>}{)5-!utD znDpR2q5AgT?>vB)^m(SD7NBWSCf(AfzW!+PY(Gz2MLj>cm8paNb#ix8Y%IdanTTKcL!}^4fC@vWc z4N0zIBu#vV@)SEqv|^S zR#7I@XkNU?T{7FI^l2ig*szY~q!A+N0E${jNx9a?WE~7^EF|JxA1Ax67}f!ZCoKIj zYaYse4z-1N?Od+3l{Hltnm%^8o%T|s?V{C%%nsMSgqR}3dLvHOr8J!Cav<4t!?6BN zJhy!*N=APqyS__y{bpD{X2~xgDM~*HMrnNrj+27u4a2&TrQRVacjE#;^db5*SuY+P z(;$oTRB^Zxj+X|}x9H!|B;<}Ardw0mI|Ha4E(Z;4OSi1smtj=5k7@ju#9qO`YqM+) zckB=}r{sC0A^y3T4*s8j7}jsQ30_x9pG)bkghP;NM>tL5b#%BFqQbwT>kR8~2#Cs0mxX^@0335}j zy>o}E+>grKuTk#9nEMVV3gzr&UFG!14I1K;{Txz6;dc;0OQuqGH)VI*LqvV8Jt&K- zIOcHtPLoER^0v@MGpfIf1Q#9`?a+k=dlYrGd*LC6(>?gOVO=D-S4bDQF`paO$+DHS;5KBqIlEC)C>^fjMMYlSOuGOIkQ?`x_)iOUnv&U(7~# z>~7Sc60Ct@e1uAL^NW6Mx;?lVu=VvJ1MOV)i1|ooih$ z8clntb2W-FtSSFeYlzU=le5P?sI?`tBg?feDc9OjD6Q(N)NMaRjiS!K(FqZ^T?8BaeFj)36>zDl%QxS4;?vJOm&bgfnCh;@mtG zxnq zDH?)m{A5_GLMWaO=5WLlmi`*NbTMYU!`)ysRo89LTSA1^$vGGZ4wtjIfGXI*k_nWXwq%`;(gy!fMbUJ^54&AHg zPipR*&AMj@-7ul7`La@?HN%jqT9bh|T9dUA6QvA;LQN3M_fb|6%_`jX80y$u>vvL< zVXY1cR5Zs)qGzIZiR3C%dk~(%|&HNT);J zZSO%HO5^x8C%qw(64qc3E)*;=DP31EHOq@xBoZ)v=1DzC2JLxivM97G*>w%)I4c|i z87Lcpf@ty3HZYo!a;-MBG1-;69=(dgKiNHHjbUv>Nz00Ym!0uL#BG0%dMh{f4%%y2 zD^a3*Au{}lQ^RRk@7lq@y!@pWNm*}--b}~?3knVES&_Wov9rAII_?i%nnjv(W4|Y1 zxBYPxfYnKoxwZTp#y%8~C&uOlR=$puyAn2ItLTO%mh>d-w(kzkAwHdJn_~_e)(rh( zdZe>C)fd(Q&W-k*|53=RmiGV;U3FWu$~qEN5RJ!1UYVu+h4evT2U>~ej@=?Az5O#M zNzcNv{I;zqq~yz*L}?gHk><$ld&Vl7{xfWIh^X23nf~(RkQ$FmEwf0Ao3t#^k4z4C zcBY)vUqA0MVW|nzwIAtsf0#nuW=$7`!G6b;dsM#=9rh|*O6`;{oezyG~O#9KB=Ok@A|MV~Iql<1JC+p=t+_&roR zhui-(A(5~m$#o80Gl4qNZGT!Q8Hq+cr|-;&aLz=5s`XDJE_RY5P=HnJaPJ`XvJZN5 z%@R>Fc@QC)$}_CdoYX=j!A7Pd^#c@SSZh&|J9Z&e1y)asWLH!phkMov^vEkTWNGfc zJNvrI5?mK)6TQ*~EKJhxtK&Rq%yPrU(0Yp%vDhAn$xgzm`2F$+;}uJv3?B0=AS;G90t`u;gRsDBa`IL@p2RIk{#kd*8y zjyKLwFK&b)qHBpd#pJICIj~5;Z9lny)LIuqEy@)KQ5qCbpDZ~LfctCwXcRXaEUGN+ zM(INT-I716{j~~VvI=P*5^}*CoDB)bwfuir>fIR z>&tnQ%Jcpr^5TeuGBi ztz7H(Vz|)g8hYm$^_*kCZ zatY&<=GewE`ScuWAI`o6mWUU1pbh#Fl!e|EUEWlrV&-*4M0B|wk%X8_C>QOcg0YGs zMB)vLSVcRririCh*KSZ%A3L*&^C*pxOZLXjDC&(_N$9#AGLPt_S0uX)*dKXGuaxZi zU>AF_X9{-k(%a}pRJV&5DNLRb;L{!#i_%JxtBS-kv*nqA1|U`K%yt)bZ?1JiBnWqB z7}Bp+61#2VhN1^BV_*nYB&`@DGbwb*yJIggosf97g-pC$MGf3&^s86~$B?uFZyQdU z?B9``dm(n%vxwy^Jgx;V8-}tR?hygB^xgL3$Y)qzV14V#^|coIX3{WP`% zO$fI=0u3>&<2c)Bl`S?xCVxH)lR^x0Jd4CaM4rRpVg|@zeuOmN{lhRy8is`FcG7Ts0JkjmR6)iRcb4j|Ghcb^-FQI<83EYu=S<0YSuUfzTCh+ z5wQjb^tWcUHF@-Nv+8z!c{Ww)yy)%Tl#Jd^tV|t>l@@D33riXUVpQq!YeQ7*A-IQi z(PL)U8d8b#_=!AtaBKOY(1?8omyN5D&=|W0%WuJKY!$s_t3}c=N`mc3(z(`VVnP~x zo!F*tm|d@Tvn){^oIq0a!Ym=GHKmO7c!G79g(R^{xJ87vHbg!m8vsKaZw#@Z*lGHo zvzs>Vg@jW7(g1nwDy<4y8Ys_l!`hs(yBj~E_ns40`x1>G=5l4+xg4%zBaI6%1BdF1 z=0rJBAw~Ds?WnsL`hDumK@X22VR!7C z$XasSU#Qt2+DOKsVGT#JJe9tkj>KH+`!q$+(T3Gu6jNMcQq{13Av2O0T+#$$n0=R^ zQZx&5>^AY-u{)@!m7=Ji>H4a<5zh9a5Jz3SbRF;O%C@1dx2ZIK5x!_x7s{-w#S->^ z8U&}KGn5EjYR-u1gz125&KZXuH80v(U8JGA z0}v5spXly?Hl{2_$?6LC%>?n4{6l;QDm6>MENpd@>H{OwbU+ocy<_2AkAbs%=y7~@O_jOMs znZwhlCYT}3C^x#k5vokIHYf%RA}ep2Un=u|4#BSp;XcPZkI-7GNrj0PatRW>62$$0(j zd`r+$B*<0Zj?LEZ%x~CfBslUR$Z3NCm&lNQa~RYgy%wNl4G?By?0hQMZNEn~cE|ql zh(2IJoq*d@!ORW%SkGKgx9%nCy>e@Czp}(W)$ER zSqv?*d4u|wI8YN=`R`C_NlO9!r;6=GTJ$5YhJk4`zGkEE>*D)Y@vT9T(bz1$D~Ruk z;yXZmR}tTV;=49|>n)r?&M1LfiSO3pyN&p6i|>o0#BaJeCX|u(rF z5fZZNYFa+x`G{vA-teYjtU&w-GOtH`DdOG1pLfeJau9Ea_>Ma$0EHb6fk}DSFm9r- zPZ1xB_#VW!B0i(cFl>nLK>XV8hEWUh6HspIy?%y~ovvw_078`5zl9>idn0}x@y8L5gv?dMTSHH??Jwo@@*g`es)sfsH6wM*%v5b~QcuJt zj>$>|Yx=CznOQ^AvL+24nA}Ml{CHxAL0L1>rcTsmre^h@F>PGx%$fbCP0Q${jTt|_ z-`MojaaoMIkeoWt6MPKuBj57zbA5Zf)(duFN zs9)m=dk2zvF9qETdH^)PtEPPe8XJf49;0bzdw>TTnus4U$71$^HUfRIABJ=DdSuV}X7oFU%a8_}n#fSdCB!(=Wg+nD$$whrAMIp1ep1?S9fT z+++?ju{0gZ1jx%j`P-5~aAbt+h3rypVOMV_x?L=XE1@p_D zojGYTLApxV2#C;qA`y#r8oMlYy$au8-4Xws5C2`PFXI2;!!Kg~Eg$|jlJC?EpM=d5 zq#{ceQ5$`U@B&w~t`C35L-^U;0N;ka#0_{v=yBRuJ?`ueX;~SjGPSIgPr)%L z7mKE_oOu>)0_%~~rl}=h^IYt1t`oV3dnwzyThVXJ87uJ|Pec!MQ?vg}PwyV)u9ctT z=6~Z^+rwNZ=~EuG*O~oq_oC-k4|8~g^hdI2nJIDz>+Y8{n`t*sOiyzilg%?d5kvL` z&M6w`lRi!OCr|CeK72b*fHEJxgV&nxjC8PmUp<xcdt`ZL z#Pc$)M{Uq7=A0Z)$3$~`HI|KG7t&ZB<2nTl8VnbyR+5j8m3htBlDDqZp4 z;B+;xzcKDKPwJa3s2V>%jFs46yZiCh_>s?ULvQXhpcRN9_?j5X1kq0DM|L%-oX+cJ zz2~SpR;`XOw*apWvUZ(V!&Ty#w$$K#B0M7FrMjPrsJ6IP(#9WIrFzNRcHG}#`l<7 z_>`*;isfd})H!*S6*XZxng!LdxR~(48e`+3G?Ol$KN(T#4}RDl7^ zn8abCJtlB#hd9UI*cNFZp4S=e*>Zyv!UERQ4jFGQr#Id25+@a>y3^ z&R#)#<3svBwwu29iTKJ7J*}3T!~FK{Ht7RS*Y!+XZf;WjQe{jGQ)Mo2N?g!_#4KSKq*geC=?nprneLdZ5h*> z3WY?*^tM9b3BpbkNRKQOGFX5fTPQdg)1wQ8zcHrA7YeU4rZ*T0I~mhk424e^)0+&1 zbByV2hQcjiC$*R!X(&_(k}aag8VYq7)1wWA=8VTPjs*@2%F%Y_h-59B((yUVcnznQ zF+R??*Fsv&(Y$RN&yFB2je-6`!n9ico^dYj8hojVmyg)$6!>j zCUh4`{i(qie_|ZpD;dwRz)i+m8F$zx)4ybVmT@JRBb5Ip<9NoF{Zf7oV|mYmwa>UU zr+RVa`bKc(j7f*3f~Zsw`h+YzZRk+FmEB*tq5#`wFy2&;pA;F!!%M7Um#X8TOy zuNh0b6|1DSOqaJ!O>4qf+PT=-7|SO$ENjNv38`-jaJBlHHi_`#_!KiElLgK)&Sq?a z%y|0ZP>S^N3V_;Cd2bx2@BOw;`TyDa1gVXX8~2MVv4QA=$)GaoxLP>wuk;U#1vbJsS}t^ zWD@%(LB9qu#a3eKV5Wnb#6lDG<`=>mDz*|+=QW+*Bvz8Br$bD!m6$rl=~ySR1^x85 zA*R?$Or7p@+LPFe{q$=PQ*0%s4t+8LNGzIpZ2C~W`FCLr6m0Swi4URMpS1ogtn3T+oX-zO6(ZpAJGgFJ2q0k1~J7} zV)TO!g`N12SgTQb^UGlk64zVtAVlLcw71CY0it%Q~w5o$q6}6mcT@qFc@<+yMSD*z+>E%n2);lrOLZ?lKu-a{? zoxvfRmcsTnRr^s%{l3)a_a$`mb{JV$0m|6emigpQq+ zmN7nBWs_*2bYqG3O!qf6^1SSC>OMdWTAIn8V>4@kYh#*(=YS!@)YPn26KABRwwgsvnUgwpHoRXvQ!1L0 z;_AP6_^F<6RM~OKI(}Y_=xarj?-+0OTzqOz(3O2FKJ2`-SM55pHaEJqFz?-(*@+!D zHhcfOo*Sp0t^bzx=e`OXKK$zXN>7twbDT5ri6_?%f92Etb8C#;7H=PU=2rY?rTZ3b zN>BUs-QPE?G^h8NmGf@U-{-#GVz|Tj=$$iuKeT&!&$_c;1qKdyyK1x56XWgO9d+hD z(muA*zE|fT__1w%M$aoF2KWDa!->=0pVIN&UlunRz0)){{D&thc6@2vGc~>|9Juf6 zZ~H`EsJ-iD=Z%D>m*V@3nceevX3vBwt?M57$D&(ZKkXD+@W^vtj|#oFXiBZ5Idx0h z)~??pG5yGu7VWF-=%WR;Sy%J*ZCCdWJbnJmtxa31hIjWgIb=?WYx?x5N0)SORWfy` zf7OMf8(kVR=+eUZvxWw}*81kQGn+e&+xFC^!5^oG6zwXTu;8hu5B@ym*%|9jd=>n&r*ZGBu*bStFLq1DfBDh_CiNK{`|WoBf|n-wZ%Ip8o|b*! z^QN0l92(I(=+T+6Gj4b`$G5Fs+IReoaL31&ihGvBvhtV`R=8IT<+DPgnzQe5Zi_XbJMO-ZzSo~t>gZr1B`=|#xl?S`<~6T8^dxkkol znIvW&q8apeL%P*suKKefnZW#KLn3OW$Q(O4%WJ^=S3@FdrOGr|N+P5Hi+u90hJ;k- zboEC=GUXo)xidqGALMLzW{5u;vU{e)>W_x(mVY#)%6!S5&I_uF{G%ZY7D;xFSXH>u z0job6Qiwkqvd7`c?u?FlxFvBgDf_DL;?T*{Nav*1XQT^)|kXd&#*#MjQP`qLU*C*eKSRRd|;Yq zGHosVXtyc8f@#gVB2%ilOIy#xBGXD!X5r68Cf&bsmVGUH^5(eLJgX0yI-9aQM-H0C znX(F76`O9DAQg7l^r*=k(7tfc5mP&}Ij()7`>5$^DDf3(saRGc=?RU=I3erwW+Ak{~MFdRG9Fs z>35SS?u@CTDbdsGj42$X=~+Q~Npj_+Da?5(@i$DWo0c|lziH<1(>Bd^Qhg3!(&J$@ zhlXWMhIGGt{LA}Jio~}}k?xmWyxcNzpU_%Ep4=~2ePtN0!7d~B%LQ;!Bri+hehIhC zONcwk{qih)H;)65`{f11>Bk>(zw7`X&Gm?r`{f$MpGBP9FP|(ij5Uap`{nUc6oA6W z{W9uDR1R@+zZ{16Q4~z>myiDh??}YS{W1=&n~fkt?w9$ujDg0Abm@LM>F4_`!%3>e zAp^Nz);ePtfhdgJFION=EhG0!+gZaHk2twsMj;*tJjpd^c!800vAo1c zxLBHl7Zrw7F#puqnVCi{vS{)kun`cU%|s#=?chwJHu@5Q783D~`S3Sl&J*9)g|dM8 z7k%W9O1@LO;ghg_f>fks5w+2m2rIdw0Y3cKAHtu+4e)JPE;pd2(BrhRdi;#>kd~E* z1J$C1`4k+%1^D)a`X#=pkNiz>0$a3bZ+;gP|F=n02aD#L!HKQrUk$-6Rj_o4EGmb> zB~oe2<9<|HlwX?4tz08ic7fU@%I@;vH|B{@ z;=}L2Yshz|bzuFzdTz?bxB1H=9s7_BLwK$n6RwVFs=VRMW_{XX#!5VsJ6X2RqTLns zhL`Lt+3t=^pJ2Lx>9b7V^{h>RH`0H%xPN=_xVkZ7$FXSjsFvi^m`P5J{hZdRvf3Ys z>e&d0@B%Mf-)=$e0-0RB48poaG<xFW~y8hUu3+O z=@(3IGA-s^D4Y+0{({0~VmveEGJT%u`%Dip{hp~hMQ$<<;BmJy4P*K!(>_dxGfiW< zgebWru42YorfMQJ$i7EWeHMPNwP{{)}-6(~7*pqm@fyJTrzeoy>G4({)Uh4WdpA zwP~u&Q0+myscCADIl+5PJ)UD{8HZ?vpZ7ICW->LAo`u2eS=d{87N!Z$!gT}80iMnM z&BIK1dKh4?X%Bht4RR99dy~G;zE0l-BEIHL=`eWo^>T;7meN0P=`_!g<>prCZ5fn{ zpnC37E`oH`qo7;_H#1f)f<=s#i{Mel%0-Z_h!m8IAYBzHu#2Em+!=|XTm(;cC8TL> zD#4G$B=3@hm5U(VDJhUI0j1|BN=!}zgz2tHLAeOhos)uc5v02(1?eJ)_R}Slf^re0 z%P0lqBIxKVv2qclODYBBB1o523iRtcRe&z76qJjgyoTO)5tP?ab`f+U1Kn;ZC>O!o zjFpQZU3w`f7r~-|5-S%$dXk|)E`nixnx-BgBNzt`mg!v?M=>TBLMLTNW=0kZWH8QU zyo&KI#`%m-Gd{}rD&y;n?=cP>A}i1|P*yOCagRW(c2NOlJjVhVjNfCtit!1?`HV{$ zA7yL`;vQh!f^pzbS%Cz`QH*H7J|QdcI^!tD&ST6- zX2$o7GZ^1xyozxHi>y#S;|`3EGVaItI^!9P1Bc5BEMpucu~XZ`jAR!02jdLJR~WBi z{3qjl#?`CK3LRzKlJRxMy%`6NkQK;a93?Que+4s=Szs6A491@^Ud8xF#`%mZ)Zhv* zj$nM9ac{!nl*U{7{@R^%J?zH*BQ@d95|AS z*Rx?rPSF_3jS23pl+fU0jpK))-M;T9Le4X*%83&G*6%am<$R9OYv|rOsvp_Nn z+yf@pVfrbCLeJU~uV9?cIFGT;I3-1hOP|Mz^0AaSUs5{odz?-_j)adonehiR=oOU$ zc`%Rwy{1x#U`(&76dq+vud5Ui8Ph8(g(n!7J6|&{cfMxqq~})(e`5wc!%}#iF+Imp z*vXilWhs!~B~_4~XDOUxjAvRAZZW3US_&2FN_l#W94oA8_O$?CTl(DtC3UgY~7Bra<)zt*qNg#Z|htZP~O(t7%Ok< z^Nf|Zb<+@35EE4^k`)}pSh-9sVXQo+HZoQoQ^kbI{a3k6-BB6#Nrln%WdX`%DwT2F z{W5($W92e+h;cTj|H)W+OtlD=`pP(cD6o@Spj@UFv4C=!+R9kDOr2EeAIl2(HINFG z%T!Os%4KQ+<7Nk?{C38Z7@ui?^-mR0E>l&*q(bE~)t<3(nHtAfxlCn(&s za(BZhu@F?T;jE6HWWBej;H4KY#F51CZcwa-sLB`65 z$^_nc`r;7rB?Nd03)UkIAH=OZCf!`8y1EwZL^8P}F7-s}=J1A!O&VL_OWhWfyLE*Q zo^;(DR!{MjoVrCc@QiuZT*tFhH(NX_o;6#ltLudFurBgkML7|Qt@5i|hVrmJ>WO?7 zVv4QA)a65YSfBKyk(gpDF?Aisveos@O_Q-Mo~K^@Tp3^k-43;ww3IBU4V+4o{i~r7E@(Qx`SmWS!%Ai^LRL ziK+XWa(K_qR$}V5r<|-a2Y8yJ4Gk4v$*EhQ^0LmB zauJHJA1+Y$c{{n99w% zXrSjBmT^PHS8_)O%1NjEtdFvs;ww4&xt79@_)y=S9Vk4g62MIC7 zR$^;dOgUPw86=#*6PU zn@R*FyTlulT|)B8E+Mm_iI3Sp*xPIXzVB&Gb^{4`+YN-h%?85C)0)f%!ro>BVQ;g6 zu(#Pj*xPJqQVR#8x7|Pj-gX0FZ?l20x7k40+iVc&USewvw^U;*+AIaY#2!lZ@WP#I4lQx56lF@-ev<~Z?l20x7k3r z+-&f?@)CY#BJ03=s*rWyjeqvRWE^;>lX2jU$vE)Fz8= z%jVfmwc=>$kSnuVGqipQtA(q4q19SZuFz^J(!N0QYCjOJ(3qaXNHM}gT%qZIjmq#} z^o6dXM=QG}fMJR^b7cW9=`#(E8TW z@c*@r(1q1Endki{JfRC~ZZQW}GsXPBbcJqEamg+kBDu(^{L4C%)Bp_ z23%}eVC}R2&~MSjX}>J~`A+7$p2nG9cUkXE~{#>YM7e6j3;XZ<3Zbc25E$cZr{>L#69@VsTvt7Ug**=}!G^2fDd9Vc#!-aPJu zy9b@)Qol;;x`H|$jP)bn>gzZ@MswC3DyGf&9Qh)W1qxk!uq`NZm? z1q<0iHzP|&9C@YNw&P3uR-dUC{zu98 z_BL%|b6SLc?djOO@4f4x*}H0eyEOc_iWB=6TzRaY{luN*>DJWjUpoD1aV)C!s^9N> zMt9lTpm+79SI++Ms{b;h|H*w9honSB^qHS#`(azR8CR=JT9oOmpZd2!GgJLre|GA0 TV$kA@TnJ^Z;0J diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/Resources/InfoPlist.strings b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/Resources/InfoPlist.strings similarity index 100% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/Resources/InfoPlist.strings rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/Resources/InfoPlist.strings diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/_CodeSignature/CodeResources b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/_CodeSignature/CodeResources similarity index 100% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebView.bundle/Contents/_CodeSignature/CodeResources rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/ImmutableWebView.bundle/Contents/_CodeSignature/CodeResources diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs index 453f236b..20c115bf 100644 --- a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs +++ b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs @@ -94,38 +94,38 @@ public void call(String message) { #if UNITY_IPHONE && !UNITY_EDITOR [DllImport("__Internal")] - private static extern IntPtr _CWebViewPlugin_Init(string ua); + private static extern IntPtr _CImmutableWebViewPlugin_Init(string ua); [DllImport("__Internal")] - private static extern int _CWebViewPlugin_Destroy(IntPtr instance); + private static extern int _CImmutableWebViewPlugin_Destroy(IntPtr instance); [DllImport("__Internal")] - private static extern void _CWebViewPlugin_LoadURL( + private static extern void _CImmutableWebViewPlugin_LoadURL( IntPtr instance, string url); [DllImport("__Internal")] - private static extern void _CWebViewPlugin_EvaluateJS( + private static extern void _CImmutableWebViewPlugin_EvaluateJS( IntPtr instance, string url); [DllImport("__Internal")] - private static extern void _CWebViewPlugin_LaunchAuthURL(IntPtr instance, string url); + private static extern void _CImmutableWebViewPlugin_LaunchAuthURL(IntPtr instance, string url); [DllImport("__Internal")] - private static extern void _CWebViewPlugin_SetDelegate(DelegateMessage callback); + private static extern void _CImmutableWebViewPlugin_SetDelegate(DelegateMessage callback); [DllImport("__Internal")] - private static extern void _CWebViewPlugin_ClearCache(IntPtr instance, bool includeDiskFiles); + private static extern void _CImmutableWebViewPlugin_ClearCache(IntPtr instance, bool includeDiskFiles); [DllImport("__Internal")] - private static extern void _CWebViewPlugin_ClearStorage(IntPtr instance); + private static extern void _CImmutableWebViewPlugin_ClearStorage(IntPtr instance); #elif UNITY_STANDALONE_OSX || (UNITY_ANDROID && UNITY_EDITOR_OSX) || (UNITY_IPHONE && UNITY_EDITOR_OSX) - [DllImport("WebView")] - private static extern IntPtr _CWebViewPlugin_Init(string ua); - [DllImport("WebView")] - private static extern int _CWebViewPlugin_Destroy(IntPtr instance); - [DllImport("WebView")] - private static extern void _CWebViewPlugin_LoadURL( + [DllImport("ImmutableWebView")] + private static extern IntPtr _CImmutableWebViewPlugin_Init(string ua); + [DllImport("ImmutableWebView")] + private static extern int _CImmutableWebViewPlugin_Destroy(IntPtr instance); + [DllImport("ImmutableWebView")] + private static extern void _CImmutableWebViewPlugin_LoadURL( IntPtr instance, string url); - [DllImport("WebView")] - private static extern void _CWebViewPlugin_EvaluateJS( + [DllImport("ImmutableWebView")] + private static extern void _CImmutableWebViewPlugin_EvaluateJS( IntPtr instance, string url); - [DllImport("WebView")] - private static extern void _CWebViewPlugin_LaunchAuthURL(IntPtr instance, string url, string redirectUri); - [DllImport("WebView")] - private static extern void _CWebViewPlugin_SetDelegate(DelegateMessage callback); + [DllImport("ImmutableWebView")] + private static extern void _CImmutableWebViewPlugin_LaunchAuthURL(IntPtr instance, string url, string redirectUri); + [DllImport("ImmutableWebView")] + private static extern void _CImmutableWebViewPlugin_SetDelegate(DelegateMessage callback); #elif UNITY_WEBGL [DllImport("__Internal")] private static extern void _gree_unity_webview_init(); @@ -238,13 +238,13 @@ public void Init( //TODO: UNSUPPORTED PassportLogger.Error("Webview is not supported on this platform."); #elif UNITY_IPHONE || UNITY_STANDALONE_OSX || (UNITY_ANDROID && UNITY_EDITOR_OSX) - webView = _CWebViewPlugin_Init(ua); + webView = _CImmutableWebViewPlugin_Init(ua); Singleton.Instance.onJS = ((message) => CallFromJS(message)); Singleton.Instance.onError = ((id, message) => CallOnError(id, message)); Singleton.Instance.onHttpError = ((id, message) => CallOnHttpError(id, message)); Singleton.Instance.onAuth = ((message) => CallOnAuth(message)); Singleton.Instance.onLog = ((message) => CallOnLog(message)); - _CWebViewPlugin_SetDelegate(delegateMessageReceived); + _CImmutableWebViewPlugin_SetDelegate(delegateMessageReceived); #elif UNITY_ANDROID webView = new AndroidJavaObject("net.gree.unitywebview.CWebViewPluginNoUi"); webView.Call("Init", ua); @@ -269,7 +269,7 @@ public void LoadURL(string url) #elif UNITY_STANDALONE_OSX || UNITY_IPHONE || (UNITY_ANDROID && UNITY_EDITOR_OSX) if (webView == IntPtr.Zero) return; - _CWebViewPlugin_LoadURL(webView, url); + _CImmutableWebViewPlugin_LoadURL(webView, url); #elif UNITY_ANDROID if (webView == null) return; @@ -290,7 +290,7 @@ public void EvaluateJS(string js) #elif UNITY_STANDALONE_OSX || UNITY_IPHONE || (UNITY_ANDROID && UNITY_EDITOR_OSX) if (webView == IntPtr.Zero) return; - _CWebViewPlugin_EvaluateJS(webView, js); + _CImmutableWebViewPlugin_EvaluateJS(webView, js); #elif UNITY_ANDROID if (webView == null) return; @@ -303,11 +303,11 @@ public void LaunchAuthURL(string url, string redirectUri) #if UNITY_STANDALONE_OSX || (UNITY_ANDROID && UNITY_EDITOR_OSX) || (UNITY_IPHONE && UNITY_EDITOR_OSX) if (webView == IntPtr.Zero) return; - _CWebViewPlugin_LaunchAuthURL(webView, url, redirectUri != null ? redirectUri : ""); + _CImmutableWebViewPlugin_LaunchAuthURL(webView, url, redirectUri != null ? redirectUri : ""); #elif UNITY_IPHONE && !UNITY_EDITOR_WIN if (webView == IntPtr.Zero) return; - _CWebViewPlugin_LaunchAuthURL(webView, url); + _CImmutableWebViewPlugin_LaunchAuthURL(webView, url); #else UnityEngine.Application.OpenURL(url); #endif @@ -365,7 +365,7 @@ public void ClearCache(bool includeDiskFiles) #if UNITY_IPHONE && !UNITY_EDITOR if (webView == IntPtr.Zero) return; - _CWebViewPlugin_ClearCache(webView, includeDiskFiles); + _CImmutableWebViewPlugin_ClearCache(webView, includeDiskFiles); #elif UNITY_ANDROID && !UNITY_EDITOR if (webView == null) return; @@ -380,7 +380,7 @@ public void ClearStorage() #if UNITY_IPHONE && !UNITY_EDITOR if (webView == IntPtr.Zero) return; - _CWebViewPlugin_ClearStorage(webView); + _CImmutableWebViewPlugin_ClearStorage(webView); #elif UNITY_ANDROID && !UNITY_EDITOR if (webView == null) return; diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs.meta b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs.meta index 32948634..32bdcb48 100644 --- a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs.meta +++ b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/WebViewObject.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d4d2b188f50df4b299eb714ef4360ee9 +guid: 43078641b40584a8e94b32e5367fb0de MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/WebView.mm b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/ImmutableWebView.mm similarity index 86% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/WebView.mm rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/ImmutableWebView.mm index 5e90df3f..df22cde1 100644 --- a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/WebView.mm +++ b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/ImmutableWebView.mm @@ -31,7 +31,7 @@ DelegateCallbackFunction delegateCallback = NULL; // cf. https://stackoverflow.com/questions/26383031/wkwebview-causes-my-view-controller-to-leak/33365424#33365424 -@interface WeakScriptMessageDelegate : NSObject +@interface ImmutableWeakScriptMessageDelegate : NSObject @property (nonatomic, weak) id scriptDelegate; @@ -39,7 +39,7 @@ - (instancetype)initWithDelegate:(id)scriptDelegate; @end -@implementation WeakScriptMessageDelegate +@implementation ImmutableWeakScriptMessageDelegate - (instancetype)initWithDelegate:(id)scriptDelegate { @@ -87,17 +87,17 @@ - (void)load:(NSURLRequest *)request } @end -@interface CWebViewPlugin : NSObject +@interface CImmutableWebViewPlugin : NSObject { WKWebView *webView; } @end -@implementation CWebViewPlugin +@implementation CImmutableWebViewPlugin static WKProcessPool *_sharedProcessPool; static NSMutableArray *_instances = [[NSMutableArray alloc] init]; -static CWebViewPlugin *__delegate = nil; +static CImmutableWebViewPlugin *__delegate = nil; static ASWebAuthenticationSession *_authSession; - (id)initWithUa:(const char *)ua @@ -110,9 +110,9 @@ - (id)initWithUa:(const char *)ua WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; WKUserContentController *controller = [[WKUserContentController alloc] init]; - [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"unityControl"]; - [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"saveDataURL"]; - [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"logHandler"]; + [controller addScriptMessageHandler:[[ImmutableWeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"unityControl"]; + [controller addScriptMessageHandler:[[ImmutableWeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"saveDataURL"]; + [controller addScriptMessageHandler:[[ImmutableWeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"logHandler"]; NSString *str = @"\ window.Unity = { \ call: function(msg) { \ @@ -185,7 +185,7 @@ + (void)resetSharedProcessPool { // cf. https://stackoverflow.com/questions/33156567/getting-all-cookies-from-wkwebview/49744695#49744695 _sharedProcessPool = [[WKProcessPool alloc] init]; - [_instances enumerateObjectsUsingBlock:^(CWebViewPlugin *obj, NSUInteger idx, BOOL *stop) { + [_instances enumerateObjectsUsingBlock:^(CImmutableWebViewPlugin *obj, NSUInteger idx, BOOL *stop) { if ([obj->webView isKindOfClass:[WKWebView class]]) { WKWebView *webView = (WKWebView *)obj->webView; webView.configuration.processPool = _sharedProcessPool; @@ -401,73 +401,73 @@ - (void)clearStorage @end extern "C" { - void *_CWebViewPlugin_Init(const char *ua); - void _CWebViewPlugin_Destroy(void *instance); - void _CWebViewPlugin_LoadURL(void *instance, const char *url); - void _CWebViewPlugin_EvaluateJS(void *instance, const char *url); - void _CWebViewPlugin_SetDelegate(DelegateCallbackFunction callback); - void _CWebViewPlugin_LaunchAuthURL(void *instance, const char *url); - void _CWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles); - void _CWebViewPlugin_ClearStorage(void *instance); + void *_CImmutableWebViewPlugin_Init(const char *ua); + void _CImmutableWebViewPlugin_Destroy(void *instance); + void _CImmutableWebViewPlugin_LoadURL(void *instance, const char *url); + void _CImmutableWebViewPlugin_EvaluateJS(void *instance, const char *url); + void _CImmutableWebViewPlugin_SetDelegate(DelegateCallbackFunction callback); + void _CImmutableWebViewPlugin_LaunchAuthURL(void *instance, const char *url); + void _CImmutableWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles); + void _CImmutableWebViewPlugin_ClearStorage(void *instance); } -void _CWebViewPlugin_SetDelegate(DelegateCallbackFunction callback) { +void _CImmutableWebViewPlugin_SetDelegate(DelegateCallbackFunction callback) { delegateCallback = callback; } -void *_CWebViewPlugin_Init(const char *ua) +void *_CImmutableWebViewPlugin_Init(const char *ua) { - CWebViewPlugin *webViewPlugin = [[CWebViewPlugin alloc] initWithUa:ua]; + CImmutableWebViewPlugin *webViewPlugin = [[CImmutableWebViewPlugin alloc] initWithUa:ua]; [_instances addObject:webViewPlugin]; return (__bridge_retained void *)webViewPlugin; } -void _CWebViewPlugin_Destroy(void *instance) +void _CImmutableWebViewPlugin_Destroy(void *instance) { if (instance == NULL) return; - CWebViewPlugin *webViewPlugin = (__bridge_transfer CWebViewPlugin *)instance; + CImmutableWebViewPlugin *webViewPlugin = (__bridge_transfer CImmutableWebViewPlugin *)instance; [_instances removeObject:webViewPlugin]; [webViewPlugin dispose]; webViewPlugin = nil; } -void _CWebViewPlugin_LoadURL(void *instance, const char *url) +void _CImmutableWebViewPlugin_LoadURL(void *instance, const char *url) { if (instance == NULL) return; - CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + CImmutableWebViewPlugin *webViewPlugin = (__bridge CImmutableWebViewPlugin *)instance; [webViewPlugin loadURL:url]; } -void _CWebViewPlugin_EvaluateJS(void *instance, const char *js) +void _CImmutableWebViewPlugin_EvaluateJS(void *instance, const char *js) { if (instance == NULL) return; - CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + CImmutableWebViewPlugin *webViewPlugin = (__bridge CImmutableWebViewPlugin *)instance; [webViewPlugin evaluateJS:js]; } -void _CWebViewPlugin_LaunchAuthURL(void *instance, const char *url) +void _CImmutableWebViewPlugin_LaunchAuthURL(void *instance, const char *url) { if (instance == NULL) return; - CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + CImmutableWebViewPlugin *webViewPlugin = (__bridge CImmutableWebViewPlugin *)instance; [webViewPlugin launchAuthURL:url]; } -void _CWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles) +void _CImmutableWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles) { if (instance == NULL) return; - CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + CImmutableWebViewPlugin *webViewPlugin = (__bridge CImmutableWebViewPlugin *)instance; [webViewPlugin clearCache:includeDiskFiles]; } -void _CWebViewPlugin_ClearStorage(void *instance) +void _CImmutableWebViewPlugin_ClearStorage(void *instance) { if (instance == NULL) return; - CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + CImmutableWebViewPlugin *webViewPlugin = (__bridge CImmutableWebViewPlugin *)instance; [webViewPlugin clearStorage]; } \ No newline at end of file diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/WebView.mm.meta b/src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/ImmutableWebView.mm.meta similarity index 100% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/WebView.mm.meta rename to src/Packages/Passport/Runtime/ThirdParty/Gree/Assets/Plugins/iOS/ImmutableWebView.mm.meta diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/unity-webview.asmdef b/src/Packages/Passport/Runtime/ThirdParty/Gree/ImmutableWebView.asmdef similarity index 84% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/unity-webview.asmdef rename to src/Packages/Passport/Runtime/ThirdParty/Gree/ImmutableWebView.asmdef index cc46948b..fa0dcb48 100644 --- a/src/Packages/Passport/Runtime/ThirdParty/Gree/unity-webview.asmdef +++ b/src/Packages/Passport/Runtime/ThirdParty/Gree/ImmutableWebView.asmdef @@ -1,6 +1,6 @@ { - "name": "unity-webview", - "rootNamespace": "", + "name": "Immutable.Browser.Gree", + "rootNamespace": "Immutable.Browser.Gree", "references": [ "GUID:95d173a3e67b39d40803000ed05b79f4", "GUID:a0996310e1aa34b7fbf14df5d255461d" diff --git a/src/Packages/Passport/Runtime/ThirdParty/Gree/unity-webview.asmdef.meta b/src/Packages/Passport/Runtime/ThirdParty/Gree/ImmutableWebView.asmdef.meta similarity index 100% rename from src/Packages/Passport/Runtime/ThirdParty/Gree/unity-webview.asmdef.meta rename to src/Packages/Passport/Runtime/ThirdParty/Gree/ImmutableWebView.asmdef.meta From 537757b7ea102d8c5cc812ac0b1b11205eae87d1 Mon Sep 17 00:00:00 2001 From: Create or Update Pull Request Action Date: Fri, 20 Sep 2024 01:42:37 +0000 Subject: [PATCH 4/9] chore: update version --- .../Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs | 2 +- src/Packages/Passport/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs index 7ec3a5f2..bf9a45e7 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs @@ -4,7 +4,7 @@ public class SdkVersionInfoHelpers { public static string GetSdkVersionInfo() { - return "1.25.2"; + return "1.25.3"; } } } diff --git a/src/Packages/Passport/package.json b/src/Packages/Passport/package.json index 70587a88..9fd9849a 100644 --- a/src/Packages/Passport/package.json +++ b/src/Packages/Passport/package.json @@ -1,6 +1,6 @@ { "name": "com.immutable.passport", - "version": "1.25.2", + "version": "1.25.3", "description": "The Immutable SDK for Unity helps you integrate your game with Immutable Passport.", "displayName": "Immutable Passport", "author": { From 1d65a5dd7e6bbf26b61997e08a50841e1c65aaf2 Mon Sep 17 00:00:00 2001 From: CodeSchwert Date: Tue, 24 Sep 2024 08:26:44 +0000 Subject: [PATCH 5/9] chore: update game bridge to 1.53.2 --- .../Passport/Runtime/Resources/index.html | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Packages/Passport/Runtime/Resources/index.html b/src/Packages/Passport/Runtime/Resources/index.html index 7137f90e..fc8b5389 100644 --- a/src/Packages/Passport/Runtime/Resources/index.html +++ b/src/Packages/Passport/Runtime/Resources/index.html @@ -1,4 +1,4 @@ -GameSDK Bridge

Bridge Running

\ No newline at end of file +)[]`,e4=(e,t)=>{let r=[],i=new f.ethers.utils.Interface(d.walletContracts.mainModule.abi);for(let n of t){let t=(0,f.ethers).utils.arrayify(n.data||"0x");if(n.to===e&&(0,f.ethers).utils.hexlify(t.slice(0,4))===e5){let e=t.slice(4),i=(0,f.ethers).utils.defaultAbiCoder.decode([e8],e)[0];r.push(...e4(n.to,i.map(e=>c({},e,{to:e.target}))))}else try{let n=i.decodeFunctionData("execute",t)[0],a=e4(e,n.map(e=>c({},e,{to:e.target})));r.push(...a)}catch(e){r.push(n)}}return r};var e7=Object.freeze({__proto__:null,MetaTransactionsType:eZ,intendTransactionBundle:function(e,t,r,i){return c({},e,{chainId:r,intent:{id:i,wallet:t}})},intendedTransactionID:function(e){return(0,f.ethers).utils.keccak256((0,f.ethers).utils.defaultAbiCoder.encode(["address","uint256","bytes32"],[e.intent.wallet,e.chainId,e.intent.id]))},unpackMetaTransactionsData:function(e){let t=(0,f.ethers).utils.defaultAbiCoder.decode(["uint256",eZ],e);if(2!==t.length||!t[0]||!t[1])throw Error("Invalid meta transaction data");return[t[0],t[1]]},packMetaTransactionsData:eX,digestOfTransactions:e$,subdigestOfTransactions:function(e,t,r,i){return l({address:e,chainId:t,digest:e$(r,i)})},subdigestOfGuestModuleTransactions:function(e,t,r){return l({address:e,chainId:t,digest:(0,f.ethers).utils.keccak256((0,f.ethers).utils.defaultAbiCoder.encode(["string",eZ],["guest:",e2(r)]))})},toSequenceTransactions:eY,toSequenceTransaction:eQ,isSequenceTransaction:e0,hasSequenceTransactions:e1,sequenceTxAbiEncode:e2,fromTxAbiEncode:function(e){return e.map(e=>({delegateCall:e.delegateCall,revertOnError:e.revertOnError,gasLimit:e.gasLimit,to:e.target,value:e.value,data:e.data}))},encodeNonce:function(e,t){let r=(0,f.ethers).BigNumber.from(e),i=(0,f.ethers).BigNumber.from(t),n=(0,f.ethers).constants.Two.pow((0,f.ethers).BigNumber.from(96));if(!i.div(n).eq(f.ethers.constants.Zero))throw Error("Space already encoded");return i.add(r.mul(n))},decodeNonce:function(e){let t=(0,f.ethers).BigNumber.from(e),r=(0,f.ethers).constants.Two.pow((0,f.ethers).BigNumber.from(96));return[t.div(r),t.mod(r)]},fromTransactionish:function(e,t){if(Array.isArray(t)){if(e1(t))return t;{let r=eY(e,t);return r.map(e=>e.transaction)}}return e0(t)?[t]:[eQ(e,t).transaction]},isTransactionBundle:e6,isSignedTransactionBundle:e3,encodeBundleExecData:function(e){let t=new f.ethers.utils.Interface(d.walletContracts.mainModule.abi);return t.encodeFunctionData(t.getFunction("execute"),e3(e)?[e2(e.transactions),e.nonce,e.signature]:[e2(e.transactions),0,[]])},selfExecuteSelector:e5,selfExecuteAbi:e8,unwind:e4});let e9="0x608060405234801561001057600080fd5b5060405161124a38038061124a83398101604081905261002f91610124565b600060405161003d906100dd565b604051809103906000f080158015610059573d6000803e3d6000fd5b5090506000816001600160a01b0316638f0684308686866040518463ffffffff1660e01b815260040161008e939291906101fb565b6020604051808303816000875af11580156100ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d19190610244565b9050806000526001601ff35b610fdc8061026e83390190565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561011b578181015183820152602001610103565b50506000910152565b60008060006060848603121561013957600080fd5b83516001600160a01b038116811461015057600080fd5b6020850151604086015191945092506001600160401b038082111561017457600080fd5b818601915086601f83011261018857600080fd5b81518181111561019a5761019a6100ea565b604051601f8201601f19908116603f011681019083821181831017156101c2576101c26100ea565b816040528281528960208487010111156101db57600080fd5b6101ec836020830160208801610100565b80955050505050509250925092565b60018060a01b0384168152826020820152606060408201526000825180606084015261022e816080850160208701610100565b601f01601f191691909101608001949350505050565b60006020828403121561025657600080fd5b8151801515811461026657600080fd5b939250505056fe608060405234801561001057600080fd5b50610fbc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806376be4cea1161005057806376be4cea146100a65780638f068430146100b957806398ef1ed8146100cc57600080fd5b80631c6453271461006c5780633d787b6314610093575b600080fd5b61007f61007a366004610ad4565b6100df565b604051901515815260200160405180910390f35b61007f6100a1366004610ad4565b61023d565b61007f6100b4366004610b3e565b61031e565b61007f6100c7366004610ad4565b6108e1565b61007f6100da366004610ad4565b61096e565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea9061012890889088908890889088908190600401610bc3565b6020604051808303816000875af1925050508015610181575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261017e91810190610c45565b60015b610232573d8080156101af576040519150601f19603f3d011682016040523d82523d6000602084013e6101b4565b606091505b508051600181900361022757816000815181106101d3576101d3610c69565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f0100000000000000000000000000000000000000000000000000000000000000149250610235915050565b600092505050610235565b90505b949350505050565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea906102879088908890889088906001908990600401610bc3565b6020604051808303816000875af19250505080156102e0575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526102dd91810190610c45565b60015b610232573d80801561030e576040519150601f19603f3d011682016040523d82523d6000602084013e610313565b606091505b506000915050610235565b600073ffffffffffffffffffffffffffffffffffffffff87163b6060827f64926492649264926492649264926492649264926492649264926492649264928888610369602082610c98565b610375928b9290610cd8565b61037e91610d02565b1490508015610484576000606089828a610399602082610c98565b926103a693929190610cd8565b8101906103b39190610e18565b955090925090508415806103c45750865b1561047d576000808373ffffffffffffffffffffffffffffffffffffffff16836040516103f19190610eb2565b6000604051808303816000865af19150503d806000811461042e576040519150601f19603f3d011682016040523d82523d6000602084013e610433565b606091505b50915091508161047a57806040517f9d0d6e2d0000000000000000000000000000000000000000000000000000000081526004016104719190610f18565b60405180910390fd5b50505b50506104be565b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294505050505b80806104ca5750600083115b156106bb576040517f1626ba7e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b1690631626ba7e90610523908c908690600401610f2b565b602060405180830381865afa92505050801561057a575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261057791810190610f44565b60015b61060f573d8080156105a8576040519150601f19603f3d011682016040523d82523d6000602084013e6105ad565b606091505b50851580156105bc5750600084115b156105db576105d08b8b8b8b8b600161031e565b9450505050506108d7565b806040517f6f2a95990000000000000000000000000000000000000000000000000000000081526004016104719190610f18565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f1626ba7e000000000000000000000000000000000000000000000000000000001480158161065f575086155b801561066b5750600085115b1561068b5761067f8c8c8c8c8c600161031e565b955050505050506108d7565b841580156106965750825b80156106a0575087155b156106af57806000526001601ffd5b94506108d79350505050565b6041871461074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5369676e617475726556616c696461746f72237265636f7665725369676e657260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610471565b600061075a6020828a8c610cd8565b61076391610d02565b90506000610775604060208b8d610cd8565b61077e91610d02565b905060008a8a604081811061079557610795610c69565b919091013560f81c915050601b81148015906107b557508060ff16601c14155b15610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f5369676e617475726556616c696461746f723a20696e76616c6964207369676e60448201527f617475726520762076616c7565000000000000000000000000000000000000006064820152608401610471565b6040805160008152602081018083528e905260ff831691810191909152606081018490526080810183905273ffffffffffffffffffffffffffffffffffffffff8e169060019060a0016020604051602081039080840390855afa1580156108ad573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff161496505050505050505b9695505050505050565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea9061092b9088908890889088906001908990600401610bc3565b6020604051808303816000875af115801561094a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102329190610c45565b6040517f76be4cea00000000000000000000000000000000000000000000000000000000815260009030906376be4cea906109b790889088908890889088908190600401610bc3565b6020604051808303816000875af1925050508015610a10575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a0d91810190610c45565b60015b610232573d808015610a3e576040519150601f19603f3d011682016040523d82523d6000602084013e610a43565b606091505b5080516001819003610a6257816000815181106101d3576101d3610c69565b8082fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a8857600080fd5b50565b60008083601f840112610a9d57600080fd5b50813567ffffffffffffffff811115610ab557600080fd5b602083019150836020828501011115610acd57600080fd5b9250929050565b60008060008060608587031215610aea57600080fd5b8435610af581610a66565b935060208501359250604085013567ffffffffffffffff811115610b1857600080fd5b610b2487828801610a8b565b95989497509550505050565b8015158114610a8857600080fd5b60008060008060008060a08789031215610b5757600080fd5b8635610b6281610a66565b955060208701359450604087013567ffffffffffffffff811115610b8557600080fd5b610b9189828a01610a8b565b9095509350506060870135610ba581610b30565b91506080870135610bb581610b30565b809150509295509295509295565b73ffffffffffffffffffffffffffffffffffffffff8716815285602082015260a060408201528360a0820152838560c0830137600060c085830181019190915292151560608201529015156080820152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019392505050565b600060208284031215610c5757600080fd5b8151610c6281610b30565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b81810381811115610cd2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b60008085851115610ce857600080fd5b83861115610cf557600080fd5b5050820193919092039150565b80356020831015610cd2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610d7e57600080fd5b813567ffffffffffffffff80821115610d9957610d99610d3e565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610ddf57610ddf610d3e565b81604052838152866020858801011115610df857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610e2d57600080fd5b8335610e3881610a66565b9250602084013567ffffffffffffffff80821115610e5557600080fd5b610e6187838801610d6d565b93506040860135915080821115610e7757600080fd5b50610e8486828701610d6d565b9150509250925092565b60005b83811015610ea9578181015183820152602001610e91565b50506000910152565b60008251610ec4818460208701610e8e565b9190910192915050565b60008151808452610ee6816020860160208601610e8e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610c626020830184610ece565b8281526040602082015260006102356040830184610ece565b600060208284031215610f5657600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c6257600080fdfea26469706673582212201a72aed4b15ffb05b6502997a9bb655992e06590bd26b336dfbb153d7ff6f34b64736f6c63430008120033";async function te(e,t,r,i){return"0x01"===await e.call({data:(0,f.ethers).utils.concat([e9,new(0,f.ethers).utils.AbiCoder().encode(["address","bytes32","bytes"],[t,r,i])])})}var tt=Object.freeze({__proto__:null,EIP_6492_OFFCHAIN_DEPLOY_CODE:e9,EIP_6492_SUFFIX:"0x6492649264926492649264926492649264926492649264926492649264926492",validateEIP6492Offchain:te}),tr=Object.freeze({__proto__:null,config:u,signature:p,context:eJ,signer:_,EIP1271:g,transaction:e7,reader:Object.freeze({__proto__:null,OnChainReader:class{constructor(e){this.isDeployedCache=new Set,this.provider=e}module(e){return new f.ethers.Contract(e,[...d.walletContracts.mainModuleUpgradable.abi,...d.walletContracts.mainModule.abi,...d.walletContracts.erc1271.abi],this.provider)}async isDeployed(e){if(this.isDeployedCache.has(e))return!0;let t=await this.provider.getCode(e).then(e=>(0,f.ethers).utils.arrayify(e)),r=0!==t.length;return r&&this.isDeployedCache.add(e),r}async implementation(e){let t=(0,f.ethers).utils.defaultAbiCoder.encode(["address"],[e]),r=await this.provider.getStorageAt(e,t).then(e=>(0,f.ethers).utils.arrayify(e));return 20===r.length?(0,f.ethers).utils.getAddress((0,f.ethers).utils.hexlify(r)):32===r.length?(0,f.ethers).utils.defaultAbiCoder.decode(["address"],r)[0]:void 0}async imageHash(e){try{let t=await this.module(e).imageHash();return t}catch(e){}}async nonce(e,t=0){try{let r=await this.module(e).readNonce(t);return r}catch(t){if(!await this.isDeployed(e))return 0;throw t}}async isValidSignature(e,t,r){return te(this.provider,e,t,r)}}}),EIP6492:tt,isWalletSignRequestMetadata:function(e){return e&&e.address&&e.digest&&void 0!==e.chainId&&e.config}});let ti=[{config:P,signature:T},{config:eq,signature:em}];function tn(e){let t=e-1;if(t<0||t>=ti.length)throw Error(`No coder for version: ${e}`);return ti[t]}var ta=Object.freeze({__proto__:null,ALL_CODERS:ti,coderFor:tn,genericCoderFor:function(e){return tn(e)}});let ts=[j,eV]},{ethers:"8wpcu","@0xsequence/abi":"NeOck","@parcel/transformer-js/src/esmodule-helpers.js":"cI3Jn"}]},["8Vdv4"],"8Vdv4","parcelRequire59a4");

Bridge Running

\ No newline at end of file From 4972b10360a5138dddbd010868adbc47f1178e7a Mon Sep 17 00:00:00 2001 From: Natalie Bunduwongse Date: Wed, 25 Sep 2024 10:27:44 +1200 Subject: [PATCH 6/9] fix: sample app init passport using device code auth --- sample/Assets/Scripts/SelectAuthMethodScript.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/Assets/Scripts/SelectAuthMethodScript.cs b/sample/Assets/Scripts/SelectAuthMethodScript.cs index 1df74e95..ce2b0a80 100644 --- a/sample/Assets/Scripts/SelectAuthMethodScript.cs +++ b/sample/Assets/Scripts/SelectAuthMethodScript.cs @@ -22,7 +22,7 @@ void Start() // If PKCE is not supported, initialise Passport to use Device Code Auth if (!SampleAppManager.SupportsPKCE) { - InitialisePassport(); + InitialisePassport(logoutRedirectUri: "https://www.immutable.com"); } } From 1e22845b7ce5ace16d4610cddee32af72ea5ce18 Mon Sep 17 00:00:00 2001 From: Create or Update Pull Request Action Date: Tue, 24 Sep 2024 22:29:04 +0000 Subject: [PATCH 7/9] chore: update version --- .../Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs | 2 +- src/Packages/Passport/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs index bf9a45e7..c7ebe5f1 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs @@ -4,7 +4,7 @@ public class SdkVersionInfoHelpers { public static string GetSdkVersionInfo() { - return "1.25.3"; + return "1.26.0"; } } } diff --git a/src/Packages/Passport/package.json b/src/Packages/Passport/package.json index 9fd9849a..cbdac990 100644 --- a/src/Packages/Passport/package.json +++ b/src/Packages/Passport/package.json @@ -1,6 +1,6 @@ { "name": "com.immutable.passport", - "version": "1.25.3", + "version": "1.26.0", "description": "The Immutable SDK for Unity helps you integrate your game with Immutable Passport.", "displayName": "Immutable Passport", "author": { From 5aa32a760fe16157bc5959c0912a5a5fec71efbd Mon Sep 17 00:00:00 2001 From: Natalie Bunduwongse Date: Thu, 26 Sep 2024 13:48:05 +1200 Subject: [PATCH 8/9] ci: update version based on upgrade type --- .github/workflows/update-version.yml | 57 +++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index e5e932a0..971bb175 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -1,12 +1,21 @@ --- -name: "Update version in package.json" +name: "Update SDK version" on: workflow_dispatch: inputs: - version: - description: 'Version to update to (e.g. 1.20.0)' + upgrade_type: + type: choice + description: Upgrade Type + options: + - patch + - minor + # - major required: true + default: patch + +env: + UPGRADE_TYPE: ${{ github.event.inputs.upgrade_type || 'patch' }} jobs: update: @@ -37,19 +46,47 @@ jobs: - name: Install jq run: sudo apt-get install -y jq - - name: Replace version string + - name: Update Version in package.json id: replace_version run: | FILE=./src/Packages/Passport/package.json - VERSION=${{ github.event.inputs.version }} - jq --arg version "$VERSION" '.version = $version' $FILE > tmp.$$.json && mv tmp.$$.json $FILE + + CURRENT_VERSION=$(jq -r '.version' $FILE) + IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION" + + # Increment version based on UPGRADE_TYPE + case "$UPGRADE_TYPE" in + major) + MAJOR=$((MAJOR + 1)) + MINOR=0 + PATCH=0 + ;; + minor) + MINOR=$((MINOR + 1)) + PATCH=0 + ;; + patch) + PATCH=$((PATCH + 1)) + ;; + *) + echo "Invalid upgrade type: $UPGRADE_TYPE" + exit 1 + ;; + esac + + NEW_VERSION="$MAJOR.$MINOR.$PATCH" + jq --arg version "$NEW_VERSION" '.version = $version' $FILE > tmp.$$.json && mv tmp.$$.json $FILE + echo "Updated version in package.json from $CURRENT_VERSION to $NEW_VERSION" + + echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT" - - name: Replace engine sdk version string + - name: Update SDK Version in SdkVersionInfoHelpers.cs id: replace_engine_sdk_version run: | FILE=./src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs - VERSION=${{ github.event.inputs.version }} - sed -i -E "s/[0-9]+\.[0-9]+\.[0-9]+/$VERSION/g" $FILE + NEW_VERSION="${{ steps.replace_version.outputs.version }}" + sed -i -E "s/[0-9]+\.[0-9]+\.[0-9]+/$NEW_VERSION/g" $FILE + echo "Updated SDK version in SdkVersionInfoHelpers.cs to $NEW_VERSION" - uses: gr2m/create-or-update-pull-request-action@v1 env: @@ -57,6 +94,6 @@ jobs: with: title: "chore: update version" body: "Update version in package.json" - branch: "chore/update-version-${{ github.event.inputs.version }}" + branch: "chore/update-version-${{ steps.replace_version.outputs.version }}" commit-message: "chore: update version" labels: release From b64f81729fe1fb7272cf2e80ee0d8e508933868c Mon Sep 17 00:00:00 2001 From: Natalie Bunduwongse Date: Fri, 27 Sep 2024 14:10:22 +1200 Subject: [PATCH 9/9] fix: remove unnecessary meta file --- .../Engine/swiftshader.meta | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 src/Packages/Passport/Runtime/ThirdParty/UnityWebBrowser.Engine.Cef.Win-x64/Engine/swiftshader.meta diff --git a/src/Packages/Passport/Runtime/ThirdParty/UnityWebBrowser.Engine.Cef.Win-x64/Engine/swiftshader.meta b/src/Packages/Passport/Runtime/ThirdParty/UnityWebBrowser.Engine.Cef.Win-x64/Engine/swiftshader.meta deleted file mode 100644 index 6442a680..00000000 --- a/src/Packages/Passport/Runtime/ThirdParty/UnityWebBrowser.Engine.Cef.Win-x64/Engine/swiftshader.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: da2a4d603bb268d4299d3bbff15744a3 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: