Flash Builder 4.6 not compiling for Flash Player 10.2 - apache-flex

I am new to creating Flex applications and trying to target Flash Player 10.2 with my first. I have created it using Flash Builder 4.6 and compiled using the 4.5a SDK. I've also set the option to target 10.2.0 in the the Adobe Flash Player options. When I create the release build, there are no error and the resulting HTML file contains the following:
// For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection.
var swfVersionStr = "10.2.0";
However, if I try to visit the application in a browser with v10.2 of the plug-in it says 11.1 is needed. I also have the same problem with a simple Flash CS5 animation that only uses stop() and getURL(). The animation works but doesn't stop.
Thanks for the detailed reply wxvxw I've now taken a screenshot of my compiler options, but can't show it here as I'm a new user, but the URL is...
https://lh6.googleusercontent.com/-3xEJ0RTFG-8/Tw9rJt2UloI/AAAAAAAAARs/Ruu9Em66fgo/s800/fboptions.PNG
I've tried -target-player 10.2.0 (previously) and now -target-player 10.2 but neither worked. I've also located the playerglobal.swc in the following directory:
C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.5.0\frameworks\libs\player\10.2
Thanks. Dan.

IIRC, the SDK that comes with FB 4.6 only has FP 10.1 and FP 10.3 libraries. So, in order to compile for FP 10.2 you will have to find the corresponding playerglobal.swc (maybe look up older SDK releases?).
Now, regarding your settings: the version of the player you want to compile for is set in the compiler arguments, there are multiple ways to do that, but it looks like you've done something else instead :) In order to compile for certain player version, the compiler needs to know how that version of the player behaved, that is it needs a description of all the built-in functions the player had at that time. playerglobal.swc provides the definitions for those functions (search your SDK folder for the possible location). -target-player is the compiler argument that you need. One way to tell the compiler what player to target is to open the project settings and in the additional compiler arguments line type something like -target-player 10.2. Note that you might not have the appropriate playerglobal.swc. The compiler error in such case will roughly point you to the directory where this library is to be found.
Flash Builder and SDK had never had 11+ player as a requirement, (more yet, the SDK has not even been tested against this version), so the requirement is unrelated (did you use Google Chrome for testing, maybe you need to check about:plugins page?). What you did set is some variable that is supposed to tell the JavaScript script that is used to embed the SWF, what minimum version of the player is required to run the SWF, this has no effect on the SWF itself, it's only for user's information (you should set it in such a way, that in case users have older version of player they will be told to upgrade). If you used FB's code generation, or the Ant task provided by Adobe to generate the HTML page containing SWF, then this variable would be set to the same version you used to compile your SWF to, otherwise it's up to you to adjust it to the proper value.

I was having the same experience, but it wasn't a matter of flash not being installed. I had set my project in flashbuilder 4.6 to build using a specific SDK (Flex 4.5.1A) and a specific version of Flash player (10.2.0) but my client was unable to play it in flash 10.3 (they are limited by their IT department to that version, still)
my fix: add -swf-version 10 to the additional compiler arguments
I had dug around and found that the 4th byte of the swf file indicates what version of flash it's built for; when I did an export to release build, the 4th character was hex 0B rather than 0A.
I ran the swfdump.exe that was in the sdk bin and found the version was 11
<swf xmlns='http://macromedia/2003/swfx' version='11' framerate='24' size='10000x7500' compressed='true' >
I added the following to get the config that flashbuilder was using to build the project
-dump-config c:\testconfig.xml
in that, I found <swf-version>11</swf-version>
based on that, I guessed that the flag I needed to set was the -swf-version 10 as an additional compile parameter in the project properties > Flex Compiler
after building with that flag, the swf version was 10 in both swfdump and the config dump

Related

iOS Realm: file does not start with MH_MAGIC[_64], fat file, but missing compatible architecture (have 'x86_64,i386', need 'x86_64'))

I have updated mac to 11.6 and xcode to 13.0. Realm could not compile so I updated it with carthage to v10.15.1. Now I get this runtime error just after the app launch:
Library not loaded: #rpath/Realm.framework/Realm
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/appname/Build/Products/Debug-iphonesimulator/RealmSwift.framework/RealmSwift
Reason: tried: '/Users/username/Library/Developer/Xcode/DerivedData/appname/Build/Products/Debug-iphonesimulator/Realm.framework/Realm' (file does not start with MH_MAGIC[_64], file does not start with MH_MAGIC[_64], fat file, but missing compatible architecture (have 'x86_64,i386', need 'x86_64')), '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/Realm.framework/Realm' (no such file), '/usr/lib/swift/Realm.framework/Realm' (no such file), '/Users/username/Library/Developer/CoreSimulator/Devices/33E61712-D8A9-4D7E-A260-5C096BE08A82/data/Containers/Bundle/Application/AC700919-F431-446F-8BEF-FF8D8E5F5BF9/appname.a
I guess the key part here is file does not start with MH_MAGIC[_64], but I could not find anything useful about the error.
I tried embedding the library and turning off the embedding, does not affect anything.
Realm has 3 targets configured to be built with Carthage (Realm, Realm iOS Static and RealmSwift)
XCode 13 deprecated a setting for building targets in a manually set order which leads the first 2 targets to be built in a non deterministic order (the 3rd one is always last as it depends on the 1st one). The order and the frequency of it changing seems to be random (it might depend on the specific XCode version)
When 'Realm' is build before 'Realm iOS Static', the fat framework replaces the one in the xcframework which leads to that error. In the other case, it's the correct one that's built second and overrides the wrong one.
I guess the solution (apart from upgrading Realm) would be to remove the target 'Realm iOS Static' from the project but it's not straightforward to do with Carthage except by forking Realm
The latest version of realm is v10.32.0. xcode 14.1 is also out.
You need to update your toolset.
The latest upgrade realm version 10.32.0 is compatible with XCode 13.1 and above. If you use the legacy build system, migrate it to the latest one and clean the derivable folder before rebuilding the code. Most of the time derivable keeps track of the older version files and makes conflicts once you update the project tools. Hope this will help

Adobe Air 2.5 and AIR Debug Launcher (ADL) from AIR 1.5.3 SDK

I am having some issues with the differences between running my Air Desktop application with the ADL from within my IDE and actually running it as an packaged air application that is installed. Everything functions as it should in the IDE when run with ADL, but once it is packaged the drag and drop functionality no longer works correctly.
I was able to get this to work when Adobe Air 1.5 runtime was installed, instead of 2.5. I am aware that there were a lot of changes made with this last update, but I am unsure of how to proceed, as I am unable to debug the packaged air application to see what is actually happening.
One solution that I could see would be to install the Adobe Air 2.5 SDK and use that to debug with.
If anyone has any insight to why drag and drop works in the ADL and the runtime, your feedback would be much appreciated.
Also, I am using Flash Builder 4, with the Flex 3.5 SDK
If something doesn't work when compiled, it's usually because you've used a feature only allowed for natively packaged AIR applications. Try packaging it as a native file using this guide and see if it works:
http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html
Essentially all you'll need to do is:
Check this line in your app.xml file and make sure it is uncommented and set to extendedDesktop like below:
<supportedProfiles>extendedDesktop</supportedProfiles>
and then on the command line call:
ADT -package -target native mynewfilepath/myFile.exe myfilepath/myFile.air
[ADT is found within your flex sdk folder.]

How can I tell Flash Builder 4 where to look for FlashPlayer.exe

I uninstalled Flash Builder Beta 2 and installed the Flash Builder 4. I tried to import my new projects, but I keep getting a popup that says:
"
[path/to/Adobe Flash Builder Beta 2/FlashPlayer.exe]
Flash Builder cannot locate the required version of Adobe Flash Player.
Do you want to try to run your application with the current version?
Adobe Flash Player downloads"
I have a run config on a localhost server instead of generating the html wrapper. This only happens with imported projects, but I can't seem to find where in any of the config files the player location is specified.
I don't have a specific answer, but...
Instead of importing projects into a new workspace; have you tried using the same workspace? You can specify the workspace using the data argument when you launch Flash Builder:
flashbuilder.exe data="C:\something\something\something\workspace"
If that doesn't work, you can try to launch Flash builder with the '-clean' command line argument. I've found that fixes a lot of the issues I have.
Also check your SDK on the imported projects. Make sure it is not pointed at an old SDK from the beta 2 directory. After you change the SDK, be sure to clean the project.
Or if none of that works, re-create the project from scratch.

Can Flash Builder 4 Premium compile Flex Builder 3 Pro project?

That's about it. Oh, and I don't want to convert the Flex Builder Project making it incompatible with Flex Builder 3 Pro.
Yes! Here is an article and video that shows how to use the Flex 3 SDK in Flash Builder 4.
Yes, you can compile the project with Flash Builder 4. ISTR it either silently updated my project settings or I might have converted the project.
In any case, if you are trying to simultaneously use Flex Builder 3 and Flash Builder 4 you should note that at least one of the internal eclipse & FB project settings files (.actionScriptProperties, .flexProperties & .project) changed format between FB3 and FB4 - I can't remember exactly which ones changed off the top of my head.
This will affect your development workflow.
I have previously used Flash Builder 4 on a project whilst the rest of the team was using Flex Builder 3. Whenever they updated their project I had a lot of problems with conflicts in at least one of the above files. Whenever this happened, I just accepted the FB3 versions of the files, and let FB4 internally deal with upgrading the format. If I somehow needed to make changes to those files (such as adding a new class), I'd either get another team member to do it, use FB3 to add the files, or just manually edit the file myself. Irritating, but not the end of the world.
YMMV.
Yes. Adobe products are extremely backwards compatible. However, some Adobe products will by default save your "older" files into the newer format - ie if you saved your FB 3 project with the FB 4 application, you may have to choose "Save As" to force it to save it as version 3 (this is true at least for Flash, not certain if Flex is different in that regard). This is only relevant if you need to retain the older file format for compatibility with other coworkers who only have an older version of the program.

ActionScript error #1053 - Illegal override of allowInsecureDomain in _MonkeyContacts_mx_managers_SystemManager (FlexMonkey code generation example)

I'm following along the MonkeyContactsCodeGenExample guide and when I run the ant target for test-with-launcher, I get a popup saying:
VerifyError: Error #1053: Illegal override of allowInsecureDomain in _MonkeyContacts_mx_managers_SystemManager.
This is followed by:
ReferenceError: Error #1065: Variable _MonkeyContacts_mx_managers_SystemManager is not defined.
These popups are from the debug flash player - the normal flash player would silently supress these errors.
It seems that these sorts of errors occur when different files or swc components are compiled under different SDKs. If so, what parts would I need to recompile in this situation?
I checked out the flex project sources and have rebuilt them under SDK 3.4, and I also got the project sources for fluint and have recompiled those already. The newly compiled fluint.swc was then copied to the lib directories of the MonkeyFluintAirTestRunner and MonkeyTestLauncher projects and then everything was re-built, but I still get this error with the MonkeyContacts example.
I just ran into this myself today. I just needed to recompile the MonkeyAgent.SWF.
As per a note on the FlexMonkey site, I used the Easy2BuildMonkeyAgent project to do this. I didn't look into why they recommended this, but it worked for me.
Beware, I ran into a problem compiling this because I use the standard 3.4 SDK that was installed separate from Flex Builder. The the standard 3.4 SDK, the automation.swc file (and others) aren't there, so I had to grab copies from the FlexBuilder 3.0 SDK folder into the 3.4.
Don't forget to copy the corresponding files from locale/en_US: automation_agent_rb.swc, automation_rb.swc

Resources