Xcode GUI Design: Opening a El Capitan Storyboard file in Yosemite - xcode

Is it possible to to create a storyboard-based app in OS X El Capitan 10.11 and open it in Yosemite with the same xCode Version (7.3.1)
I get the following warning:
I've tried changing settings in file inspector - without luck. Builds for is set to 'deployment target 10.9' and opens in to 'Xcode 7'
Has anyone dealt with this scenario already?
UPDATE: This seems to be related to stack views... If I remove all stack views, the .storyboard file no longer has the tag as shown below.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15G31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<deployment version="1090" identifier="macosx"/>
<development version="7000" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
<capability name="stacking Non-gravity area distributions on NSStackView" minToolsVersion="7.0" minSystemVersion="10.11"/>
</dependencies>
...
I don't understand this behaviour: If stack views are not fully supported or don't behave the same way earlier OS versions, there should at least be warning when I choose "deployment target 10.9"! Better yet, Xcode should disable the stack views altogether if that's the case!

Related

How to use manifest to control disable DPI scaling and compatibility

I have a manifest file and use the mt command in makefile to add it into one of my exe files. After it's installed. If I use DPI Awareness Enabler or check the registry in HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, it does NOT show anything interesting. Normally if I manually set Compatibility to Windows 7 and disable DPI scaling in file property, it would show up in DPI Awareness Enabler and the registry.
So am I right to assume register is linked only to GUI not the actual file? As if I use mt command to extract manifest file from exe, I can see my original manifest file.
Above all, I don't think my manifest file works as expected. The way I test it is to reproduce a bug in the app. The workaround is set Compatibility to Windows 7 and disable DPI scaling in file property. If I just use the installed file even with manifest file embeded, it doesn't solve the problem. But if I manually change it in property, it solves the bug.
Some extra information, the app is built with VS2010 with hotfix to fix the manifest warning. Not sure if that is the cause.
Any help would be appreciated.
Here is the manifest file
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
</application>
</compatibility>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Here is the part in Makefile
ADD_CUSTOM_COMMAND(
TARGET myExe
POST_BUILD
COMMAND "mt.exe" -manifest \"${CMAKE_SOURCE_DIR}\\res\\dpiaware.manifest\" -inputresource:\"$<TARGET_FILE:myExe>\"\;\#1 -outputresource:\"$<TARGET_FILE:myExe>\"\;\#1
COMMENT "Adding display aware manifest..."
)
Ok, I finally give up on the manifest solution. Just so happen we use wix. So I add some registry values to HKLM->SOFTWARE->Microsoft->Windows NT->CurrentVersion->AppCompatFlags->Layers during installation.

No resource identifier found for attribute 'MvxBind' in package in Xamarin Android app

I'm using Xamarin Studio v5.10.1 and Xamarin Android v6.0.0.34 and MvvmCross v3.5.1.
I keep getting this error message when I build the solution:
No resource identifier found for attribute 'MvxBind' in package my.package
I've seen all the question in stack overflow regarding this error but nothing helped.
Here is what I tried:
Clean everything and rebuild
Used res-auto instead of my package name
Upgrade to the latest Mono Android
It seems that the file MvxBindingAttributes.xml is not copied to the Resources/Values folder. I assume it is supposed to be extract from Cirrious.MvvmCross.Binding.Droid.dll but somehow it doesn't.
I also tried creating the MvxBindingAttributes.xml file myself in the right place. It fixed the compilation error but a runtime error complaining about the same thing (resource id's not found).
Adding the MvxBindingAttributes.xml to the Resources/values folder in the solution worked for me.
https://github.com/MvvmCross/MvvmCross/blob/3.5/Cirrious/Cirrious.MvvmCross.Binding.Droid/Resources/values/MvxBindingAttributes.xml
I am also using xmlns:local="http://schemas.android.com/apk/res-auto" in the axml file
For me, my namespace in the XAML wasn't defined correctly...
I had:
xmlns:local="http://schemas.android.com/apk/res/AndroidApp1.Resource"
...
local:MvxBind
But the namespace of my app (in project properties) was AndroidApp1.AndroidApp1 (its a PoC :)).
So when I fixed that - it all worked:
xmlns:local="http://schemas.android.com/apk/res/AndroidApp1.AndroidApp1"
...
local:MvxBind
In my case, I mistyped the package name in the android manifest. Ensure that your xmlns:local attribute in the .axml file match the package name.
YOUR-PACKAGE-NAME must be the same here...
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/YOUR-PACKAGE-NAME"
android:layout_width="match_parent"
android:layout_height="match_parent">
and here
Hope it helps
OK. I just checked. It doesn't seem like the NuGet actually installs MvxBindingAttributes.xml into the Resources\values folder. So you have to create it yourself:
The contents need to be this: https://github.com/MvvmCross/MvvmCross/blob/3.5/Cirrious/Cirrious.MvvmCross.Binding.Droid/Resources/values/MvxBindingAttributes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MvxBinding">
<attr name="MvxBind" format="string"/>
<attr name="MvxLang" format="string"/>
</declare-styleable>
<declare-styleable name="MvxControl">
<attr name="MvxTemplate" format="string"/>
</declare-styleable>
<declare-styleable name="MvxListView">
<attr name="MvxItemTemplate" format="string"/>
<attr name="MvxDropDownItemTemplate" format="string"/>
</declare-styleable>
<declare-styleable name="MvxExpandableListView">
<attr name="MvxGroupItemTemplate" format="string"/>
</declare-styleable>
<item type="id" name="MvxBindingTagUnique"/>
<declare-styleable name="MvxImageView">
<attr name="MvxSource" format="string"/>
</declare-styleable>
</resources>
EDIT:
This information is not valid for MvvmCross 4.x where MvxBindingAttributes.xml is included in the MvvmCross.Binding package. This means, that it is no longer necessary to include this file yourself or through a NuGet into your project.
I know this question is real old but if you are having this error in Xamarin Studio version 6.1.5 and MvvmCross version 4.4.0 make sure you are creating a "Blank Android App" instead of a "Android App" This makes sure that no packages are included by default that will not play with with MvvmCross off the bat.
Try adding a reference from Manage NuGet Packages and from the search tap write MvvmCross.Bind and then install it.
I know it is old topic but I found another solution.
When you create new project remember to name core: name.Core and android app: name.Droid . It solved all my problems.

Incorrect version number apk

I have the following problem.
We have build an app with mono for android. The first version was no problem.
versionnumber was 1.0 and that is correct.
Meanwhile we have an update ready for this app. I changed the versionnumber in the manifest from '1' to '2'
and the versionname from '1.0' to '1.1'. But after I install the app on my phone I still see version '1.0'.
Also when I try to update de app in the market I get the error:
"The new apk's versioncode (1) already exists." (I'm sure I changed the versioncode to '2' in the manifest.)
What is going wrong?
Goldhorn
Did you change versionCumber or versionCode?
The correct attribute is versionCode (I don't know about versionNumber):
android:versionCode="1" android:versionName="0.1"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
package="com.jamwarehouse.apps.evolution"
android:versionCode="1"
android:versionName="0.1">
<application android:label="Evolution">
</application>
<uses-sdk android:minSdkVersion="4" />
</manifest>
Anyway, if you are using Mono for Android, you shouldn't need to edit the AndroidManifest.xml at all. You use C# attributes on your classes and you edit the version details via the project properties:
[Activity(Label = "Timeband", MainLauncher = true, Icon = "#drawable/icon")]
public class TimebandActivity : Activity
{
...
}
Note: I did notice that if I edited a field and then pressed close of the tab, it didn't save. You have to click out of the text boxes first, then close/save.
I Have found the problem.
I had to include my AndroidManifest.xml in my .csproj file. After that I had to add some more configurations from the C# code to the androidmanifest. I now use both the C# attributes and a manual AndroidManifest (which will be combined by Mono for Android).

Xcode 4: Files get stuck outside of project, unable to be deleted

Lots of my files in my Xcode project get "stuck" outside of my project and I'm unable to delete them. This happens occasionally when creating new files (maybe 50% of the time).
Here's a screenshot of what happens:
Any ideas?
Thanks.
Same problem, solved editing manually the project bundle:
quit xcode
right click on "Philly Shows.xcodeproj" and show its content
same operation on "project.xcworkspace"
open "contents.xcworkspacedata" with a text editor: you'll find references to your stuck groups and files, remove what you want to remove, basically your file should be something like this:
<?xml version="1.0" encoding="UTF-8"?>
<Workspace version = "1.0">
<FileRef
location = "self:Philly Shows.xcodeproj">
</FileRef>
</Workspace>
Michele

Application does not load with XP SP3 and a manifest related to comctl32

My application ( C++, compiled with Mingw, using mainly wxWidgets, Boost and SFML ), which runs smoothly on Windows 7 or Vista, does not work properly on Windows XP SP3. I have a .manifest file which allows the executable to use Windows XP/Vista/7 look'n'feel:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="Game Develop Editor.Release - Edittime.App"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>Executable</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
If I remove/rename the manifest file, I can launch the executable with Windows XP SP3 ( But with ugly outdated controls ). If I let the manifest file, it run without problems with Vista/7 but with Windows XP SP3, the application is loaded in memory ( I can see it in task manager ) but do nothing. No error message, it does not even crash.
If I recompile it to display a console, the latter does not show anything.
If I use gdb to debug it, the debugger display "Starting program:..." and is then blocked ( Control+C does not work ).
I tried to use Dependency Walker on the executable.
Here is the log with the manifest file: http://pastebin.com/J6T8KBH8
( Here is the log without the manifest: http://pastebin.com/zrYzRaWE / In this case, the application loaded without problems and is still running at the end of the log. )
I've highlighted the line which is displayed in red in Dependency Walker, which refers to a missing procedure in comctl32. Moreover, the log seems to be interrupted without specific errors.
Have you got any idea about why the application seems to be interrupted without even a crash or an message when using a manifest?
It turned out that the problem appeared only when using a recent version of the SFML library.
Precisely, SFML libraries names have changed from "sfml-xxx.dll" to "sfml-xxx-2.dll" in a recent release.
When linking to the latest version of the libraries, with the new name, the application does not want to start on Windows XP SP3. I've tweaked the CmakeList.txt file used to compile SFML so as to use the old name for the libraries ( sfml-xxxx.dll ) and, when linking to these libraries, the program works perfectly.
The only thing that is different is the libraries name. However, in Dependency Walker, I saw that when using the new name ( sfml-xxxx-2.dll ), SFML libraries are presented before wxWidgets and windows related libraries. When I use the old name ( sfml-xxxx.dll ), SFML libraries are presented at the end of the list.

Resources