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>
96 lines
3.2 KiB
Ruby
96 lines
3.2 KiB
Ruby
platform :ios, '16.0'
|
||
|
||
target 'suixinkan_ios' do
|
||
use_frameworks!
|
||
|
||
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
|