From 267138120a15cabd2d3aaf89333d83033e9f8d32 Mon Sep 17 00:00:00 2001 From: Ty Rauber Date: Tue, 24 Sep 2024 11:36:01 +0200 Subject: [PATCH] fix: add generic expo config plugin to remove duplicate signature (#453) * fix: add generic expo config plugin to remove MapLibre.xcframework-ios.signature * fix: revert code signing changes * fix: lint errors * chore: update changelog --- CHANGELOG.md | 4 ++++ ios/RCTMLN.xcodeproj/project.pbxproj | 10 ++-------- package.json | 2 +- plugin/src/withMapLibre.ts | 23 ++++++++++++++++++++++- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c394939e9..f1facc1cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ PR Title ([#123](link to my pr)) ``` +## 10.0.0-alpha.17 + +fix: [add generic expo plugin to remove Duplicated Signature in Xcode 15/16](<[#453](https://github.com/maplibre/maplibre-react-native/pull/453)>) + ## 10.0.0-alpha.16 fix: [another attempt to disable code signing](<[#451](https://github.com/maplibre/maplibre-react-native/pull/451)>) diff --git a/ios/RCTMLN.xcodeproj/project.pbxproj b/ios/RCTMLN.xcodeproj/project.pbxproj index aaa1ccc0d..e2f4d5d4b 100644 --- a/ios/RCTMLN.xcodeproj/project.pbxproj +++ b/ios/RCTMLN.xcodeproj/project.pbxproj @@ -656,10 +656,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_ENTITLEMENTS = ""; - CODE_SIGNING_ALLOWED = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -708,10 +705,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_ENTITLEMENTS = ""; - CODE_SIGNING_ALLOWED = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; diff --git a/package.json b/package.json index 9d304ad44..38b13b9f5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@maplibre/maplibre-react-native", "description": "A MapLibre GL Native plugin for creating maps in React Native", - "version": "10.0.0-alpha.16", + "version": "10.0.0-alpha.17", "publishConfig": { "access": "public" }, diff --git a/plugin/src/withMapLibre.ts b/plugin/src/withMapLibre.ts index 328da103c..b98b49be0 100644 --- a/plugin/src/withMapLibre.ts +++ b/plugin/src/withMapLibre.ts @@ -129,6 +129,27 @@ export function setExcludedArchitectures(project: XcodeProject): XcodeProject { return project; } +const withoutSignatures: ConfigPlugin = (config) => { + const shellScript = ` + echo "Remove signature files (Xcode workaround)"; + rm -rf "$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature"; + `; + return withXcodeProject(config, async (config) => { + const xcodeProject = config.modResults; + xcodeProject.addBuildPhase( + [], + "PBXShellScriptBuildPhase", + "Remove signature files (Xcode workaround)", + null, + { + shellPath: "/bin/sh", + shellScript, + }, + ); + return config; + }); +}; + const withExcludedSimulatorArchitectures: ConfigPlugin = (c) => { return withXcodeProject(c, (config) => { config.modResults = setExcludedArchitectures(config.modResults); @@ -137,7 +158,7 @@ const withExcludedSimulatorArchitectures: ConfigPlugin = (c) => { }; const withMapLibre: ConfigPlugin = (config) => { - config = withExcludedSimulatorArchitectures(config); + config = withoutSignatures(withExcludedSimulatorArchitectures(config)); return withCocoaPodsInstallerBlocks(config); };