George McKinney Adventures in Software Development

February 7, 2021

Apple Developer Certificate Expiration APPLEWWDCRCA3.cer

Filed under: iOS,iPhone — georgemck @ 11:00 pm

Periodically, Apple updates its development and distribution certificates. They are updated when XCode updates. If you haven’t updated to the latest version you may have to update these files yourself.

1. Download the certificate APPLEWWDCRCA3.cer
2. Install it into KeyChain Access

https://developer.apple.com/support/certificates/
https://stackoverflow.com/questions/64596362/iphone-distribution-certificate-is-not-trusted

XC Run Tool xcrun

Filed under: iOS,iPhone — georgemck @ 12:54 am

XCode’s CLI Swiss Army Knife

xcrun -h (for help)

xcrun -v (verbose output)

xcrun –show-sdk-path (will show the SDK path including its platform)

ls /Applications/Xcode.app/Contents/Developer/Platforms (displays all the platforms)

xcrun simctl list (list device uuid for the simulator)

xcrun simctl install [sim-device-uuid] tester.app (install an app onto the simulator)

===============================================

xcrun actool Assets.xcassets –compile build –platform iphoneos –minimum-deployment-target 9.3 (Create Assets.car by compiling the .xcassets folder)
[ platform name is all lowercase ]

xcrun –sdk iphoneos assetutil –info Assets.car (view contents of the archive)

/Applications/Xcode.app/Contents/Developer/usr/bin/actool Assets.xcassets –compile build –platform tvOS –minimum-deployment-target 8.0

https://guides.codepath.com/ios/Adding-Image-Assets

AIR SDK 33.1.1.345 iOS 14.3 signature issue
https://github.com/Gamua/Adobe-Runtime-Support/issues/590
Hello, when I compile IPA applications and install it into device with iOS 14.3, I got this message:
This app will not work with future versions of iOS

February 6, 2021

iPhone App Icons with Assets.car

Filed under: iOS,iPhone — georgemck @ 10:31 pm

For Adobe AIR for Mobile Section 11.3 iOS of “Release_Notes_AIR_SDK_33.1.1.345.pdf” (page 22) from Samsung Harman regarding iPhone App Development states:

“The splash screen is implemented as a launch storyboard with the binary storyboard and related assets
included in the SDK. This has implications for those who are providing their own storyboards or images in an
Assets.car file:
– If you are on the ‘free tier’ then the AIR developer tool will ignore any launch storyboard you have
specified within your application descriptor file, or provided within the file set for packaging into the
IPA file.
– If you are creating an Assets.car file, then you need to add in the AIR splash images from the SDK
which are in the “lib/aot/res” folder. These should be copied and pasted into your “.xcassets” folder in
the Xcode project that you are using for creation of your assets.”

============================

I recommend creating a new iPhone project with Xcode. Within this project, you can add all the icons and the 6 Harman splash images. These will be added to the Assets.car which you must include in the iPhone app. There is a default Assets.car bundled with the Harman SDK. I use the one I created instead for submission to Apple’s App Store. You can manage the Assets.car file with xcrun.

============================

ERROR ITMS-90022: “Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly ‘120×120’ pixels, in .png format for iOS versions >= 7.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface”

ERROR ITMS-90023: “Missing required icon file. The bundle does not contain an app icon for iPad of exactly ‘152×152’ pixels, in .png format for iOS versions >= 7.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface”

ERROR ITMS-90023: “Missing required icon file. The bundle does not contain an app icon for iPad of exactly ‘167×167′ pixels, in .png format for iOS versions supporting iPad Pro. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface”

ERROR ITMS-90023: “Missing required icon file. The bundle does not contain an app icon for iPad of exactly ’76×76’ pixels, in .png format for iOS versions >= 7.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface”
ERROR ITMS-90022: “Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly ‘120×120’ pixels, in .png format for iOS versions >= 7.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface”

February 4, 2021

iPhone App Signing (manual process)

Filed under: Flash Debugger,iOS,iPhone,Mobile — georgemck @ 10:49 pm

Scenario: created an iPhone app for Grip 411 using Adobe Air for Mobile now managed by Samsung Harman’s AIR SDK. The build process created the app’s grip411.ipa properly but was rejected by Apple because:
‘ERROR ITMS-90034: “Missing or invalid signature. The bundle ‘com.grip411.release’ at bundle path ‘Payload/Grip 411.app’ is not signed using an Apple submission certificate.”‘ Reason: Apple updated their code signing tools which get updated automatically using the latest version of XCode but since I am still on the previous version the certificate for signing had not been updated yet.

The process below uses a manual signing process via the command line.


# https://stackoverflow.com/questions/5160863/how-to-re-sign-the-ipa-file
# same process worked on Feb. 4, 2021
# had to first update the certificate APPLEWWDCRCA3.cer and install it into KeyChain Access
# https://developer.apple.com/support/certificates/
# https://stackoverflow.com/questions/64596362/iphone-distribution-certificate-is-not-trusted

# this version was tested OK vith macOs Sierra 10.12.5 (16F73) on oct 0th, 2017
# original ipa file must be store in current working directory

IPA="ipa-filename.ipa"
PROVISION="path-to.mobileprovision"
CERTIFICATE="hexadecimal-certificate-identifier" # must be in keychain
# identifier maybe retrieved by running: security find-identity -v -p codesigning

# unzip the ipa
unzip -q "$IPA"

# remove the signature
rm -rf Payload/*.app/_CodeSignature

# replace the provision
cp "$PROVISION" Payload/*.app/embedded.mobileprovision

# generate entitlements for current app
cd Payload/
codesign -d --entitlements - *.app > entitlements.plist
cd ..
mv Payload/entitlements.plist entitlements.plist

# sign with the new certificate and entitlements
/usr/bin/codesign -f -s "$CERTIFICATE" '--entitlements' 'entitlements.plist' Payload/*.app

# zip it back up
zip -qr resigned.ipa Payload

Powered by WordPress