- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스) - Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포 - 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
69 lines
2.2 KiB
Ruby
69 lines
2.2 KiB
Ruby
# Overrides CocoaPods `Sandbox` class to patch podspecs on the fly
|
|
# See: https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/sandbox.rb
|
|
|
|
require 'json'
|
|
|
|
REACT_DEFINE_MODULES_LIST = [
|
|
'ReactCommon',
|
|
'React-RCTAppDelegate',
|
|
'React-hermes',
|
|
'React-jsc',
|
|
'React-Fabric',
|
|
'React-graphics',
|
|
'React-utils',
|
|
'React-debug',
|
|
]
|
|
|
|
module Pod
|
|
class Sandbox
|
|
private
|
|
|
|
_original_store_podspec = instance_method(:store_podspec)
|
|
|
|
public
|
|
|
|
define_method(:store_podspec) do |name, podspec, _external_source, json|
|
|
spec = _original_store_podspec.bind(self).(name, podspec, _external_source, json)
|
|
patched_spec = nil
|
|
|
|
# Patch `React-Core.podspec` for clang to generate correct submodules for swift integration
|
|
if name == 'React-Core'
|
|
spec_json = JSON.parse(spec.to_pretty_json)
|
|
|
|
# clang module does not support objc++.
|
|
# We should put Hermes headers inside private headers directory.
|
|
# Otherwise, clang will throw errors in building module.
|
|
hermes_subspec_index = spec_json['subspecs'].index { |subspec| subspec['name'] == 'Hermes' }
|
|
if hermes_subspec_index
|
|
spec_json['subspecs'][hermes_subspec_index]['private_header_files'] ||= [
|
|
'ReactCommon/hermes/executor/*.h',
|
|
'ReactCommon/hermes/inspector/*.h',
|
|
'ReactCommon/hermes/inspector/chrome/*.h',
|
|
'ReactCommon/hermes/inspector/detail/*.h',
|
|
]
|
|
end
|
|
|
|
patched_spec = Specification.from_json(spec_json.to_json)
|
|
|
|
# Patch podspecs to define module
|
|
elsif REACT_DEFINE_MODULES_LIST.include? name
|
|
spec_json = JSON.parse(podspec.to_pretty_json)
|
|
spec_json['pod_target_xcconfig'] ||= {}
|
|
spec_json['pod_target_xcconfig']['DEFINES_MODULE'] = 'YES'
|
|
patched_spec = Specification.from_json(spec_json.to_json)
|
|
end
|
|
|
|
if patched_spec != nil
|
|
# Store the patched spec with original checksum and local saved file path
|
|
patched_spec.defined_in_file = spec.defined_in_file
|
|
patched_spec.instance_variable_set(:@checksum, spec.checksum)
|
|
@stored_podspecs[spec.name] = patched_spec
|
|
return patched_spec
|
|
end
|
|
|
|
return spec
|
|
end # define_method(:store_podspec)
|
|
|
|
end # class Sandbox
|
|
end # module Pod
|