Few questions from Trial user

Thanks, logged as bugs://72577

iā€™m happy to hear that!

Hmm, you should be getting full code completion for iOS (and all platforms). If you donā€™t, thereā€™s something going wrong. Are you not seeing any CC at all, or juts not the specific items (more on that below) that you ar expecting?

barTintColor is a property, first and foremost, so it shows in CC as property. Internally, the deter method for the property is called setBarTintColor and due to how the ObjC runtime works, you can call the method directly instead of setting the property (thats why it compiles), but we purposely donā€™t show property getters/setters in CC, because if we did, every property would show three times, cluttering the list up a lot.

TBH, this has bitten me two in a couple cases where ei was looking for a setSomething, and it wasnā€™t in CC. But really, i do thing its cleaner that way.

Hmm, that;s weird. Whats your network setup for the interaction between Xcode on your mac and VS on Windows? a VM with ashamed folder? if so, is your project Mac side or Windows side?

The way tis works is that Elements/VS doesnā€™t really read your storyboards at all,. they just exist on disk, and when you change them in Xcode and save, the change on disk. the build should just pick up the changed storyboards as part pf the compile process.

when you change the SB in Xcode and Save, can you

  • check the folder on disk, on Windows, to see if the file date reflects your change
  • check the build log (maybe set it to verbose) for the next build, to se if it processed the files ok?

It is, yes. iā€™ll log an issue for that. Fire already does this, but we donā€™t currently from VS. Good idea!

72576: CrossBoxHelper: option to bring simulator to front when running app from VS

iā€™m not sure i understand. Xcode should handle Images.xcassets as is, and show it as editable asset catalog. It does so in all my testing here. On disk, its a folder (its content managed by Xcode), in your Elements project in VS (and Fire) it should show as a opaque single file. Can you send me a couple screenshots of what you are seeing that is wrong?

that sounds like a bug, iā€™ll log an issue and get that fixed. thanx!

72577: Nougat: Confusing errors (and crashes) when missing indirect references

Hello

Thanks for response :smile: I have code completion, itā€™s only case what I wrote about properties (You have clarify me). Itā€™s clear for me now and thanks for explanation.

My network setup is desktop PC with win8.1 > Wi-Fi > macbook. I open on mac shared folder with my project on PC. Build or rebuild doesnā€™t help, I have tried many times. After save storyboard, changes are reflected on disk, because I open storyboard in VS and it show me that file changed and I see that changes (for example change button name). I have also checked in option ā€œProject and solutions/Build and run/On run when project are out of date >>> Always buildā€. Looks like VS do not handle changes in Main.storyboard file without clean project. I have checked it again now, to be 10000000000% sure, at least at my pc :smile: Changing build verbosity do not help. I did experiment, to made changes in storyboard file in VS directly (change button text). It was reflected on mac, xcode reload file and show changed button text, but VS build project with older (looks like cached) storyboard file.

I have created new, empty project, clicked ā€œSync user interface files to xcodeā€. It create directory testProj-UI.xcodeproj with files which I access on mac. I have attach zip file with storyboard files and 3 screenshots.

asAssetsCatalog.png - This is like is now. I donā€™t see Images.xcassets directory, so I cannot reach files, add/modify icons etc.

asAppResource.png - This is when I set Images.xcassets as AppResource. Itā€™s accessible in xcode, can add/modify icons, add new images with multires support, but builded application do not see it, because should be as Assets :smile:

MissingPNG.png - Additionally screen. This notification come from xcode, because it detect that missing launch image. If I click to add it by xcode, then Default-568h@2x.png file is added to obj directory, not resource. Itā€™s wrong, because xcode still show missing file and propose to add it.

I see Images.xcassets in VS, but I cannot add there any files and see it in xcode (attached VS.png). Maybe Iā€™m doing something wrong or VS2013 community make all that problems?

Tomorrow I go to holidays, so I can answer next week.

testProj-UI.xcodeproj.zip (2.1 MB)

[EDIT]

Another issue with storyboard:

  • define in any class:

      [IBAction]
      public void unwindToViewController2(UIStoryboardSegue sender)
      {
      
      }
    

Itā€™s IBAction to link any button to page Exit button in storyboard

  • Sync UI in VB
  • storyboard do not see this change.

To make change visible there are 2 ways:

  1. close storyboard and open again to reload all
  2. in project navigator click on Classes.h. Xcode refresh information and see changes.

B.r.

Hello

I have access to internet, so I can answer if any reply will be available :slight_smile: Waiting for response. Thanks

b.r.

My apologies for the delayed response.

i didnā€™t expect that to fix the problem. But iā€™d expect it to give more details. Can you do the following thing:

  • do a ā€œcleanā€
  • do a ā€œrebuildā€

post the change log. i assume this version now built works and is up to date.

  • make a change to the SB in Xcode, save it
  • confirm that on Windows the date has change don disk for the SB
  • hit build

post the resulting change log, as well. i assume this version now built did NOT get the latest change.

Unrelated, can you try if the same scenario works fine for you in Fire on the Mac?

thanx.
marc

Hello

Np. for delay :smile:
Now I do all on VM, because iā€™m on macbook only. I have installed windows 8.1/oxygene/VS 2013 community in that VM and create new test project. Itā€™s same behaviour as on my home desktop <> mac settings.

Here 2 logs:
log1.txt = after clean/rebuild
log2.txt = after changes in storyboard and build

logs.zip (25.6 KB)

Changes in storyboard changed file date of storyboard file.
I cannot check now Fire on mac. Iā€™ll check it after back from holidays (slow internet connection to download Fire)

Please for tips/response about Images.xcassets issue (check previous mail for screenshoots)

b.r.

About issue with syncing storyboard between VS and mac (my last post with EDIT annotation). I think is normal behaviour . In Objective-C when IBAction/IBOutlet is defined, then user need to open Classes.h file anyway, so all is refreshed at this time.

Still exists problem with Images.xcassets which is not visible in storyboard. Have checked Xamarin page and examples and there definitelly itā€™s accessible. Without access to Images.xcassets is probably (I have no success) to set and use images with ios convention (@2x, @3x). I did test by adding 3 images to resources: icon.png, icon@2x.png, icon@3x.png and run it on iphone5 and get it by UIImage image = UIImage.imageNamed("icon"); . icon.png is selected (have checked png resolution) by ios system instead icon@2x.png.
You have mention (mh) that Images.xcassets is visible for You and is editable? Which version of elements You test?
For me is not working and is clear that it should not, because I have checked project.bpxproj file and section with resources. xcassets catalog is not included there, so is not visible in storyboard on mac. If I set build action to AppResource for xcassets, then is included in project.bpxproj and visible in storyboard and editable, but not visible by application itself. Ppp have no icon and files are no accessible by UIImage.imageNamed.
So xcassets is in Resources, but build action = AssetCatalog causes that is not included as resource in project.bpxproj file.

b.r.

Hmm. Can you check which files actually make it into your .app bundle? This sound like a build/packaging issue, then.

Iā€™ve tested with 8.1, but nothing changed that should affect this for the 8.2 beta.

Thus should only mater for being able to edit in Xcode, not for what gets packaged. FWIW. Of course it should be there though. Is the build action set to AssetCatalog?

This what i see, fresh new iOS app: Image 2015-08-04 at 7.17.31 PM. The .xcasset is set to correctly, and i do see it in the generated Xcode project. I also see all versions of the icon packaged correctly: Image 2015-08-04 at 7.18.25 PM.

Can you send me your exact project?

Thatā€™s expected. AppResource means it will be blindly packaged as resource, ā€œas isā€; it wonā€™t be processed, and so it wonā€™t be usable in your app at runtime, because iOS, at runtime, doesnā€™t know what a .xcasset file is or does.

Thanks for response

Hmm. Can you check which files actually make it into your .app bundle? This sound like a build/packaging issue, then.

All files are included. Iā€™m not sure if UIImage.imageNamed uses images with naming convention (@2x, @3x) only if they in Image.xcassets directory. If I put images to Resources directly, then ios do not load correct image. Iā€™ll check yet with icons, they are in xcassets directory. If UIImage.imageNamed will pickup correct one (@2x for iphone 5), then it somethins is wrong here.

Iā€™ve tested with 8.1, but nothing changed that should affect this for the 8.2 beta.

Iā€™m still on 8.1.85.1801 trial, so it should works for me too

Thus should only mater for being able to edit in Xcode, not for what gets packaged. FWIW. Of course it should be there though. Is the build action set to AssetCatalog?

This what i see, fresh new iOS app: Image 2015-08-04 at 7.17.31 PM. The .xcasset is set to correctly, and i do see it in the generated Xcode project. I also see all versions of the icon packaged correctly: Image 2015-08-04 at 7.18.25 PM.

Can you send me your exact project?

As I see from screens, it works for You as expected, but not works for me :frowning: Here is sample project with compiled ipa too:

testcase.zip (1.8 MB)

Thatā€™s expected. AppResource means it will be blindly
packaged as resource, ā€œas isā€; it wonā€™t be processed, and so it wonā€™t be
usable in your app at runtime, because iOS, at runtime, doesnā€™t know
what a .xcasset file is or does.

For sure, I just did experiments to find the way to make xcassets works.

b.r.

indeed something is. imageNamed should go purely by the flat image names. if you have icon@2x.png in your app bundle, it should pick that up when you ask for ā€œiconā€. if it does not, something si wrong thatā€™s outside of what our compiler controls. Thatā€™s basic iOS system behavior, iOS cannot and does not handle .xcasset catalogs at runtime, at all.

iā€™ll have a look at that tomorrow.

works fine for me as well: Image 2015-08-05 at 12.11.2...
but wait: are you using Fire or VS?

i donā€™t see an ā€œiconā€ file though, so i cant comment on the runtime issues you are seeing, with this sample, but the Xcode sync of the asset catalog works fine (from Fire). Iā€™ll resets VS tomorrow, when iā€™m back in the office, with access to my Windows VM.

Just installing fire to test. icon.png was name as example, You should see menuIcon.png (3 files). Itā€™s same behaviour. Iā€™m using VS 2013 community.

[EDIT]

In fire itā€™s working! So problem is with VS, question where?

I compared project.pbxproj files generated by VS and Fire (different projects, both new one, but one have 3 png in resources)

In fire file there is:

ECCBA04517C22CBC00E46CF9 /* XIBs & Storyboards */ = {
  isa = PBXGroup;
  children = (
    ECCB00000000000000000028 /* LaunchScreen.xib */,
    ECCB00000000000000000029 /* Main.storyboard */,
  );
  name = "XIBs & Storyboards";
  sourceTree = "<group>";
};
EC430FBA1987CCE700365C06 /* Asset Catalogs */ = {
  isa = PBXGroup;
  children = (
    ECCB00000000000000000027 /* Images.xcassets */,
  );
  name = "Asset Catalogs";
  sourceTree = "<group>";
};
ECCBA05017C22D1F00E46CF9 /* Generated Code */ = {
  isa = PBXGroup;
  children = (
    ECCB0000000000000000002A /* Classes.h */,
    ECCB0000000000000000002B /* Classes.m */,
  );
  name = "Generated Code";
  sourceTree = "<group>";
};

in VS:

ECCBA04517C22CBC00E46CF9 /* XIBs & Storyboards */ = {
  isa = PBXGroup;
  children = (
    ECCB00000000000000000044 /* LaunchScreen.xib */,
    ECCB00000000000000000045 /* Main.storyboard */,
  );
  name = "XIBs & Storyboards";
  sourceTree = "<group>";
};
ECCBA04E17C22CE000E46CF9 /* Resources */ = {
  isa = PBXGroup;
  children = (
    ECCB00000000000000000046 /* menuIcon.png */,
    ECCB00000000000000000047 /* menuIcon@2x.png */,
    ECCB00000000000000000048 /* menuIcon@3x.png */,
  );
  name = Resources;
  sourceTree = "<group>";
};
ECCBA05017C22D1F00E46CF9 /* Generated Code */ = {
  isa = PBXGroup;
  children = (
    ECCB00000000000000000049 /* Classes.h */,
    ECCB0000000000000000004A /* Classes.m */,
  );
  name = "Generated Code";
  sourceTree = "<group>";
};

Obviously missing Asset Catalogs node

b.r.

menuIcon.png isnā€™t in the asset catalog, though. Make sure you use the proper casing when loading it. iOSā€™s file system is case sensitive.

looks like. the Elements/VS team will need to investigate this. At least there Xcode sync issue. As for why it doesnā€™t load your image at runtime, iā€™m still clueless (potential case issues aside). Iā€™ll need to test mor eoin that front when im back in the office.

menuIcon.png isnā€™t in the asset catalog, though. Make sure you use the
proper casing when loading it. iOSā€™s file system is case sensitive.

Yes itā€™s not in asset catalog because if I set build action for png file, then is not accessible in storyboard or even via code, thatā€™s why I must set it as AppResource. At least Images.xcassets should be included, but as You can see in project.pbxproj example, itā€™s not. Nothing what is set as AssetCatalog is included in project.pbxproj so is not visible in storyboard. I know that iOS filenames are case sensitivie and I checked it :slight_smile: Simulator do not care for case sensitive, but real device is. Here is no mistake :slight_smile:

b.r.

Right, but i thought the (second) issue was that it cant load the image if itā€™s in the asset catalog?

Thanks, logged as bugs://72652: Nougat: Asset Catalog doesnā€™t show in Xcode UI project, from VS (fine from Fire)

Second issue was about naming convention (@2x, 3x in picture name) and I test png file as AppResource because this way I can access it. I test picture width,height when image was loaded by iOS instead of scale. Scale give real answer which one file was loaded. This works properly.
Anyway too many things in one thread. Next time Iā€™ll create separate topic to not confuse, mix things :smile:

b.r.

Ok, so that is sorted,and the only issue remaining is the lack of Asset Catalog sync when working in VS? If so, thatā€™ll get fixed next week.

Not exactly, just reminded one thing. I have mentioned about no storybard synchronization between mac and PC (xcode <> VS). Any change in storyboard at mac, need to use clean in VS project, otherwise VS build apk like nothing changed. I have checked if Main.storyboard is modified at PC and it is. My setup is PC <> Mac via wi-fi. Same with virtual machine with windows on Mac. Please do simple test like add button on viewcontroller, set text to ā€œ1ā€, build at PC and run, back to storyboard and change position or text to ā€œ2ā€ and again build and run. I see still button with ā€œ1ā€. If I do clean, then changes are visible.

b.r.

can you retest the Asset Catalog issue with VS in the new beta? we believe this was already fixed for 8.2. For the other issue, id still like to see those build logs, to investigate further.

thnx!