Repository navigation
Expand file tree
/
Copy pathNitroSslManager.podspec
More file actions
91 lines (77 loc) · 3.49 KB
/
Copy pathNitroSslManager.podspec
File metadata and controls
91 lines (77 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
require "json"
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
Pod::Spec.new do |s|
s.name = 'NitroSslManager'
s.version = package["version"]
s.summary = 'SSL Pinning Module for React Native and Expo'
s.author = 'Huy Tran'
s.homepage = 'https://github.com/huytdps13400/react-native-ssl-manager'
s.platforms = { :ios => '13.0' }
s.source = { :git => 'https://github.com/huytdps13400/react-native-ssl-manager', :tag => s.version.to_s }
# Handwritten iOS sources (Swift HybridObject + Objective-C++ launch bootstrap)
s.source_files = "ios/**/*.{h,m,mm,swift}"
# Use script phase to copy ssl_config.json during app build
s.script_phases = [
{
:name => 'Copy SSL Config to App Bundle',
:script => '
echo "🔧 SSL Manager: Copying ssl_config.json to app bundle..."
# Look for ssl_config.json in parent directories of SRCROOT
SSL_CONFIG_SOURCE=""
# Check common locations and verify content is not empty
if [ -f "${SRCROOT}/../ssl_config.json" ]; then
CONTENT=$(cat "${SRCROOT}/../ssl_config.json" | tr -d " \\n\\r")
if [ "$CONTENT" != "{}" ]; then
SSL_CONFIG_SOURCE="${SRCROOT}/../ssl_config.json"
echo "📄 Found ssl_config.json at: $SSL_CONFIG_SOURCE"
fi
fi
if [ -z "$SSL_CONFIG_SOURCE" ] && [ -f "${SRCROOT}/../../ssl_config.json" ]; then
CONTENT=$(cat "${SRCROOT}/../../ssl_config.json" | tr -d " \\n\\r")
if [ "$CONTENT" != "{}" ]; then
SSL_CONFIG_SOURCE="${SRCROOT}/../../ssl_config.json"
echo "📄 Found ssl_config.json at: $SSL_CONFIG_SOURCE"
fi
fi
if [ -z "$SSL_CONFIG_SOURCE" ] && [ -f "${SRCROOT}/../../../ssl_config.json" ]; then
CONTENT=$(cat "${SRCROOT}/../../../ssl_config.json" | tr -d " \\n\\r")
if [ "$CONTENT" != "{}" ]; then
SSL_CONFIG_SOURCE="${SRCROOT}/../../../ssl_config.json"
echo "📄 Found ssl_config.json at: $SSL_CONFIG_SOURCE"
fi
fi
if [ -n "$SSL_CONFIG_SOURCE" ]; then
# Copy to app bundle resources
cp "$SSL_CONFIG_SOURCE" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/"
echo "✅ SSL config copied to app bundle"
else
echo "⚠️ ssl_config.json not found in common locations"
echo "🔍 Searching for ssl_config.json with content..."
# Search for any ssl_config.json with content
for path in $(find "${SRCROOT}/../.." -name "ssl_config.json" -type f 2>/dev/null); do
CONTENT=$(cat "$path" | tr -d " \\n\\r")
if [ "$CONTENT" != "{}" ]; then
SSL_CONFIG_SOURCE="$path"
echo "📄 Found ssl_config.json with content at: $SSL_CONFIG_SOURCE"
cp "$SSL_CONFIG_SOURCE" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/"
echo "✅ SSL config copied to app bundle"
break
fi
done
if [ -z "$SSL_CONFIG_SOURCE" ]; then
echo "💡 SRCROOT: $SRCROOT"
echo "💡 Create ssl_config.json at project root for SSL pinning to work"
exit 0
fi
fi
',
:execution_position => :before_compile
}
]
s.dependency 'TrustKit'
# Add all files generated by Nitrogen (specs, bridges, xcconfig, NitroModules dep)
load 'nitrogen/generated/ios/NitroSslManager+autolinking.rb'
add_nitrogen_files(s)
# Links React Native core and the Nitro runtime
install_modules_dependencies(s)
end