@@ -162,6 +162,7 @@ platform :ios do
162162 build_app_for_scheme ( build_configuration : 'Release' )
163163 upload_app
164164 emerge ( tag : ENV [ 'EMERGE_BUILD_TYPE' ] )
165+ thin_asset_catalogs
165166 sentry_debug_files_upload (
166167 auth_token : ENV [ 'SENTRY_AUTH_TOKEN' ] ,
167168 org_slug : 'emerge-tools' ,
@@ -170,8 +171,8 @@ platform :ios do
170171 )
171172 sentry_upload_mobile_app (
172173 auth_token : ENV [ 'SENTRY_AUTH_TOKEN' ] ,
173- org_slug : 'emerge-tools ' ,
174- project_slug : 'hackernews -ios'
174+ org_slug : 'sentry ' ,
175+ project_slug : 'launchpad-test -ios'
175176 )
176177 end
177178
@@ -184,10 +185,11 @@ platform :ios do
184185 tag : ENV [ 'EMERGE_BUILD_TYPE' ] ,
185186 app_id_suffix : ENV [ 'APP_ID_SUFFIX' ]
186187 )
188+ thin_asset_catalogs
187189 sentry_upload_mobile_app (
188190 auth_token : ENV [ 'SENTRY_AUTH_TOKEN' ] ,
189- org_slug : 'emerge-tools ' ,
190- project_slug : 'hackernews -ios'
191+ org_slug : 'sentry ' ,
192+ project_slug : 'launchpad-test -ios'
191193 )
192194 end
193195
@@ -196,6 +198,51 @@ platform :ios do
196198 emerge_snapshot ( scheme : "HackerNews" )
197199 end
198200
201+ desc 'Thin asset catalogs in XCArchive'
202+ lane :thin_asset_catalogs do |options |
203+ UI . message ( 'Finding and thinning asset catalogs in XCArchive...' )
204+
205+ xcarchive_path = lane_context [ SharedValues ::XCODEBUILD_ARCHIVE ]
206+ UI . message ( "Using archive: #{ xcarchive_path } " )
207+
208+ Dir . chdir ( '..' ) do
209+ car_files = Dir . glob ( "#{ xcarchive_path } /**/*.app/**/*.car" )
210+
211+ if car_files . empty?
212+ UI . message ( "No .car files found in XCArchive" )
213+ else
214+ car_files . each do |car_file |
215+ UI . message ( "Found asset catalog: #{ car_file } " )
216+
217+ backup_file = "#{ car_file } .backup"
218+ FileUtils . cp ( car_file , backup_file )
219+
220+ command = [
221+ 'assetutil' ,
222+ '-i' , 'phone' ,
223+ '-s' , '3' ,
224+ '-p' , 'P3' ,
225+ '-M' , '4' ,
226+ '-g' , 'MTL6,1' ,
227+ '-r' , '13.0' ,
228+ car_file ,
229+ '-o' , car_file
230+ ]
231+
232+ success = system ( *command )
233+
234+ if success
235+ UI . success ( "Successfully thinned: #{ car_file } " )
236+ FileUtils . rm ( backup_file )
237+ else
238+ UI . error ( "Failed to thin: #{ car_file } , restoring backup" )
239+ FileUtils . mv ( backup_file , car_file )
240+ end
241+ end
242+ end
243+ end
244+ end
245+
199246 desc 'Build the iOS app only (no uploads)'
200247 lane :build_only do
201248 load_asc_api_key
0 commit comments