xcodeagvtool

agvtool is reporting “Cannot find Foo.xcodeproj/../NO”


I use agvtool to bump my build numbers. In my recently refactored Xcode 13.0 (13A233) project, but am getting a strange error:

Cannot find "Foo.xcodeproj/../NO"

E.g.

% agvtool next-version -all                          
Setting version of project Foo to: 
    108.

Also setting CFBundleVersion key (assuming it exists)

Updating CFBundleVersion in Info.plist(s)...

Updated CFBundleVersion in "Foo.xcodeproj/../Foo/Support files/Environments/QA/Info.plist" to 108
Updated CFBundleVersion in "Foo.xcodeproj/../FooKit/Info.plist" to 108
Updated CFBundleVersion in "Foo.xcodeproj/../FooTests/Info.plist" to 108
Cannot find "Foo.xcodeproj/../NO"

I only have those three targets, Foo, FooKit, and FooTests, but it is looking for another one called NO.

I have looked around and do not see any extraneous Info.plist files. I am guessing that there is something set to NO in .pbxproj or Info.plist which agvtool is incorrectly picking up as a potential target, but I have not figured where it is. How precisely does the -all option figure out which Info.plist files need updating?


Solution

  • My work-around was to set the “Bundle version” in my various Info.plist files to $(CURRENT_PROJECT_VERSION):

    enter image description here

    Then I don't need to use the -all optional at all. I simply:

    % agvtool next-version                                                                  
    Setting version of project Foo to: 
        126.
    

    The .plist files will grab the version from the target, rather than being specified individually in the respective files. This avoids the curious behavior/bug of the -all option.