George McKinney Adventures in Software Development

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

December 24, 2010

Getting Debugging Working in Flash Builder Burrito on an HTC Evo

Filed under: Android,Evo,Flash Builder Burrito,Flash Debugger,Flex,Google,HTC,Mobile — georgemck @ 2:15 pm

Getting Debugging Working in Flash Builder Burrito (Flex 4.5) on an HTC Evo requires Android 2.2 froyo or higher

#1) Make sure you have the HTC Sync Software installed on your computer. This contains the drivers necessary for the Flash Builder to recognize the device when it is connected via USB. The software can be downloaded from: http://www.htc.com/www/SupportViewNews.aspx?dl_id=1062&news_id=806

#2) Inside Flash Builder Burrito, Select Run, Debug Configurations and then select On device. You should see “Deploy the application to the device over USB” After you click on Debug, you may see something about the server being misconfigured. That is if you specified a server that the app needs to connect to, just be sure it is reachable by the app while running on the phone. Otherwise remove it because Flash Builder will probably stop you from going further. It may take a moment or two for the app to launch. First you will see the screen go black, then you will see the app launch on the device. Next, you will see the Console in Flash Builder load your swf file. Hooray, debugging is now working.

#3) If you are on Windows and cannot connect, you may have to open port 7935 in your software firewall. Flash Builder uses it to communicate via WiFi to your device. To get to the Windows Firewall, click on the Start Menu button, then go to Control Panel and click on Windows Firewall. You should disable both inbound and outbound protection. Then click on Advanced Settings. Add an inbound and an outbound rule that opens port 7935. There may be a Domain Firewall, Private Network Firewall and Public Network Firewall. Also examine the individual rules in the Firewall to make sure they are not conflicting with Flash Builder.

#4) Don’t forget you may also need to check that your router also allows you to communicate over port 7935, too.

#5) If you try to re-debug the app and nothing happens, it may be because the previous instance is still running on the device. In this case, go to settings and then Applications and go to Manage Applications on the device, and force stop the old app and Clear the Cache and try again. Best practice is to click on the reb box in the Console to stop debugging and kill the running application on your device completely.

If you see a window pop-up asking you for the IP address of the computer running Flash Builder, Force Stop again and Clear the Cache. If it looks like there is nothing to clear, go back out to the Manage Applications section and then go back to your app. Try clearing the cache from that point and re-run your application. Good luck!

Useful Adobe URLs:

Connecting Google Android Devices
http://help.adobe.com/en_US/flex/preview_release/mobileapps/WSa8161994b114d624-33657d5912b7ab2d73b-7fdf.html

Running mobile applications
http://help.adobe.com/en_US/flex/preview_release/mobileapps/WSa8161994b114d624-33657d5912b7ab2d73b-7feb.html

Debugging mobile applications
http://help.adobe.com/en_US/flex/preview_release/mobileapps/WSa8161994b114d624-33657d5912b7ab2d73b-7fe5.html

Powered by WordPress