Advance UIKit rewrite with AMap integration and core UI modules.
Integrate高德 SDK with simulator-safe build flags, add map views for operating area and punch points, refactor main tabs and key feature screens to UIKit with Diffable lists, and document Swift concurrency defaults in AGENTS.md. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
75
Podfile
75
Podfile
@ -6,15 +6,90 @@ target 'suixinkan_ios' do
|
||||
pod 'SnapKit', '~> 5.7'
|
||||
pod 'Kingfisher', '~> 8.0'
|
||||
|
||||
# 高德地图 SDK:仅真机构建时链接;模拟器通过 post_install 剥离
|
||||
pod 'AMap3DMap-NO-IDFA', '~> 11.1'
|
||||
pod 'AMapSearch-NO-IDFA', '~> 9.7'
|
||||
pod 'AMapLocation-NO-IDFA', '~> 2.11'
|
||||
|
||||
target 'suixinkan_iosTests' do
|
||||
inherit! :search_paths
|
||||
end
|
||||
end
|
||||
|
||||
SIMULATOR_OTHER_LDFLAGS = <<~FLAGS.squish
|
||||
-ObjC -l"c++" -l"z"
|
||||
-framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony"
|
||||
-framework "CoreText" -framework "ExternalAccessory" -framework "GLKit"
|
||||
-framework "OpenGLES" -framework "QuartzCore" -framework "Security"
|
||||
-framework "SystemConfiguration"
|
||||
FLAGS
|
||||
|
||||
post_install do |installer|
|
||||
installer.pods_project.targets.each do |target|
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.0'
|
||||
end
|
||||
end
|
||||
|
||||
%w[Pods-suixinkan_ios Pods-suixinkan_iosTests].each do |target_name|
|
||||
support_dir = File.join(installer.sandbox.root, 'Target Support Files', target_name)
|
||||
Dir.glob(File.join(support_dir, '*.xcconfig')).each do |path|
|
||||
content = File.read(path)
|
||||
content.gsub!("EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64\n", '')
|
||||
|
||||
unless content.include?('OTHER_LDFLAGS[sdk=iphonesimulator*]')
|
||||
content << "\nOTHER_LDFLAGS[sdk=iphonesimulator*] = #{SIMULATOR_OTHER_LDFLAGS}\n"
|
||||
content << "FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited)\n"
|
||||
end
|
||||
|
||||
File.write(path, content)
|
||||
end
|
||||
end
|
||||
|
||||
installer.pods_project.targets.each do |target|
|
||||
next unless target.name.start_with?('AMap')
|
||||
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['SUPPORTED_PLATFORMS'] = 'iphoneos'
|
||||
end
|
||||
end
|
||||
|
||||
resources_script = File.join(
|
||||
installer.sandbox.root,
|
||||
'Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-resources.sh'
|
||||
)
|
||||
if File.exist?(resources_script)
|
||||
content = File.read(resources_script)
|
||||
unless content.include?('SKIP_AMAP_RESOURCES_FOR_SIMULATOR')
|
||||
content.sub!(
|
||||
"RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt",
|
||||
<<~SHELL
|
||||
# SKIP_AMAP_RESOURCES_FOR_SIMULATOR
|
||||
if [ "${EFFECTIVE_PLATFORM_NAME}" = "-iphonesimulator" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
|
||||
SHELL
|
||||
)
|
||||
File.write(resources_script, content)
|
||||
end
|
||||
end
|
||||
|
||||
installer.aggregate_targets.each do |aggregate_target|
|
||||
aggregate_target.user_project.native_targets.each do |target|
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = ''
|
||||
config.build_settings['ENABLE_USER_SCRIPT_SANDBOXING'] = 'NO'
|
||||
|
||||
next unless target.name == 'suixinkan_ios'
|
||||
|
||||
existing = config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphoneos*]'] || '$(inherited)'
|
||||
unless existing.to_s.include?('AMAP_ENABLED')
|
||||
config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphoneos*]'] = "#{existing} AMAP_ENABLED"
|
||||
end
|
||||
end
|
||||
end
|
||||
aggregate_target.user_project.save
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user